Introduce 'operatorfunc' option for custom operators #785
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the
'operatorfunc'
option. This option contains the name of a function that can act like a custom operator, and is called by theg@
command, such as in this example from the #702 discussion:Using a command such as
gxiw
, this map will invoke the custom operator function on a given word, and replace it withx
characters.The
'opfunc'
option can be the name of a function, a reference fromfunction('…')
orfuncref('…')
or a lambda.This PR also allows an extension to export a script function that can be called from the VimScript executor, which is a simple wrapper function that invokes extension code. A helper function has been added to create a script function with the right signature for operator functions. All extensions have been updated to export a function, and to use the
'operatorfunc'
option.