summaryrefslogtreecommitdiff
path: root/vim/autoload/ag.vim
diff options
context:
space:
mode:
authorFranck Cuny <franckcuny@gmail.com>2016-01-17 07:17:17 -0800
committerFranck Cuny <franckcuny@gmail.com>2016-01-17 07:17:17 -0800
commite58a6497d050480c56b9689004b9ded1cc2b0b9d (patch)
tree291b4ae5b114d06d96498f2312a9ab3e466ca501 /vim/autoload/ag.vim
parent[emacs] some small changes to the UI. (diff)
downloademacs.d-e58a6497d050480c56b9689004b9ded1cc2b0b9d.tar.gz
Remove configuration for `vim` and all the scripts
No need to carry a configuration for `vim` anymore, and most of the scripts are either useless, or have moved to the *toolbox* repository on GitHub (and are now in go, and sometimes with tests).
Diffstat (limited to 'vim/autoload/ag.vim')
-rw-r--r--vim/autoload/ag.vim216
1 files changed, 0 insertions, 216 deletions
diff --git a/vim/autoload/ag.vim b/vim/autoload/ag.vim
deleted file mode 100644
index 6703396..0000000
--- a/vim/autoload/ag.vim
+++ /dev/null
@@ -1,216 +0,0 @@
-" NOTE: You must, of course, install ag / the_silver_searcher
-
-" FIXME: Delete deprecated options below on or after 15-7 (6 months from when they were changed) {{{
-
-if exists("g:agprg")
- let g:ag_prg = g:agprg
-endif
-
-if exists("g:aghighlight")
- let g:ag_highlight = g:aghighlight
-endif
-
-if exists("g:agformat")
- let g:ag_format = g:agformat
-endif
-
-" }}} FIXME: Delete the deprecated options above on or after 15-7 (6 months from when they were changed)
-
-" Location of the ag utility
-if !exists("g:ag_prg")
- " --vimgrep (consistent output we can parse) is available from version 0.25.0+
- if split(system("ag --version"), "[ \n\r\t]")[2] =~ '\d\+.\(\(2[5-9]\)\|\([3-9][0-9]\)\)\(.\d\+\)\?'
- let g:ag_prg="ag --vimgrep"
- else
- " --noheading seems odd here, but see https://github.com/ggreer/the_silver_searcher/issues/361
- let g:ag_prg="ag --column --nogroup --noheading"
- endif
-endif
-
-if !exists("g:ag_apply_qmappings")
- let g:ag_apply_qmappings=1
-endif
-
-if !exists("g:ag_apply_lmappings")
- let g:ag_apply_lmappings=1
-endif
-
-if !exists("g:ag_qhandler")
- let g:ag_qhandler="botright copen"
-endif
-
-if !exists("g:ag_lhandler")
- let g:ag_lhandler="botright lopen"
-endif
-
-if !exists("g:ag_mapping_message")
- let g:ag_mapping_message=1
-endif
-
-if !exists("g:ag_working_path_mode")
- let g:ag_working_path_mode = 'c'
-endif
-
-function! ag#AgBuffer(cmd, args)
- let l:bufs = filter(range(1, bufnr('$')), 'buflisted(v:val)')
- let l:files = []
- for buf in l:bufs
- let l:file = fnamemodify(bufname(buf), ':p')
- if !isdirectory(l:file)
- call add(l:files, l:file)
- endif
- endfor
- call ag#Ag(a:cmd, a:args . ' ' . join(l:files, ' '))
-endfunction
-
-function! ag#Ag(cmd, args)
- let l:ag_executable = get(split(g:ag_prg, " "), 0)
-
- " Ensure that `ag` is installed
- if !executable(l:ag_executable)
- echoe "Ag command '" . l:ag_executable . "' was not found. Is the silver searcher installed and on your $PATH?"
- return
- endif
-
- " If no pattern is provided, search for the word under the cursor
- if empty(a:args)
- let l:grepargs = expand("<cword>")
- else
- let l:grepargs = a:args . join(a:000, ' ')
- end
-
- " Format, used to manage column jump
- if a:cmd =~# '-g$'
- let s:ag_format_backup=g:ag_format
- let g:ag_format="%f"
- elseif exists("s:ag_format_backup")
- let g:ag_format=s:ag_format_backup
- elseif !exists("g:ag_format")
- let g:ag_format="%f:%l:%c:%m"
- endif
-
- let l:grepprg_bak=&grepprg
- let l:grepformat_bak=&grepformat
- let l:t_ti_bak=&t_ti
- let l:t_te_bak=&t_te
- try
- let &grepprg=g:ag_prg
- let &grepformat=g:ag_format
- set t_ti=
- set t_te=
- if g:ag_working_path_mode ==? 'r' " Try to find the projectroot for current buffer
- let l:cwd_back = getcwd()
- let l:cwd = s:guessProjectRoot()
- try
- exe "lcd ".l:cwd
- catch
- echom 'Failed to change directory to:'.l:cwd
- finally
- silent! execute a:cmd . " " . escape(l:grepargs, '|')
- exe "lcd ".l:cwd_back
- endtry
- else " Someone chose an undefined value or 'c' so we revert to the default
- silent! execute a:cmd . " " . escape(l:grepargs, '|')
- endif
- finally
- let &grepprg=l:grepprg_bak
- let &grepformat=l:grepformat_bak
- let &t_ti=l:t_ti_bak
- let &t_te=l:t_te_bak
- endtry
-
- if a:cmd =~# '^l'
- let l:match_count = len(getloclist(winnr()))
- else
- let l:match_count = len(getqflist())
- endif
-
- if a:cmd =~# '^l' && l:match_count
- exe g:ag_lhandler
- let l:apply_mappings = g:ag_apply_lmappings
- let l:matches_window_prefix = 'l' " we're using the location list
- elseif l:match_count
- exe g:ag_qhandler
- let l:apply_mappings = g:ag_apply_qmappings
- let l:matches_window_prefix = 'c' " we're using the quickfix window
- endif
-
- " If highlighting is on, highlight the search keyword.
- if exists('g:ag_highlight')
- let @/ = matchstr(a:args, "\\v(-)\@<!(\<)\@<=\\w+|['\"]\\zs.{-}\\ze['\"]")
- call feedkeys(":let &hlsearch=1 \| echo \<CR>", 'n')
- end
-
- redraw!
-
- if l:match_count
- if l:apply_mappings
- nnoremap <silent> <buffer> h <C-W><CR><C-w>K
- nnoremap <silent> <buffer> H <C-W><CR><C-w>K<C-w>b
- nnoremap <silent> <buffer> o <CR>
- nnoremap <silent> <buffer> t <C-w><CR><C-w>T
- nnoremap <silent> <buffer> T <C-w><CR><C-w>TgT<C-W><C-W>
- nnoremap <silent> <buffer> v <C-w><CR><C-w>H<C-W>b<C-W>J<C-W>t
-
- exe 'nnoremap <silent> <buffer> e <CR><C-w><C-w>:' . l:matches_window_prefix .'close<CR>'
- exe 'nnoremap <silent> <buffer> go <CR>:' . l:matches_window_prefix . 'open<CR>'
- exe 'nnoremap <silent> <buffer> q :' . l:matches_window_prefix . 'close<CR>'
-
- exe 'nnoremap <silent> <buffer> gv :let b:height=winheight(0)<CR><C-w><CR><C-w>H:' . l:matches_window_prefix . 'open<CR><C-w>J:exe printf(":normal %d\<lt>c-w>_", b:height)<CR>'
- " Interpretation:
- " :let b:height=winheight(0)<CR> Get the height of the quickfix/location list window
- " <CR><C-w> Open the current item in a new split
- " <C-w>H Slam the newly opened window against the left edge
- " :copen<CR> -or- :lopen<CR> Open either the quickfix window or the location list (whichever we were using)
- " <C-w>J Slam the quickfix/location list window against the bottom edge
- " :exe printf(":normal %d\<lt>c-w>_", b:height)<CR> Restore the quickfix/location list window's height from before we opened the match
-
- if g:ag_mapping_message && l:apply_mappings
- echom "ag.vim keys: q=quit <cr>/e/t/h/v=enter/edit/tab/split/vsplit go/T/H/gv=preview versions of same"
- endif
- endif
- else
- echom 'No matches for "'.a:args.'"'
- endif
-endfunction
-
-function! ag#AgFromSearch(cmd, args)
- let search = getreg('/')
- " translate vim regular expression to perl regular expression.
- let search = substitute(search,'\(\\<\|\\>\)','\\b','g')
- call ag#Ag(a:cmd, '"' . search .'" '. a:args)
-endfunction
-
-function! ag#GetDocLocations()
- let dp = ''
- for p in split(&runtimepath,',')
- let p = p.'doc/'
- if isdirectory(p)
- let dp = p.'*.txt '.dp
- endif
- endfor
- return dp
-endfunction
-
-function! ag#AgHelp(cmd,args)
- let args = a:args.' '.ag#GetDocLocations()
- call ag#Ag(a:cmd,args)
-endfunction
-
-function! s:guessProjectRoot()
- let l:splitsearchdir = split(getcwd(), "/")
-
- while len(l:splitsearchdir) > 2
- let l:searchdir = '/'.join(l:splitsearchdir, '/').'/'
- for l:marker in ['.rootdir', '.git', '.hg', '.svn', 'bzr', '_darcs', 'build.xml']
- " found it! Return the dir
- if filereadable(l:searchdir.l:marker) || isdirectory(l:searchdir.l:marker)
- return l:searchdir
- endif
- endfor
- let l:splitsearchdir = l:splitsearchdir[0:-2] " Splice the list to get rid of the tail directory
- endwhile
-
- " Nothing found, fallback to current working dir
- return getcwd()
-endfunction