aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/options.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/options.lua')
-rw-r--r--src/nvim/options.lua92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/nvim/options.lua b/src/nvim/options.lua
index daaf73d241..4fdee925ad 100644
--- a/src/nvim/options.lua
+++ b/src/nvim/options.lua
@@ -9217,6 +9217,98 @@ return {
varname = 'p_ut',
},
{
+ abbreviation='umf',
+ full_name='usermarkfunc',
+ desc= [=[
+ This option specifies a function to be used to handle any marks
+ that Neovim does not natively handle. This option unlocks all
+ characters to be used as marks by the user.
+
+ The 'usermarkfunc' function is called each time a user mark is read
+ from or written to.
+
+ The 'usermarkfunc' function must take the following parameters:
+
+ {get_or_set} The action being done on this mark (either 'set'
+ or 'get'
+
+ {markname} The name of the mark either being read or .
+
+ In case the action is 'get', the 'usermarkfunc' function should return
+ the content associated with that mark. This can be a number indicating a
+ line number or it could be a dictionary with the keys:
+
+ {line} the line number
+
+ {col} the column number
+
+ {filename} the filename
+<
+ ]=],
+ short_desc=N_("Function used to define behavior of user-defined marks."),
+ type='string', scope={'buffer'},
+ varname='p_umf',
+ defaults={if_true=""}
+ },
+ {
+ abbreviation='urf',
+ full_name='userregfunc',
+ desc= [=[
+ This option specifies a function to be used to handle any registers
+ that Neovim does not natively handle. This option unlocks all
+ characters to be used as registers by the user.
+
+ The 'userregfunc' function is called each time a user register is read
+ from or written to.
+
+ The 'userregfunc' function must take the following parameters:
+
+ {action} The action being done on this register (either 'yank'
+ or 'put'
+
+ {register} The string holding the name of the register. This
+ is always a single character, though multi-byte
+ characters are allowed.
+
+ {content} If the action is 'yank' this is the content being
+ yanked into the register. The content is a dictionary
+ with the following items:
+
+ {lines} The lines being yanked, as a list.
+
+ {type} The type of yank, either "line", "char", or
+ "block"
+
+ {width} The width in case of "block" mode.
+
+ {additional_data} Additional data. (can be returned in
+ put mode).
+
+ In case the action is 'put', the 'userregfunc' function should return
+ the content to place in that location. The content can either be a
+ string, in which case "char" mode is inferred, or it can return a
+ dictionary of the same template that populates 'content'.
+
+ A very simple example of a 'userregfunc' function that behaves exactly
+ like traditional registers would look like: >
+
+ let s:contents = {}
+ function! MyUserregFunction(action, register, content) abort
+ if a:action == "put"
+ return get(s:contents, a:register, "")
+ else
+ let s:contents[a:register] = a:content
+ endif
+ endfunction
+ set userregfunc=MyUserregFunction
+<
+ ]=],
+ short_desc=N_("Function used to define behavior of user-defined registers."),
+ type='string', scope={'buffer'},
+ varname='p_urf',
+ defaults={if_true=""}
+ },
+ {
abbreviation = 'vsts',
cb = 'did_set_varsofttabstop',
defaults = { if_true = '' },