`s:action_for` does not recognize function references
- Dominant language
- Vim Script
- Stars
- 10.3k
- Forks
- 608
- Avg merge
- 5d 8h
- Merged PRs (30d)
- 2
Description
- [x] I have fzf 0.22.0 or above
- [x] I have read through https://github.com/junegunn/fzf.vim/blob/master/README.md
- [x] I have read through https://github.com/junegunn/fzf/blob/master/README-VIM.md
- [x] I have read through the manual page of fzf (`man fzf`)
- [x] I have searched through the existing issues
From the examples in the `fzf.txt` help
```
" An action can be a reference to a function that processes selected lines
function! s:build_quickfix_list(lines)
call setqflist(map(copy(a:lines), '{ "filename": v:val }'))
copen
cc
endfunction
let g:fzf_action = {
\ 'ctrl-q': function('s:build_quickfix_list'),
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
```
I would like to extend it to
```
function! s:build_quickfix_list(lines)
call setqflist(map(copy(a:lines), '{ "filename": v:val }'))
copen
cc
endfunction
function! s:build_location_list(lines)
call setloclist(win_getid(), map(copy(a:lines), '{ "filename": v:val }'))
lopen
cc
endfunction
let g:fzf_action = {
\ 'ctrl-q': function('s:build_quickfix_list'),
\ 'ctrl-w': function('s:build_location_list'),
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
```
It does not work with selected entries in the `fzf` results (searched
with `rg`). The `s:ag_handler` calls `s:action_for` with an `e`
argument to ensure the edit of the first list entry but then forces to
call `s:fill_quicklist`. Everything defined in `g:fzf_action` that is
not a string type is ignored in `s:action_for`. The documentation above
is misleading because
```
function! s:build_quickfix_list(lines)
" nop
endfunction
let g:fzf_action = {
\ 'ctrl-q': function('s:build_quickfix_list'),
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
```
would yield the same result.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.