[vim] Make arguments to fzf#wrap() optional

fzf#wrap([name string,] [opts dict,] [fullscreen boolean])
This commit is contained in:
Junegunn Choi
2016-08-19 03:04:20 +09:00
parent 37dc273148
commit 62f6ff9d6c
2 changed files with 17 additions and 10 deletions

View File

@@ -154,13 +154,20 @@ function! s:common_sink(action, lines) abort
endtry
endfunction
" name string, [opts dict, [fullscreen boolean]]
function! fzf#wrap(name, ...)
if type(a:name) != type('')
throw 'invalid name type: string expected'
endif
let opts = copy(get(a:000, 0, {}))
let bang = get(a:000, 1, 0)
" [name string,] [opts dict,] [fullscreen boolean]
function! fzf#wrap(...)
let args = ['', {}, 0]
let expects = map(copy(args), 'type(v:val)')
let tidx = 0
for arg in copy(a:000)
let tidx = index(expects, type(arg), tidx)
if tidx < 0
throw 'invalid arguments (expected: [name string] [opts dict] [fullscreen boolean])'
endif
let args[tidx] = arg
let tidx += 1
endfor
let [name, opts, bang] = args
" Layout: g:fzf_layout (and deprecated g:fzf_height)
if bang
@@ -179,12 +186,12 @@ function! fzf#wrap(name, ...)
" History: g:fzf_history_dir
let opts.options = get(opts, 'options', '')
if len(get(g:, 'fzf_history_dir', ''))
if len(name) && len(get(g:, 'fzf_history_dir', ''))
let dir = expand(g:fzf_history_dir)
if !isdirectory(dir)
call mkdir(dir, 'p')
endif
let opts.options = join(['--history', s:escape(dir.'/'.a:name), opts.options])
let opts.options = join(['--history', s:escape(dir.'/'.name), opts.options])
endif
" Action: g:fzf_action