diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-07-10 08:07:16 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 08:07:16 +0800 |
commit | 545aafbeb80eb52c182ce139800489b392a12d0d (patch) | |
tree | 580a4c7a0f42bddae3b4577054b8758906d4d631 /src/nvim/eval.lua | |
parent | f3c7fb9db176f32606e83eb47cc7549300191d2f (diff) | |
download | rneovim-545aafbeb80eb52c182ce139800489b392a12d0d.tar.gz rneovim-545aafbeb80eb52c182ce139800489b392a12d0d.tar.bz2 rneovim-545aafbeb80eb52c182ce139800489b392a12d0d.zip |
vim-patch:9.1.0547: No way to get the arity of a Vim function (#29638)
Problem: No way to get the arity of a Vim function
(Austin Ziegler)
Solution: Enhance get() Vim script function to return the function
argument info using get(func, "arity") (LemonBoy)
fixes: vim/vim#15097
closes: vim/vim#15109
https://github.com/vim/vim/commit/48b7d05a4f88c4326bd5d7a73a523f2d953b3e51
Co-authored-by: LemonBoy <thatlemon@gmail.com>
Diffstat (limited to 'src/nvim/eval.lua')
-rw-r--r-- | src/nvim/eval.lua | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 0e5503b829..72a3246da5 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -3141,6 +3141,7 @@ M.funcs = { name = 'get', params = { { 'list', 'any[]' }, { 'idx', 'integer' }, { 'default', 'any' } }, signature = 'get({list}, {idx} [, {default}])', + tags = { 'get()-list' }, }, get__1 = { args = { 2, 3 }, @@ -3153,6 +3154,7 @@ M.funcs = { name = 'get', params = { { 'blob', 'string' }, { 'idx', 'integer' }, { 'default', 'any' } }, signature = 'get({blob}, {idx} [, {default}])', + tags = { 'get()-blob' }, }, get__2 = { args = { 2, 3 }, @@ -3168,23 +3170,38 @@ M.funcs = { name = 'get', params = { { 'dict', 'table<string,any>' }, { 'key', 'string' }, { 'default', 'any' } }, signature = 'get({dict}, {key} [, {default}])', + tags = { 'get()-dict' }, }, get__3 = { args = { 2, 3 }, base = 1, desc = [=[ - Get item {what} from Funcref {func}. Possible values for + Get item {what} from |Funcref| {func}. Possible values for {what} are: - "name" The function name - "func" The function - "dict" The dictionary - "args" The list with arguments + "name" The function name + "func" The function + "dict" The dictionary + "args" The list with arguments + "arity" A dictionary with information about the number of + arguments accepted by the function (minus the + {arglist}) with the following fields: + required the number of positional arguments + optional the number of optional arguments, + in addition to the required ones + varargs |TRUE| if the function accepts a + variable number of arguments |...| + + Note: There is no error, if the {arglist} of + the Funcref contains more arguments than the + Funcref expects, it's not validated. + Returns zero on error. ]=], name = 'get', params = { { 'func', 'function' }, { 'what', 'string' } }, returns = 'any', signature = 'get({func}, {what})', + tags = { 'get()-func' }, }, getbufinfo = { args = { 0, 1 }, |