docs(lua): the keyset nilocalypse

This is needed to give recent LuaLS the right idea about optional fields.
This commit is contained in:
bfredl
2023-08-08 10:40:43 +02:00
parent 0211f889b9
commit 628763fbd8
2 changed files with 194 additions and 194 deletions

View File

@@ -4,246 +4,246 @@
error('Cannot require a meta file') error('Cannot require a meta file')
--- @class vim.api.keyset.clear_autocmds --- @class vim.api.keyset.clear_autocmds
--- @field buffer integer --- @field buffer? integer
--- @field event any --- @field event? any
--- @field group any --- @field group? any
--- @field pattern any --- @field pattern? any
--- @class vim.api.keyset.cmd --- @class vim.api.keyset.cmd
--- @field cmd string --- @field cmd? string
--- @field range any[] --- @field range? any[]
--- @field count integer --- @field count? integer
--- @field reg string --- @field reg? string
--- @field bang boolean --- @field bang? boolean
--- @field args any[] --- @field args? any[]
--- @field magic table<string,any> --- @field magic? table<string,any>
--- @field mods table<string,any> --- @field mods? table<string,any>
--- @field nargs any --- @field nargs? any
--- @field addr any --- @field addr? any
--- @field nextcmd any --- @field nextcmd? any
--- @class vim.api.keyset.cmd_magic --- @class vim.api.keyset.cmd_magic
--- @field file boolean --- @field file? boolean
--- @field bar boolean --- @field bar? boolean
--- @class vim.api.keyset.cmd_mods --- @class vim.api.keyset.cmd_mods
--- @field silent boolean --- @field silent? boolean
--- @field emsg_silent boolean --- @field emsg_silent? boolean
--- @field unsilent boolean --- @field unsilent? boolean
--- @field filter table<string,any> --- @field filter? table<string,any>
--- @field sandbox boolean --- @field sandbox? boolean
--- @field noautocmd boolean --- @field noautocmd? boolean
--- @field browse boolean --- @field browse? boolean
--- @field confirm boolean --- @field confirm? boolean
--- @field hide boolean --- @field hide? boolean
--- @field horizontal boolean --- @field horizontal? boolean
--- @field keepalt boolean --- @field keepalt? boolean
--- @field keepjumps boolean --- @field keepjumps? boolean
--- @field keepmarks boolean --- @field keepmarks? boolean
--- @field keeppatterns boolean --- @field keeppatterns? boolean
--- @field lockmarks boolean --- @field lockmarks? boolean
--- @field noswapfile boolean --- @field noswapfile? boolean
--- @field tab integer --- @field tab? integer
--- @field verbose integer --- @field verbose? integer
--- @field vertical boolean --- @field vertical? boolean
--- @field split string --- @field split? string
--- @class vim.api.keyset.cmd_mods_filter --- @class vim.api.keyset.cmd_mods_filter
--- @field pattern string --- @field pattern? string
--- @field force boolean --- @field force? boolean
--- @class vim.api.keyset.cmd_opts --- @class vim.api.keyset.cmd_opts
--- @field output boolean --- @field output? boolean
--- @class vim.api.keyset.context --- @class vim.api.keyset.context
--- @field types any[] --- @field types? any[]
--- @class vim.api.keyset.create_augroup --- @class vim.api.keyset.create_augroup
--- @field clear any --- @field clear? any
--- @class vim.api.keyset.create_autocmd --- @class vim.api.keyset.create_autocmd
--- @field buffer integer --- @field buffer? integer
--- @field callback any --- @field callback? any
--- @field command string --- @field command? string
--- @field desc string --- @field desc? string
--- @field group any --- @field group? any
--- @field nested boolean --- @field nested? boolean
--- @field once boolean --- @field once? boolean
--- @field pattern any --- @field pattern? any
--- @class vim.api.keyset.echo_opts --- @class vim.api.keyset.echo_opts
--- @field verbose boolean --- @field verbose? boolean
--- @class vim.api.keyset.eval_statusline --- @class vim.api.keyset.eval_statusline
--- @field winid integer --- @field winid? integer
--- @field maxwidth integer --- @field maxwidth? integer
--- @field fillchar string --- @field fillchar? string
--- @field highlights boolean --- @field highlights? boolean
--- @field use_winbar boolean --- @field use_winbar? boolean
--- @field use_tabline boolean --- @field use_tabline? boolean
--- @field use_statuscol_lnum integer --- @field use_statuscol_lnum? integer
--- @class vim.api.keyset.exec_autocmds --- @class vim.api.keyset.exec_autocmds
--- @field buffer integer --- @field buffer? integer
--- @field group any --- @field group? any
--- @field modeline boolean --- @field modeline? boolean
--- @field pattern any --- @field pattern? any
--- @field data any --- @field data? any
--- @class vim.api.keyset.exec_opts --- @class vim.api.keyset.exec_opts
--- @field output boolean --- @field output? boolean
--- @class vim.api.keyset.float_config --- @class vim.api.keyset.float_config
--- @field row number --- @field row? number
--- @field col number --- @field col? number
--- @field width integer --- @field width? integer
--- @field height integer --- @field height? integer
--- @field anchor string --- @field anchor? string
--- @field relative string --- @field relative? string
--- @field win integer --- @field win? integer
--- @field bufpos any[] --- @field bufpos? any[]
--- @field external boolean --- @field external? boolean
--- @field focusable boolean --- @field focusable? boolean
--- @field zindex integer --- @field zindex? integer
--- @field border any --- @field border? any
--- @field title any --- @field title? any
--- @field title_pos string --- @field title_pos? string
--- @field style string --- @field style? string
--- @field noautocmd boolean --- @field noautocmd? boolean
--- @class vim.api.keyset.get_autocmds --- @class vim.api.keyset.get_autocmds
--- @field event any --- @field event? any
--- @field group any --- @field group? any
--- @field pattern any --- @field pattern? any
--- @field buffer any --- @field buffer? any
--- @class vim.api.keyset.get_commands --- @class vim.api.keyset.get_commands
--- @field builtin boolean --- @field builtin? boolean
--- @class vim.api.keyset.get_highlight --- @class vim.api.keyset.get_highlight
--- @field id integer --- @field id? integer
--- @field name string --- @field name? string
--- @field link boolean --- @field link? boolean
--- @class vim.api.keyset.highlight --- @class vim.api.keyset.highlight
--- @field bold boolean --- @field bold? boolean
--- @field standout boolean --- @field standout? boolean
--- @field strikethrough boolean --- @field strikethrough? boolean
--- @field underline boolean --- @field underline? boolean
--- @field undercurl boolean --- @field undercurl? boolean
--- @field underdouble boolean --- @field underdouble? boolean
--- @field underdotted boolean --- @field underdotted? boolean
--- @field underdashed boolean --- @field underdashed? boolean
--- @field italic boolean --- @field italic? boolean
--- @field reverse boolean --- @field reverse? boolean
--- @field altfont boolean --- @field altfont? boolean
--- @field nocombine boolean --- @field nocombine? boolean
--- @field default boolean --- @field default? boolean
--- @field cterm any --- @field cterm? any
--- @field foreground any --- @field foreground? any
--- @field fg any --- @field fg? any
--- @field background any --- @field background? any
--- @field bg any --- @field bg? any
--- @field ctermfg any --- @field ctermfg? any
--- @field ctermbg any --- @field ctermbg? any
--- @field special any --- @field special? any
--- @field sp any --- @field sp? any
--- @field link any --- @field link? any
--- @field global_link any --- @field global_link? any
--- @field fallback boolean --- @field fallback? boolean
--- @field blend integer --- @field blend? integer
--- @field fg_indexed boolean --- @field fg_indexed? boolean
--- @field bg_indexed boolean --- @field bg_indexed? boolean
--- @class vim.api.keyset.highlight_cterm --- @class vim.api.keyset.highlight_cterm
--- @field bold boolean --- @field bold? boolean
--- @field standout boolean --- @field standout? boolean
--- @field strikethrough boolean --- @field strikethrough? boolean
--- @field underline boolean --- @field underline? boolean
--- @field undercurl boolean --- @field undercurl? boolean
--- @field underdouble boolean --- @field underdouble? boolean
--- @field underdotted boolean --- @field underdotted? boolean
--- @field underdashed boolean --- @field underdashed? boolean
--- @field italic boolean --- @field italic? boolean
--- @field reverse boolean --- @field reverse? boolean
--- @field altfont boolean --- @field altfont? boolean
--- @field nocombine boolean --- @field nocombine? boolean
--- @class vim.api.keyset.keymap --- @class vim.api.keyset.keymap
--- @field noremap boolean --- @field noremap? boolean
--- @field nowait boolean --- @field nowait? boolean
--- @field silent boolean --- @field silent? boolean
--- @field script boolean --- @field script? boolean
--- @field expr boolean --- @field expr? boolean
--- @field unique boolean --- @field unique? boolean
--- @field callback function --- @field callback? function
--- @field desc string --- @field desc? string
--- @field replace_keycodes boolean --- @field replace_keycodes? boolean
--- @class vim.api.keyset.option --- @class vim.api.keyset.option
--- @field scope string --- @field scope? string
--- @field win integer --- @field win? integer
--- @field buf integer --- @field buf? integer
--- @field filetype string --- @field filetype? string
--- @class vim.api.keyset.runtime --- @class vim.api.keyset.runtime
--- @field is_lua boolean --- @field is_lua? boolean
--- @field do_source boolean --- @field do_source? boolean
--- @class vim.api.keyset.set_decoration_provider --- @class vim.api.keyset.set_decoration_provider
--- @field on_start function --- @field on_start? function
--- @field on_buf function --- @field on_buf? function
--- @field on_win function --- @field on_win? function
--- @field on_line function --- @field on_line? function
--- @field on_end function --- @field on_end? function
--- @field _on_hl_def function --- @field _on_hl_def? function
--- @field _on_spell_nav function --- @field _on_spell_nav? function
--- @class vim.api.keyset.set_extmark --- @class vim.api.keyset.set_extmark
--- @field id integer --- @field id? integer
--- @field end_line integer --- @field end_line? integer
--- @field end_row integer --- @field end_row? integer
--- @field end_col integer --- @field end_col? integer
--- @field hl_group any --- @field hl_group? any
--- @field virt_text any[] --- @field virt_text? any[]
--- @field virt_text_pos string --- @field virt_text_pos? string
--- @field virt_text_win_col integer --- @field virt_text_win_col? integer
--- @field virt_text_hide boolean --- @field virt_text_hide? boolean
--- @field hl_eol boolean --- @field hl_eol? boolean
--- @field hl_mode string --- @field hl_mode? string
--- @field ephemeral boolean --- @field ephemeral? boolean
--- @field priority integer --- @field priority? integer
--- @field right_gravity boolean --- @field right_gravity? boolean
--- @field end_right_gravity boolean --- @field end_right_gravity? boolean
--- @field virt_lines any[] --- @field virt_lines? any[]
--- @field virt_lines_above boolean --- @field virt_lines_above? boolean
--- @field virt_lines_leftcol boolean --- @field virt_lines_leftcol? boolean
--- @field strict boolean --- @field strict? boolean
--- @field sign_text string --- @field sign_text? string
--- @field sign_hl_group any --- @field sign_hl_group? any
--- @field number_hl_group any --- @field number_hl_group? any
--- @field line_hl_group any --- @field line_hl_group? any
--- @field cursorline_hl_group any --- @field cursorline_hl_group? any
--- @field conceal string --- @field conceal? string
--- @field spell boolean --- @field spell? boolean
--- @field ui_watched boolean --- @field ui_watched? boolean
--- @class vim.api.keyset.user_command --- @class vim.api.keyset.user_command
--- @field addr any --- @field addr? any
--- @field bang boolean --- @field bang? boolean
--- @field bar boolean --- @field bar? boolean
--- @field complete any --- @field complete? any
--- @field count any --- @field count? any
--- @field desc any --- @field desc? any
--- @field force boolean --- @field force? boolean
--- @field keepscript boolean --- @field keepscript? boolean
--- @field nargs any --- @field nargs? any
--- @field preview any --- @field preview? any
--- @field range any --- @field range? any
--- @field register boolean --- @field register? boolean
--- @class vim.api.keyset.win_text_height --- @class vim.api.keyset.win_text_height
--- @field start_row integer --- @field start_row? integer
--- @field end_row integer --- @field end_row? integer
--- @field start_vcol integer --- @field start_vcol? integer
--- @field end_vcol integer --- @field end_vcol? integer

View File

@@ -295,7 +295,7 @@ local function get_api_keysets_meta()
for _, k in ipairs(keysets) do for _, k in ipairs(keysets) do
local params = {} local params = {}
for _, key in ipairs(k.keys) do for _, key in ipairs(k.keys) do
table.insert(params, {key, api_type(k.types[key] or 'any')}) table.insert(params, {key..'?', api_type(k.types[key] or 'any')})
end end
ret[k.name] = { ret[k.name] = {
signature = 'NA', signature = 'NA',