wilderのファイル補完関数を自分で定義する
エラー吐くし動かないけど大体こんな感じ、ソースを配列にして wilder#check で弾いたら次のソースが補完リストになる
code:vim
function! MyCompletionFunction(x, ctx) abort
let query = len(split(a:x.input, ' ')) == 1 ? '' : split(a:x.input, ' ')-1 if query == ''
return { 'value': [] }
endif
let filelist = systemlist('fd --type file --hidden --exclude .git --strip-cwd-prefix | fzf --filter ' . query)
let result = wilder#cmdline#parse(a:ctx)
return {
\ 'value': filelist,
\ 'data': { 'query': split(result.cmdline, ' ')-1 }, \ }
endfunction
\ wilder#branch(
\ [
\ {_, x -> wilder#cmdline#parse(x)},
\ wilder#check({ctx, res -> wilder#cmdline#should_use_file_finder(res)}),
\ {ctx, res -> MyCompletionFunction(ctx, res)},
\ ],
\ wilder#cmdline_pipeline({'fuzzy': 1}),
\ [
\ wilder#check({_, x -> empty(x)}),
\ wilder#history(),
\ ],
\ wilder#python_search_pipeline({
\ 'pattern': wilder#python_fuzzy_pattern({
\ 'start_at_boundary': 0,
\ }),
\ }),
\ wilder#vim_search_pipeline()
\ ),
\ ])