Skip to content

Commit

Permalink
Merge pull request #6 from kaethorn/master
Browse files Browse the repository at this point in the history
Find project root
  • Loading branch information
ddrscott authored Apr 30, 2018
2 parents be8a43a + 589a5f4 commit be409b2
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion plugin/side-search.vim
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,24 @@ function! SideSearchWinnr()
return s:my_buffer_winnr()
endfunction

function! s:guessProjectRoot()
let l:cwd = getcwd()
let l:maxdistance = len(split(l:cwd, '/')) - 2
let l:searchdir = ''

while len(split(l:searchdir, '/')) < l:maxdistance
for l:marker in ['.rootdir', '.git', '.hg', '.svn', 'bzr', '_darcs', 'build.xml']
let l:dir = l:searchdir.l:marker
if filereadable(l:dir) || isdirectory(l:dir)
return l:searchdir
endif
endfor
let l:searchdir = '../'.l:searchdir
endwhile

return l:cwd
endfunction

" The public facing function.
" Accept 1 or 2 arguments which basically get passed directly
" to the `ag` command.
Expand All @@ -173,8 +191,10 @@ function! SideSearch(args) abort

call s:append_guide()

" determine root directory
let l:cwd = s:guessProjectRoot()
" execute showing summary of stuff read (without silent)
let b:cmd = g:side_search_prg . ' ' . a:args
let b:cmd = g:side_search_prg . ' ' . a:args . ' ' . l:cwd
" Thanks: https://github.com/rking/ag.vim/blob/master/autoload/ag.vim#L154
let query = matchstr(a:args, "\\v(-)\@<!(\<)\@<=\\w+|['\"]\\zs.{-}\\ze['\"]")
let b:escaped_query = shellescape(query)
Expand Down

0 comments on commit be409b2

Please sign in to comment.