mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
docs: generate params/returns in builtin.txt #30654
This commit is contained in:
parent
2377443cd2
commit
7335988ce6
2948
runtime/doc/builtin.txt
generated
2948
runtime/doc/builtin.txt
generated
File diff suppressed because it is too large
Load Diff
@ -173,6 +173,7 @@ FUNCTIONS
|
||||
- *jobclose()* Obsolete name for |chanclose()|
|
||||
- *jobsend()* Obsolete name for |chansend()|
|
||||
- *last_buffer_nr()* Obsolete name for bufnr("$").
|
||||
- *rpcstart()* Use |jobstart()| with `{'rpc': v:true}` instead.
|
||||
- *rpcstop()* Use |jobstop()| instead to stop any job, or
|
||||
`chanclose(id, "rpc")` to close RPC communication
|
||||
without stopping the job. Use chanclose(id) to close
|
||||
|
689
runtime/lua/vim/_meta/vimfn.lua
generated
689
runtime/lua/vim/_meta/vimfn.lua
generated
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,11 @@
|
||||
|
||||
-- Generator for various vimdoc and Lua type files
|
||||
|
||||
local util = require('scripts.util')
|
||||
local fmt = string.format
|
||||
|
||||
local DEP_API_METADATA = 'build/funcs_metadata.mpack'
|
||||
local TEXT_WIDTH = 78
|
||||
|
||||
--- @class vim.api.metadata
|
||||
--- @field name string
|
||||
@ -170,9 +174,9 @@ local function render_fun_sig(f, params)
|
||||
end
|
||||
|
||||
if LUA_KEYWORDS[f] then
|
||||
return string.format("vim.fn['%s'] = function(%s) end", f, param_str)
|
||||
return fmt("vim.fn['%s'] = function(%s) end", f, param_str)
|
||||
else
|
||||
return string.format('function vim.fn.%s(%s) end', f, param_str)
|
||||
return fmt('function vim.fn.%s(%s) end', f, param_str)
|
||||
end
|
||||
end
|
||||
|
||||
@ -306,14 +310,13 @@ local function norm_text(x, special)
|
||||
)
|
||||
end
|
||||
|
||||
--- Generates LuaLS docstring for an API function.
|
||||
--- @param _f string
|
||||
--- @param fun vim.EvalFn
|
||||
--- @param write fun(line: string)
|
||||
local function render_api_meta(_f, fun, write)
|
||||
write('')
|
||||
|
||||
local util = require('scripts.util')
|
||||
|
||||
if vim.startswith(fun.name, 'nvim__') then
|
||||
write('--- @private')
|
||||
end
|
||||
@ -365,7 +368,7 @@ local function render_api_meta(_f, fun, write)
|
||||
end
|
||||
local param_str = table.concat(param_names, ', ')
|
||||
|
||||
write(string.format('function vim.api.%s(%s) end', fun.name, param_str))
|
||||
write(fmt('function vim.api.%s(%s) end', fun.name, param_str))
|
||||
end
|
||||
|
||||
--- @return table<string, vim.EvalFn>
|
||||
@ -393,6 +396,7 @@ local function get_api_keysets_meta()
|
||||
return ret
|
||||
end
|
||||
|
||||
--- Generates LuaLS docstring for an API keyset.
|
||||
--- @param _f string
|
||||
--- @param fun vim.EvalFn
|
||||
--- @param write fun(line: string)
|
||||
@ -412,6 +416,7 @@ local function get_eval_meta()
|
||||
return require('src/nvim/eval').funcs
|
||||
end
|
||||
|
||||
--- Generates LuaLS docstring for a Vimscript "eval" function.
|
||||
--- @param f string
|
||||
--- @param fun vim.EvalFn
|
||||
--- @param write fun(line: string)
|
||||
@ -421,7 +426,6 @@ local function render_eval_meta(f, fun, write)
|
||||
end
|
||||
|
||||
local funname = fun.name or f
|
||||
|
||||
local params = process_params(fun.params)
|
||||
|
||||
write('')
|
||||
@ -445,16 +449,18 @@ local function render_eval_meta(f, fun, write)
|
||||
for i, param in ipairs(params) do
|
||||
local pname, ptype = param[1], param[2]
|
||||
local optional = (pname ~= '...' and i > req_args) and '?' or ''
|
||||
write(string.format('--- @param %s%s %s', pname, optional, ptype))
|
||||
write(fmt('--- @param %s%s %s', pname, optional, ptype))
|
||||
end
|
||||
|
||||
if fun.returns ~= false then
|
||||
write('--- @return ' .. (fun.returns or 'any'))
|
||||
local ret_desc = fun.returns_desc and ' # ' .. fun.returns_desc or ''
|
||||
write('--- @return ' .. (fun.returns or 'any') .. ret_desc)
|
||||
end
|
||||
|
||||
write(render_fun_sig(funname, params))
|
||||
end
|
||||
|
||||
--- Generates vimdoc heading for a Vimscript "eval" function signature.
|
||||
--- @param name string
|
||||
--- @param name_tag boolean
|
||||
--- @param fun vim.EvalFn
|
||||
@ -486,19 +492,16 @@ local function render_sig_and_tag(name, name_tag, fun, write)
|
||||
write(string.rep(' ', tag_pad_len) .. tag)
|
||||
write(fun.signature)
|
||||
else
|
||||
write(string.format('%s%s%s', fun.signature, string.rep(' ', tag_pad_len - siglen), tag))
|
||||
write(fmt('%s%s%s', fun.signature, string.rep(' ', tag_pad_len - siglen), tag))
|
||||
end
|
||||
end
|
||||
|
||||
--- Generates vimdoc for a Vimscript "eval" function.
|
||||
--- @param f string
|
||||
--- @param fun vim.EvalFn
|
||||
--- @param write fun(line: string)
|
||||
local function render_eval_doc(f, fun, write)
|
||||
if fun.deprecated then
|
||||
return
|
||||
end
|
||||
|
||||
if not fun.signature then
|
||||
if fun.deprecated or not fun.signature then
|
||||
return
|
||||
end
|
||||
|
||||
@ -508,6 +511,9 @@ local function render_eval_doc(f, fun, write)
|
||||
return
|
||||
end
|
||||
|
||||
local params = process_params(fun.params)
|
||||
local req_args = type(fun.args) == 'table' and fun.args[1] or fun.args or 0
|
||||
|
||||
local desc_l = split(vim.trim(fun.desc))
|
||||
for _, l in ipairs(desc_l) do
|
||||
l = l:gsub('^ ', '')
|
||||
@ -523,6 +529,26 @@ local function render_eval_doc(f, fun, write)
|
||||
if #desc_l > 0 and not desc_l[#desc_l]:match('^<?$') then
|
||||
write('')
|
||||
end
|
||||
|
||||
if #params > 0 then
|
||||
write(util.md_to_vimdoc('Parameters: ~', 16, 16, TEXT_WIDTH))
|
||||
for i, param in ipairs(params) do
|
||||
local pname, ptype = param[1], param[2]
|
||||
local optional = (pname ~= '...' and i > req_args) and '?' or ''
|
||||
local s = fmt('- %-14s (`%s%s`)', fmt('{%s}', pname), ptype, optional)
|
||||
write(util.md_to_vimdoc(s, 16, 18, TEXT_WIDTH))
|
||||
end
|
||||
write('')
|
||||
end
|
||||
|
||||
if fun.returns ~= false then
|
||||
write(util.md_to_vimdoc('Return: ~', 16, 16, TEXT_WIDTH))
|
||||
local ret = ('(`%s`)'):format((fun.returns or 'any'))
|
||||
ret = ret .. (fun.returns_desc and ' ' .. fun.returns_desc or '')
|
||||
ret = util.md_to_vimdoc(ret, 18, 18, TEXT_WIDTH)
|
||||
write(ret)
|
||||
write('')
|
||||
end
|
||||
end
|
||||
|
||||
--- @param d vim.option_defaults
|
||||
@ -760,9 +786,9 @@ local function render_option_doc(_f, opt, write)
|
||||
|
||||
local name_str --- @type string
|
||||
if opt.abbreviation then
|
||||
name_str = string.format("'%s' '%s'", opt.full_name, opt.abbreviation)
|
||||
name_str = fmt("'%s' '%s'", opt.full_name, opt.abbreviation)
|
||||
else
|
||||
name_str = string.format("'%s'", opt.full_name)
|
||||
name_str = fmt("'%s'", opt.full_name)
|
||||
end
|
||||
|
||||
local otype = opt.type == 'boolean' and 'boolean' or opt.type
|
||||
@ -770,13 +796,13 @@ local function render_option_doc(_f, opt, write)
|
||||
local v = render_option_default(opt.defaults, true)
|
||||
local pad = string.rep('\t', math.max(1, math.ceil((24 - #name_str) / 8)))
|
||||
if opt.defaults.doc then
|
||||
local deflen = #string.format('%s%s%s (', name_str, pad, otype)
|
||||
local deflen = #fmt('%s%s%s (', name_str, pad, otype)
|
||||
--- @type string
|
||||
v = v:gsub('\n', '\n' .. string.rep(' ', deflen - 2))
|
||||
end
|
||||
write(string.format('%s%s%s\t(default %s)', name_str, pad, otype, v))
|
||||
write(fmt('%s%s%s\t(default %s)', name_str, pad, otype, v))
|
||||
else
|
||||
write(string.format('%s\t%s', name_str, otype))
|
||||
write(fmt('%s\t%s', name_str, otype))
|
||||
end
|
||||
|
||||
write('\t\t\t' .. scope_to_doc(opt.scope) .. scope_more_doc(opt))
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user