mirror of
https://github.com/tpope/vim-fugitive.git
synced 2025-12-23 04:11:33 +08:00
Improve flexibility of public API argument order
This allows tomfoolery like FugitiveConfig(dir)->FugitiveConfigGet(key). I'm not sure I want to officially endorse this usage, but if nothing else it makes interactive debugging a bit more fluid.
This commit is contained in:
@@ -72,11 +72,19 @@ endfunction
|
||||
" An optional second argument provides the Git dir, or the buffer number of a
|
||||
" buffer with a Git dir. The default is the current buffer.
|
||||
function! FugitiveFind(...) abort
|
||||
return fugitive#Find(a:0 ? a:1 : bufnr(''), FugitiveGitDir(a:0 > 1 ? a:2 : -1))
|
||||
if a:0 && type(a:1) ==# type({})
|
||||
return call('fugitive#Find', a:000[1:-1] + [FugitiveGitDir(a:1)])
|
||||
else
|
||||
return fugitive#Find(a:0 ? a:1 : bufnr(''), FugitiveGitDir(a:0 > 1 ? a:2 : -1))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! FugitivePath(...) abort
|
||||
if a:0 > 1
|
||||
if a:0 > 2 && type(a:1) ==# type({})
|
||||
return fugitive#Path(a:2, a:3, FugitiveGitDir(a:1))
|
||||
elseif a:0 && type(a:1) ==# type({})
|
||||
return FugitiveReal(a:0 > 1 ? a:2 : @%)
|
||||
elseif a:0 > 1
|
||||
return fugitive#Path(a:1, a:2, FugitiveGitDir(a:0 > 2 ? a:3 : -1))
|
||||
else
|
||||
return FugitiveReal(a:0 ? a:1 : @%)
|
||||
@@ -182,11 +190,20 @@ endfunction
|
||||
" An optional second argument provides the Git dir, or the buffer number of a
|
||||
" buffer with a Git dir. The default is the current buffer.
|
||||
function! FugitiveHead(...) abort
|
||||
let dir = FugitiveGitDir(a:0 > 1 ? a:2 : -1)
|
||||
if a:0 && type(a:1) ==# type({})
|
||||
let dir = FugitiveGitDir(a:1)
|
||||
let arg = get(a:, 2, 0)
|
||||
elseif a:0 > 1
|
||||
let dir = FugitiveGitDir(a:2)
|
||||
let arg = a:1
|
||||
else
|
||||
let dir = FugitiveGitDir()
|
||||
let args = get(a:, 1, 0)
|
||||
endif
|
||||
if empty(dir)
|
||||
return ''
|
||||
endif
|
||||
return fugitive#Head(a:0 ? a:1 : 0, dir)
|
||||
return fugitive#Head(arg, dir)
|
||||
endfunction
|
||||
|
||||
function! FugitiveStatusline(...) abort
|
||||
|
||||
Reference in New Issue
Block a user