From 0c12c7ed7caf32bb7d7fd749c5ac8981023dbb24 Mon Sep 17 00:00:00 2001 From: Nate Jones Date: Fri, 17 Jun 2016 12:19:42 -0700 Subject: [PATCH] Find proper config when running in worktree (#14) Check if in worktree (by checking for a 'commondir' file) and using that to find the parent config. Otherwise just use the config in .git. closes #13 --- plugin/rhubarb.vim | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugin/rhubarb.vim b/plugin/rhubarb.vim index e6f4abf..a4fa710 100644 --- a/plugin/rhubarb.vim +++ b/plugin/rhubarb.vim @@ -11,14 +11,21 @@ if !exists('g:dispatch_compilers') endif let g:dispatch_compilers['hub'] = 'git' +function! s:config() abort + let common_dir = fugitive#buffer().repo().dir('commondir') + if filereadable(common_dir) + return fugitive#buffer().repo().dir(readfile(common_dir)[0] . '/config') + endif + return fugitive#buffer().repo().dir('config') +endfunction + augroup rhubarb autocmd! autocmd User Fugitive \ if expand('%:p') =~# '\.git[\/].*MSG$' && \ exists('+omnifunc') && \ &omnifunc =~# '^\%(syntaxcomplete#Complete\)\=$' && - \ !empty(filter( - \ readfile(fugitive#buffer().repo().dir('config')), + \ !empty(filter(readfile(s:config()), \ '!empty(rhubarb#homepage_for_url(matchstr(v:val, ''^\s*url\s*=\s*"\=\zs\S*'')))')) | \ setlocal omnifunc=rhubarb#omnifunc | \ endif