Unify jump to file logic

This commit is contained in:
Tim Pope
2018-07-25 02:03:00 -04:00
parent f818a947ae
commit 73c39195ae

View File

@@ -3023,7 +3023,7 @@ function! fugitive#MapJumps(...) abort
endif endif
endfunction endfunction
function! s:cfile() abort function! s:CfileList() abort
try try
let myhash = s:DirRev(@%)[1] let myhash = s:DirRev(@%)[1]
if len(myhash) if len(myhash)
@@ -3208,32 +3208,36 @@ function! s:cfile() abort
endtry endtry
endfunction endfunction
function! s:Cfile() abort
let pre = ''
let results = s:CfileList()
if empty(results)
return ''
elseif len(results) > 1
let pre = '+' . join(map(results[1:-1], 'escape(v:val, " ")'), '\|') . ' '
endif
return pre . s:fnameescape(s:Generate(results[0]))
endfunction
function! s:GF(mode) abort function! s:GF(mode) abort
try let cfile = s:Cfile()
let results = s:cfile() if len(cfile)
catch /^fugitive:/ return a:mode . ' ' . cfile
return 'echoerr v:errmsg'
endtry
if len(results)
return s:Edit(a:mode, 0, '', results[0]).join(map(results[1:-1], '"|".v:val'), '')
else else
return '' return ''
endif endif
endfunction endfunction
function! fugitive#Cfile() abort function! fugitive#Cfile(...) abort
let pre = '' let pre = ''
let results = s:cfile() let cfile = s:Cfile()
if empty(results) if empty(cfile)
let cfile = expand('<cfile>') let cfile = expand('<cfile>')
if &includeexpr =~# '\<v:fname\>' if &includeexpr =~# '\<v:fname\>'
sandbox let cfile = eval(substitute(&includeexpr, '\C\<v:fname\>', '\=string(cfile)', 'g')) sandbox let cfile = eval(substitute(&includeexpr, '\C\<v:fname\>', '\=string(cfile)', 'g'))
endif endif
return cfile
elseif len(results) > 1
let pre = '+' . join(map(results[1:-1], 'escape(v:val, " ")'), '\|') . ' '
endif endif
return pre . s:fnameescape(s:Generate(results[0])) return cfile
endfunction endfunction
function! fugitive#cfile() abort function! fugitive#cfile() abort