I have checked the implementation of fzf, it's impossible to extend by the customer.
I have some functions like below:
function! fzf#customized#quickfix(query, fullscreen) abort
let l:qf = getqflist()
let l:list = map(l:qf, { _, val -> bufname(val.bufnr). ':'. val.lnum . ':' . val.col . ':'. val.text})
if !empty(a:query)
let @/ = a:query
endif
let l:actions = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit'
\}
let l:dir = getcwd()
let l:spec = {
\'dir': l:dir,
\'sink*': { lines -> fzf#helper#colon_sink(lines, l:actions) },
\'source': l:list,
\'options': [
\'--expect', join(keys(actions), ','),
\'--ansi',
\'--prompt', 'Quickfix ',
\'--multi', '--bind', 'alt-a:select-all,alt-d:deselect-all',
\'--delimiter', ':', '--preview-window', '+{2}-/2'
\]}
call fzf#run(fzf#wrap('quickfix', fzf#vim#with_preview(l:spec), a:fullscreen))
endfunction
the fzf#run takes a single
dictionary argument, a spec, and starts fzf process accordingly. depending on the user's choice, the value of this dictionary may be very different. and usually called with fzf#wrap and fzf#vim#with_preview.
could you consider adding new opts for fzf backend like telescope which can let customers customize UI.
I have checked the implementation of fzf, it's impossible to extend by the customer.
I have some functions like below:
the
fzf#runtakes a singledictionary argument, a spec, and starts fzf process accordingly. depending on the user's choice, the value of this dictionary may be very different. and usually called with
fzf#wrapandfzf#vim#with_preview.could you consider adding new opts for
fzfbackend liketelescopewhich can let customers customize UI.