I'd like fzf.vim GFiles to add my current directory to initial query.
Before:
After:
I end up to create a custom command GFilesMonorepo
. Here is the implementation:
" ported from https://github.com/junegunn/fzf.vim/blob/master/autoload/fzf/vim.vim#L546
function! s:get_git_root()
let l:root = split(system('git rev-parse --show-toplevel'), '\n')[0]
if v:shell_error
return ''
endif
return l:root
endfunction
function! s:gitfiles_monorepo()
let l:root = s:get_git_root()
let l:path = substitute(getcwd(), l:root, '', '')
let l:path = substitute(l:path, '/', '', '')
let l:options = '-m --preview "head -20 {1}" --prompt "GitFiles> " '
if l:path != ''
let l:options .= '--query '.l:path
endif
call fzf#run({
\ 'source': 'git ls-files | uniq',
\ 'sink': 'e',
\ 'dir': l:root,
\ 'options': l:options,
\ 'down': '40%'
\})
endfunction
command! GFilesMonorepo call s:gitfiles_monorepo()
Top comments (0)