patch 9.1.0810: cannot easily adjust the |:find| command
Problem: cannot easily adjust the |:find| command Solution: Add support for the 'findexpr' option (Yegappan Lakshmanan) closes: #15901 closes: #15905 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
626b6ab486
commit
aeb1c97db5
@ -3552,6 +3552,51 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
eob EndOfBuffer |hl-EndOfBuffer|
|
||||
lastline NonText |hl-NonText|
|
||||
|
||||
*'findexpr'* *'fexpr'*
|
||||
'findexpr' 'fexpr' string (default "")
|
||||
global or local to buffer |global-local|
|
||||
{not available when compiled without the |+eval|
|
||||
feature}
|
||||
Expression that is evaluated to obtain the filename(s) for the |:find|
|
||||
command. When this option is empty, the internal |file-searching|
|
||||
mechanism is used.
|
||||
|
||||
While evaluating the expression, the |v:fname| variable is set to the
|
||||
argument of the |:find| command.
|
||||
|
||||
The expression is evaluated only once per |:find| command invocation.
|
||||
The expression can process all the directories specified in 'path'.
|
||||
|
||||
If a match is found, the expression should return a |List| containing
|
||||
one or more file names. If a match is not found, the expression
|
||||
should return an empty List.
|
||||
|
||||
If any errors are encountered during the expression evaluation, an
|
||||
empty List is used as the return value.
|
||||
|
||||
Using a function call without arguments is faster |expr-option-function|
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'findexpr' |textlock|.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
Examples:
|
||||
>
|
||||
" Use glob()
|
||||
func FindExprGlob()
|
||||
return glob(v:fname, v:false, v:true)
|
||||
endfunc
|
||||
set findexpr=FindExprGlob()
|
||||
|
||||
" Use the 'git ls-files' output
|
||||
func FindGitFiles()
|
||||
let fnames = systemlist('git ls-files')
|
||||
return fnames->filter('v:val =~? v:fname')
|
||||
endfunc
|
||||
set findexpr=FindGitFiles()
|
||||
<
|
||||
*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
|
||||
'fixendofline' 'fixeol' boolean (default on)
|
||||
local to buffer
|
||||
|
||||
Reference in New Issue
Block a user