fix(docs): markdown instead of vimdoc in meta docstrings #30680

LuaLS/meta docstrings expect markdown, not vimdoc. This matters for lists, codeblocks, etc.

Also, line length doesn't matter for docstrings.
This commit is contained in:
Justin M. Keyes 2024-10-06 03:24:21 -07:00 committed by GitHub
parent a2008118a0
commit 056009f741
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 900 additions and 975 deletions

File diff suppressed because it is too large Load Diff

View File

@ -321,30 +321,18 @@ local function render_api_meta(_f, fun, write)
local desc = fun.desc
if desc then
desc = util.md_to_vimdoc(desc, 0, 0, 74)
for _, l in ipairs(split(norm_text(desc))) do
write('--- ' .. l)
end
write(util.prefix_lines('--- ', norm_text(desc)))
end
-- LuaLS doesn't support @note. Render @note items as a markdown list.
if fun.notes and #fun.notes > 0 then
write('--- Note:')
for _, note in ipairs(fun.notes) do
-- XXX: abuse md_to_vimdoc() to force-fit the markdown list. Need norm_md()?
note = util.md_to_vimdoc(' - ' .. note, 0, 0, 74)
for _, l in ipairs(split(vim.trim(norm_text(note)))) do
write('--- ' .. l:gsub('\n*$', ''))
end
end
write(util.prefix_lines('--- ', table.concat(fun.notes, '\n')))
write('---')
end
for _, see in ipairs(fun.see or {}) do
see = util.md_to_vimdoc('@see ' .. see, 0, 0, 74)
for _, l in ipairs(split(vim.trim(norm_text(see)))) do
write('--- ' .. l:gsub([[\s*$]], ''))
end
write(util.prefix_lines('--- @see ', norm_text(see)))
end
local param_names = {} --- @type string[]
@ -354,8 +342,6 @@ local function render_api_meta(_f, fun, write)
local pdesc = p[3]
if pdesc then
local s = '--- @param ' .. p[1] .. ' ' .. p[2] .. ' '
local indent = #('@param ' .. p[1] .. ' ')
pdesc = util.md_to_vimdoc(pdesc, #s, indent, 74, true)
local pdesc_a = split(vim.trim(norm_text(pdesc)))
write(s .. pdesc_a[1])
for i = 2, #pdesc_a do
@ -372,7 +358,7 @@ local function render_api_meta(_f, fun, write)
if fun.returns ~= '' then
local ret_desc = fun.returns_desc and ' # ' .. fun.returns_desc or ''
local ret = LUA_API_RETURN_OVERRIDES[fun.name] or fun.returns
write(util.prefix('--- ', '@return ' .. ret .. ret_desc))
write(util.prefix_lines('--- ', '@return ' .. ret .. ret_desc))
end
local param_str = table.concat(param_names, ', ')

View File

@ -175,15 +175,16 @@ end
--- Prefixes each line in `text`.
---
--- Does not wrap, that's not important for "meta" files? (You probably want md_to_vimdoc instead.)
--- Does not wrap, not important for "meta" files? (You probably want md_to_vimdoc instead.)
---
--- @param text string
--- @param prefix_ string
function M.prefix(prefix_, text)
if (text):find('\n$') then
return text:gsub('([^\n]*)[\t ]*\n', prefix_ .. '%1\n')
function M.prefix_lines(prefix_, text)
local r = ''
for _, l in ipairs(vim.split(text, '\n', { plain = true })) do
r = r .. vim.trim(prefix_ .. l) .. '\n'
end
return prefix_ .. text:gsub('([^\n]*)[\t ]*\n', '%1\n' .. prefix_)
return r
end
--- @param x string