From 48d533272e57e91e4d14c93b26d4922957f40cd7 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Tue, 1 Aug 2023 14:20:44 +0100 Subject: feat(lua-types): types for vim.api.* (#24523) --- runtime/lua/vim/_meta/api_keysets.lua | 249 ++++++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 runtime/lua/vim/_meta/api_keysets.lua (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua new file mode 100644 index 0000000000..184eb7a060 --- /dev/null +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -0,0 +1,249 @@ +--- @meta +-- THIS FILE IS GENERATED +-- DO NOT EDIT +error('Cannot require a meta file') + +--- @class vim.api.keyset.clear_autocmds +--- @field buffer any +--- @field event any +--- @field group any +--- @field pattern any + +--- @class vim.api.keyset.cmd +--- @field cmd any +--- @field range any +--- @field count any +--- @field reg any +--- @field bang any +--- @field args any +--- @field magic any +--- @field mods any +--- @field nargs any +--- @field addr any +--- @field nextcmd any + +--- @class vim.api.keyset.cmd_magic +--- @field file any +--- @field bar any + +--- @class vim.api.keyset.cmd_mods +--- @field silent any +--- @field emsg_silent any +--- @field unsilent any +--- @field filter any +--- @field sandbox any +--- @field noautocmd any +--- @field browse any +--- @field confirm any +--- @field hide any +--- @field horizontal any +--- @field keepalt any +--- @field keepjumps any +--- @field keepmarks any +--- @field keeppatterns any +--- @field lockmarks any +--- @field noswapfile any +--- @field tab any +--- @field verbose any +--- @field vertical any +--- @field split any + +--- @class vim.api.keyset.cmd_mods_filter +--- @field pattern any +--- @field force any + +--- @class vim.api.keyset.cmd_opts +--- @field output any + +--- @class vim.api.keyset.context +--- @field types any + +--- @class vim.api.keyset.create_augroup +--- @field clear any + +--- @class vim.api.keyset.create_autocmd +--- @field buffer any +--- @field callback any +--- @field command any +--- @field desc any +--- @field group any +--- @field nested any +--- @field once any +--- @field pattern any + +--- @class vim.api.keyset.echo_opts +--- @field verbose any + +--- @class vim.api.keyset.eval_statusline +--- @field winid any +--- @field maxwidth any +--- @field fillchar any +--- @field highlights any +--- @field use_winbar any +--- @field use_tabline any +--- @field use_statuscol_lnum any + +--- @class vim.api.keyset.exec_autocmds +--- @field buffer any +--- @field group any +--- @field modeline any +--- @field pattern any +--- @field data any + +--- @class vim.api.keyset.exec_opts +--- @field output any + +--- @class vim.api.keyset.float_config +--- @field row any +--- @field col any +--- @field width any +--- @field height any +--- @field anchor any +--- @field relative any +--- @field win any +--- @field bufpos any +--- @field external any +--- @field focusable any +--- @field zindex any +--- @field border any +--- @field title any +--- @field title_pos any +--- @field style any +--- @field noautocmd any + +--- @class vim.api.keyset.get_autocmds +--- @field event any +--- @field group any +--- @field pattern any +--- @field buffer any + +--- @class vim.api.keyset.get_commands +--- @field builtin any + +--- @class vim.api.keyset.get_highlight +--- @field id any +--- @field name any +--- @field link any + +--- @class vim.api.keyset.highlight +--- @field bold any +--- @field standout any +--- @field strikethrough any +--- @field underline any +--- @field undercurl any +--- @field underdouble any +--- @field underdotted any +--- @field underdashed any +--- @field italic any +--- @field reverse any +--- @field altfont any +--- @field nocombine any +--- @field default_ any +--- @field cterm any +--- @field foreground any +--- @field fg any +--- @field background any +--- @field bg any +--- @field ctermfg any +--- @field ctermbg any +--- @field special any +--- @field sp any +--- @field link any +--- @field global_link any +--- @field fallback any +--- @field blend any +--- @field fg_indexed any +--- @field bg_indexed any + +--- @class vim.api.keyset.highlight_cterm +--- @field bold any +--- @field standout any +--- @field strikethrough any +--- @field underline any +--- @field undercurl any +--- @field underdouble any +--- @field underdotted any +--- @field underdashed any +--- @field italic any +--- @field reverse any +--- @field altfont any +--- @field nocombine any + +--- @class vim.api.keyset.keymap +--- @field noremap any +--- @field nowait any +--- @field silent any +--- @field script any +--- @field expr any +--- @field unique any +--- @field callback any +--- @field desc any +--- @field replace_keycodes any + +--- @class vim.api.keyset.option +--- @field scope any +--- @field win any +--- @field buf any +--- @field filetype any + +--- @class vim.api.keyset.runtime +--- @field is_lua any +--- @field do_source any + +--- @class vim.api.keyset.set_decoration_provider +--- @field on_start any +--- @field on_buf any +--- @field on_win any +--- @field on_line any +--- @field on_end any +--- @field _on_hl_def any +--- @field _on_spell_nav any + +--- @class vim.api.keyset.set_extmark +--- @field id any +--- @field end_line any +--- @field end_row any +--- @field end_col any +--- @field hl_group any +--- @field virt_text any +--- @field virt_text_pos any +--- @field virt_text_win_col any +--- @field virt_text_hide any +--- @field hl_eol any +--- @field hl_mode any +--- @field ephemeral any +--- @field priority any +--- @field right_gravity any +--- @field end_right_gravity any +--- @field virt_lines any +--- @field virt_lines_above any +--- @field virt_lines_leftcol any +--- @field strict any +--- @field sign_text any +--- @field sign_hl_group any +--- @field number_hl_group any +--- @field line_hl_group any +--- @field cursorline_hl_group any +--- @field conceal any +--- @field spell any +--- @field ui_watched any + +--- @class vim.api.keyset.user_command +--- @field addr any +--- @field bang any +--- @field bar any +--- @field complete any +--- @field count any +--- @field desc any +--- @field force any +--- @field keepscript any +--- @field nargs any +--- @field preview any +--- @field range any +--- @field register_ any + +--- @class vim.api.keyset.win_text_height +--- @field start_row any +--- @field end_row any +--- @field start_vcol any +--- @field end_vcol any -- cgit From 51c754b62e795c49cfcf9df3ab492bdd53c61482 Mon Sep 17 00:00:00 2001 From: bfredl Date: Wed, 2 Aug 2023 13:15:30 +0200 Subject: feat(lua): use keyset type information --- runtime/lua/vim/_meta/api_keysets.lua | 302 +++++++++++++++++----------------- 1 file changed, 151 insertions(+), 151 deletions(-) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 184eb7a060..5f8cb93144 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -4,112 +4,112 @@ error('Cannot require a meta file') --- @class vim.api.keyset.clear_autocmds ---- @field buffer any +--- @field buffer integer --- @field event any --- @field group any --- @field pattern any --- @class vim.api.keyset.cmd ---- @field cmd any ---- @field range any ---- @field count any ---- @field reg any ---- @field bang any ---- @field args any ---- @field magic any ---- @field mods any +--- @field cmd string +--- @field range any[] +--- @field count integer +--- @field reg string +--- @field bang boolean +--- @field args any[] +--- @field magic table +--- @field mods table --- @field nargs any --- @field addr any --- @field nextcmd any --- @class vim.api.keyset.cmd_magic ---- @field file any ---- @field bar any +--- @field file boolean +--- @field bar boolean --- @class vim.api.keyset.cmd_mods ---- @field silent any ---- @field emsg_silent any ---- @field unsilent any ---- @field filter any ---- @field sandbox any ---- @field noautocmd any ---- @field browse any ---- @field confirm any ---- @field hide any ---- @field horizontal any ---- @field keepalt any ---- @field keepjumps any ---- @field keepmarks any ---- @field keeppatterns any ---- @field lockmarks any ---- @field noswapfile any ---- @field tab any ---- @field verbose any ---- @field vertical any ---- @field split any +--- @field silent boolean +--- @field emsg_silent boolean +--- @field unsilent boolean +--- @field filter table +--- @field sandbox boolean +--- @field noautocmd boolean +--- @field browse boolean +--- @field confirm boolean +--- @field hide boolean +--- @field horizontal boolean +--- @field keepalt boolean +--- @field keepjumps boolean +--- @field keepmarks boolean +--- @field keeppatterns boolean +--- @field lockmarks boolean +--- @field noswapfile boolean +--- @field tab integer +--- @field verbose integer +--- @field vertical boolean +--- @field split string --- @class vim.api.keyset.cmd_mods_filter ---- @field pattern any ---- @field force any +--- @field pattern string +--- @field force boolean --- @class vim.api.keyset.cmd_opts ---- @field output any +--- @field output boolean --- @class vim.api.keyset.context ---- @field types any +--- @field types any[] --- @class vim.api.keyset.create_augroup --- @field clear any --- @class vim.api.keyset.create_autocmd ---- @field buffer any +--- @field buffer integer --- @field callback any ---- @field command any ---- @field desc any +--- @field command string +--- @field desc string --- @field group any ---- @field nested any ---- @field once any +--- @field nested boolean +--- @field once boolean --- @field pattern any --- @class vim.api.keyset.echo_opts ---- @field verbose any +--- @field verbose boolean --- @class vim.api.keyset.eval_statusline ---- @field winid any ---- @field maxwidth any ---- @field fillchar any ---- @field highlights any ---- @field use_winbar any ---- @field use_tabline any ---- @field use_statuscol_lnum any +--- @field winid integer +--- @field maxwidth integer +--- @field fillchar string +--- @field highlights boolean +--- @field use_winbar boolean +--- @field use_tabline boolean +--- @field use_statuscol_lnum integer --- @class vim.api.keyset.exec_autocmds ---- @field buffer any +--- @field buffer integer --- @field group any ---- @field modeline any +--- @field modeline boolean --- @field pattern any --- @field data any --- @class vim.api.keyset.exec_opts ---- @field output any +--- @field output boolean --- @class vim.api.keyset.float_config ---- @field row any ---- @field col any ---- @field width any ---- @field height any ---- @field anchor any ---- @field relative any ---- @field win any ---- @field bufpos any ---- @field external any ---- @field focusable any ---- @field zindex any +--- @field row number +--- @field col number +--- @field width integer +--- @field height integer +--- @field anchor string +--- @field relative string +--- @field win integer +--- @field bufpos any[] +--- @field external boolean +--- @field focusable boolean +--- @field zindex integer --- @field border any --- @field title any ---- @field title_pos any ---- @field style any ---- @field noautocmd any +--- @field title_pos string +--- @field style string +--- @field noautocmd boolean --- @class vim.api.keyset.get_autocmds --- @field event any @@ -118,27 +118,27 @@ error('Cannot require a meta file') --- @field buffer any --- @class vim.api.keyset.get_commands ---- @field builtin any +--- @field builtin boolean --- @class vim.api.keyset.get_highlight ---- @field id any ---- @field name any ---- @field link any +--- @field id integer +--- @field name string +--- @field link boolean --- @class vim.api.keyset.highlight ---- @field bold any ---- @field standout any ---- @field strikethrough any ---- @field underline any ---- @field undercurl any ---- @field underdouble any ---- @field underdotted any ---- @field underdashed any ---- @field italic any ---- @field reverse any ---- @field altfont any ---- @field nocombine any ---- @field default_ any +--- @field bold boolean +--- @field standout boolean +--- @field strikethrough boolean +--- @field underline boolean +--- @field undercurl boolean +--- @field underdouble boolean +--- @field underdotted boolean +--- @field underdashed boolean +--- @field italic boolean +--- @field reverse boolean +--- @field altfont boolean +--- @field nocombine boolean +--- @field default boolean --- @field cterm any --- @field foreground any --- @field fg any @@ -150,100 +150,100 @@ error('Cannot require a meta file') --- @field sp any --- @field link any --- @field global_link any ---- @field fallback any ---- @field blend any ---- @field fg_indexed any ---- @field bg_indexed any +--- @field fallback boolean +--- @field blend integer +--- @field fg_indexed boolean +--- @field bg_indexed boolean --- @class vim.api.keyset.highlight_cterm ---- @field bold any ---- @field standout any ---- @field strikethrough any ---- @field underline any ---- @field undercurl any ---- @field underdouble any ---- @field underdotted any ---- @field underdashed any ---- @field italic any ---- @field reverse any ---- @field altfont any ---- @field nocombine any +--- @field bold boolean +--- @field standout boolean +--- @field strikethrough boolean +--- @field underline boolean +--- @field undercurl boolean +--- @field underdouble boolean +--- @field underdotted boolean +--- @field underdashed boolean +--- @field italic boolean +--- @field reverse boolean +--- @field altfont boolean +--- @field nocombine boolean --- @class vim.api.keyset.keymap ---- @field noremap any ---- @field nowait any ---- @field silent any ---- @field script any ---- @field expr any ---- @field unique any ---- @field callback any ---- @field desc any ---- @field replace_keycodes any +--- @field noremap boolean +--- @field nowait boolean +--- @field silent boolean +--- @field script boolean +--- @field expr boolean +--- @field unique boolean +--- @field callback function +--- @field desc string +--- @field replace_keycodes boolean --- @class vim.api.keyset.option ---- @field scope any ---- @field win any ---- @field buf any ---- @field filetype any +--- @field scope string +--- @field win integer +--- @field buf integer +--- @field filetype string --- @class vim.api.keyset.runtime ---- @field is_lua any ---- @field do_source any +--- @field is_lua boolean +--- @field do_source boolean --- @class vim.api.keyset.set_decoration_provider ---- @field on_start any ---- @field on_buf any ---- @field on_win any ---- @field on_line any ---- @field on_end any ---- @field _on_hl_def any ---- @field _on_spell_nav any +--- @field on_start function +--- @field on_buf function +--- @field on_win function +--- @field on_line function +--- @field on_end function +--- @field _on_hl_def function +--- @field _on_spell_nav function --- @class vim.api.keyset.set_extmark ---- @field id any ---- @field end_line any ---- @field end_row any ---- @field end_col any +--- @field id integer +--- @field end_line integer +--- @field end_row integer +--- @field end_col integer --- @field hl_group any ---- @field virt_text any ---- @field virt_text_pos any ---- @field virt_text_win_col any ---- @field virt_text_hide any ---- @field hl_eol any ---- @field hl_mode any ---- @field ephemeral any ---- @field priority any ---- @field right_gravity any ---- @field end_right_gravity any ---- @field virt_lines any ---- @field virt_lines_above any ---- @field virt_lines_leftcol any ---- @field strict any ---- @field sign_text any +--- @field virt_text any[] +--- @field virt_text_pos string +--- @field virt_text_win_col integer +--- @field virt_text_hide boolean +--- @field hl_eol boolean +--- @field hl_mode string +--- @field ephemeral boolean +--- @field priority integer +--- @field right_gravity boolean +--- @field end_right_gravity boolean +--- @field virt_lines any[] +--- @field virt_lines_above boolean +--- @field virt_lines_leftcol boolean +--- @field strict boolean +--- @field sign_text string --- @field sign_hl_group any --- @field number_hl_group any --- @field line_hl_group any --- @field cursorline_hl_group any ---- @field conceal any ---- @field spell any ---- @field ui_watched any +--- @field conceal string +--- @field spell boolean +--- @field ui_watched boolean --- @class vim.api.keyset.user_command --- @field addr any ---- @field bang any ---- @field bar any +--- @field bang boolean +--- @field bar boolean --- @field complete any --- @field count any --- @field desc any ---- @field force any ---- @field keepscript any +--- @field force boolean +--- @field keepscript boolean --- @field nargs any --- @field preview any --- @field range any ---- @field register_ any +--- @field register boolean --- @class vim.api.keyset.win_text_height ---- @field start_row any ---- @field end_row any ---- @field start_vcol any ---- @field end_vcol any +--- @field start_row integer +--- @field end_row integer +--- @field start_vcol integer +--- @field end_vcol integer -- cgit From 628763fbd82d0fab292b7e92b553c6b1ed53e556 Mon Sep 17 00:00:00 2001 From: bfredl Date: Tue, 8 Aug 2023 10:40:43 +0200 Subject: docs(lua): the keyset nilocalypse This is needed to give recent LuaLS the right idea about optional fields. --- runtime/lua/vim/_meta/api_keysets.lua | 386 +++++++++++++++++----------------- 1 file changed, 193 insertions(+), 193 deletions(-) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 5f8cb93144..941780202e 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -4,246 +4,246 @@ error('Cannot require a meta file') --- @class vim.api.keyset.clear_autocmds ---- @field buffer integer ---- @field event any ---- @field group any ---- @field pattern any +--- @field buffer? integer +--- @field event? any +--- @field group? any +--- @field pattern? any --- @class vim.api.keyset.cmd ---- @field cmd string ---- @field range any[] ---- @field count integer ---- @field reg string ---- @field bang boolean ---- @field args any[] ---- @field magic table ---- @field mods table ---- @field nargs any ---- @field addr any ---- @field nextcmd any +--- @field cmd? string +--- @field range? any[] +--- @field count? integer +--- @field reg? string +--- @field bang? boolean +--- @field args? any[] +--- @field magic? table +--- @field mods? table +--- @field nargs? any +--- @field addr? any +--- @field nextcmd? any --- @class vim.api.keyset.cmd_magic ---- @field file boolean ---- @field bar boolean +--- @field file? boolean +--- @field bar? boolean --- @class vim.api.keyset.cmd_mods ---- @field silent boolean ---- @field emsg_silent boolean ---- @field unsilent boolean ---- @field filter table ---- @field sandbox boolean ---- @field noautocmd boolean ---- @field browse boolean ---- @field confirm boolean ---- @field hide boolean ---- @field horizontal boolean ---- @field keepalt boolean ---- @field keepjumps boolean ---- @field keepmarks boolean ---- @field keeppatterns boolean ---- @field lockmarks boolean ---- @field noswapfile boolean ---- @field tab integer ---- @field verbose integer ---- @field vertical boolean ---- @field split string +--- @field silent? boolean +--- @field emsg_silent? boolean +--- @field unsilent? boolean +--- @field filter? table +--- @field sandbox? boolean +--- @field noautocmd? boolean +--- @field browse? boolean +--- @field confirm? boolean +--- @field hide? boolean +--- @field horizontal? boolean +--- @field keepalt? boolean +--- @field keepjumps? boolean +--- @field keepmarks? boolean +--- @field keeppatterns? boolean +--- @field lockmarks? boolean +--- @field noswapfile? boolean +--- @field tab? integer +--- @field verbose? integer +--- @field vertical? boolean +--- @field split? string --- @class vim.api.keyset.cmd_mods_filter ---- @field pattern string ---- @field force boolean +--- @field pattern? string +--- @field force? boolean --- @class vim.api.keyset.cmd_opts ---- @field output boolean +--- @field output? boolean --- @class vim.api.keyset.context ---- @field types any[] +--- @field types? any[] --- @class vim.api.keyset.create_augroup ---- @field clear any +--- @field clear? any --- @class vim.api.keyset.create_autocmd ---- @field buffer integer ---- @field callback any ---- @field command string ---- @field desc string ---- @field group any ---- @field nested boolean ---- @field once boolean ---- @field pattern any +--- @field buffer? integer +--- @field callback? any +--- @field command? string +--- @field desc? string +--- @field group? any +--- @field nested? boolean +--- @field once? boolean +--- @field pattern? any --- @class vim.api.keyset.echo_opts ---- @field verbose boolean +--- @field verbose? boolean --- @class vim.api.keyset.eval_statusline ---- @field winid integer ---- @field maxwidth integer ---- @field fillchar string ---- @field highlights boolean ---- @field use_winbar boolean ---- @field use_tabline boolean ---- @field use_statuscol_lnum integer +--- @field winid? integer +--- @field maxwidth? integer +--- @field fillchar? string +--- @field highlights? boolean +--- @field use_winbar? boolean +--- @field use_tabline? boolean +--- @field use_statuscol_lnum? integer --- @class vim.api.keyset.exec_autocmds ---- @field buffer integer ---- @field group any ---- @field modeline boolean ---- @field pattern any ---- @field data any +--- @field buffer? integer +--- @field group? any +--- @field modeline? boolean +--- @field pattern? any +--- @field data? any --- @class vim.api.keyset.exec_opts ---- @field output boolean +--- @field output? boolean --- @class vim.api.keyset.float_config ---- @field row number ---- @field col number ---- @field width integer ---- @field height integer ---- @field anchor string ---- @field relative string ---- @field win integer ---- @field bufpos any[] ---- @field external boolean ---- @field focusable boolean ---- @field zindex integer ---- @field border any ---- @field title any ---- @field title_pos string ---- @field style string ---- @field noautocmd boolean +--- @field row? number +--- @field col? number +--- @field width? integer +--- @field height? integer +--- @field anchor? string +--- @field relative? string +--- @field win? integer +--- @field bufpos? any[] +--- @field external? boolean +--- @field focusable? boolean +--- @field zindex? integer +--- @field border? any +--- @field title? any +--- @field title_pos? string +--- @field style? string +--- @field noautocmd? boolean --- @class vim.api.keyset.get_autocmds ---- @field event any ---- @field group any ---- @field pattern any ---- @field buffer any +--- @field event? any +--- @field group? any +--- @field pattern? any +--- @field buffer? any --- @class vim.api.keyset.get_commands ---- @field builtin boolean +--- @field builtin? boolean --- @class vim.api.keyset.get_highlight ---- @field id integer ---- @field name string ---- @field link boolean +--- @field id? integer +--- @field name? string +--- @field link? boolean --- @class vim.api.keyset.highlight ---- @field bold boolean ---- @field standout boolean ---- @field strikethrough boolean ---- @field underline boolean ---- @field undercurl boolean ---- @field underdouble boolean ---- @field underdotted boolean ---- @field underdashed boolean ---- @field italic boolean ---- @field reverse boolean ---- @field altfont boolean ---- @field nocombine boolean ---- @field default boolean ---- @field cterm any ---- @field foreground any ---- @field fg any ---- @field background any ---- @field bg any ---- @field ctermfg any ---- @field ctermbg any ---- @field special any ---- @field sp any ---- @field link any ---- @field global_link any ---- @field fallback boolean ---- @field blend integer ---- @field fg_indexed boolean ---- @field bg_indexed boolean +--- @field bold? boolean +--- @field standout? boolean +--- @field strikethrough? boolean +--- @field underline? boolean +--- @field undercurl? boolean +--- @field underdouble? boolean +--- @field underdotted? boolean +--- @field underdashed? boolean +--- @field italic? boolean +--- @field reverse? boolean +--- @field altfont? boolean +--- @field nocombine? boolean +--- @field default? boolean +--- @field cterm? any +--- @field foreground? any +--- @field fg? any +--- @field background? any +--- @field bg? any +--- @field ctermfg? any +--- @field ctermbg? any +--- @field special? any +--- @field sp? any +--- @field link? any +--- @field global_link? any +--- @field fallback? boolean +--- @field blend? integer +--- @field fg_indexed? boolean +--- @field bg_indexed? boolean --- @class vim.api.keyset.highlight_cterm ---- @field bold boolean ---- @field standout boolean ---- @field strikethrough boolean ---- @field underline boolean ---- @field undercurl boolean ---- @field underdouble boolean ---- @field underdotted boolean ---- @field underdashed boolean ---- @field italic boolean ---- @field reverse boolean ---- @field altfont boolean ---- @field nocombine boolean +--- @field bold? boolean +--- @field standout? boolean +--- @field strikethrough? boolean +--- @field underline? boolean +--- @field undercurl? boolean +--- @field underdouble? boolean +--- @field underdotted? boolean +--- @field underdashed? boolean +--- @field italic? boolean +--- @field reverse? boolean +--- @field altfont? boolean +--- @field nocombine? boolean --- @class vim.api.keyset.keymap ---- @field noremap boolean ---- @field nowait boolean ---- @field silent boolean ---- @field script boolean ---- @field expr boolean ---- @field unique boolean ---- @field callback function ---- @field desc string ---- @field replace_keycodes boolean +--- @field noremap? boolean +--- @field nowait? boolean +--- @field silent? boolean +--- @field script? boolean +--- @field expr? boolean +--- @field unique? boolean +--- @field callback? function +--- @field desc? string +--- @field replace_keycodes? boolean --- @class vim.api.keyset.option ---- @field scope string ---- @field win integer ---- @field buf integer ---- @field filetype string +--- @field scope? string +--- @field win? integer +--- @field buf? integer +--- @field filetype? string --- @class vim.api.keyset.runtime ---- @field is_lua boolean ---- @field do_source boolean +--- @field is_lua? boolean +--- @field do_source? boolean --- @class vim.api.keyset.set_decoration_provider ---- @field on_start function ---- @field on_buf function ---- @field on_win function ---- @field on_line function ---- @field on_end function ---- @field _on_hl_def function ---- @field _on_spell_nav function +--- @field on_start? function +--- @field on_buf? function +--- @field on_win? function +--- @field on_line? function +--- @field on_end? function +--- @field _on_hl_def? function +--- @field _on_spell_nav? function --- @class vim.api.keyset.set_extmark ---- @field id integer ---- @field end_line integer ---- @field end_row integer ---- @field end_col integer ---- @field hl_group any ---- @field virt_text any[] ---- @field virt_text_pos string ---- @field virt_text_win_col integer ---- @field virt_text_hide boolean ---- @field hl_eol boolean ---- @field hl_mode string ---- @field ephemeral boolean ---- @field priority integer ---- @field right_gravity boolean ---- @field end_right_gravity boolean ---- @field virt_lines any[] ---- @field virt_lines_above boolean ---- @field virt_lines_leftcol boolean ---- @field strict boolean ---- @field sign_text string ---- @field sign_hl_group any ---- @field number_hl_group any ---- @field line_hl_group any ---- @field cursorline_hl_group any ---- @field conceal string ---- @field spell boolean ---- @field ui_watched boolean +--- @field id? integer +--- @field end_line? integer +--- @field end_row? integer +--- @field end_col? integer +--- @field hl_group? any +--- @field virt_text? any[] +--- @field virt_text_pos? string +--- @field virt_text_win_col? integer +--- @field virt_text_hide? boolean +--- @field hl_eol? boolean +--- @field hl_mode? string +--- @field ephemeral? boolean +--- @field priority? integer +--- @field right_gravity? boolean +--- @field end_right_gravity? boolean +--- @field virt_lines? any[] +--- @field virt_lines_above? boolean +--- @field virt_lines_leftcol? boolean +--- @field strict? boolean +--- @field sign_text? string +--- @field sign_hl_group? any +--- @field number_hl_group? any +--- @field line_hl_group? any +--- @field cursorline_hl_group? any +--- @field conceal? string +--- @field spell? boolean +--- @field ui_watched? boolean --- @class vim.api.keyset.user_command ---- @field addr any ---- @field bang boolean ---- @field bar boolean ---- @field complete any ---- @field count any ---- @field desc any ---- @field force boolean ---- @field keepscript boolean ---- @field nargs any ---- @field preview any ---- @field range any ---- @field register boolean +--- @field addr? any +--- @field bang? boolean +--- @field bar? boolean +--- @field complete? any +--- @field count? any +--- @field desc? any +--- @field force? boolean +--- @field keepscript? boolean +--- @field nargs? any +--- @field preview? any +--- @field range? any +--- @field register? boolean --- @class vim.api.keyset.win_text_height ---- @field start_row integer ---- @field end_row integer ---- @field start_vcol integer ---- @field end_vcol integer +--- @field start_row? integer +--- @field end_row? integer +--- @field start_vcol? integer +--- @field end_vcol? integer -- cgit From 35570e4a11bef061777d741929f74fa66ba3f45a Mon Sep 17 00:00:00 2001 From: Evgeni Chasnovski Date: Fri, 25 Aug 2023 10:53:35 +0300 Subject: feat(float): implement footer Problem: Now way to show text at the bottom part of floating window border (a.k.a. "footer"). Solution: Allows `footer` and `footer_pos` config fields similar to `title` and `title_pos`. --- runtime/lua/vim/_meta/api_keysets.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 941780202e..08c29ebe7a 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -108,6 +108,8 @@ error('Cannot require a meta file') --- @field border? any --- @field title? any --- @field title_pos? string +--- @field footer? any +--- @field footer_pos? string --- @field style? string --- @field noautocmd? boolean -- cgit From 8afb3a49c0762eb60368aee0314e6de261daa6ef Mon Sep 17 00:00:00 2001 From: glepnir Date: Thu, 7 Sep 2023 18:42:38 +0800 Subject: fix(highlight): add create param in nvim_get_hl --- runtime/lua/vim/_meta/api_keysets.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 08c29ebe7a..8f36edba77 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -126,6 +126,7 @@ error('Cannot require a meta file') --- @field id? integer --- @field name? string --- @field link? boolean +--- @field create? boolean --- @class vim.api.keyset.highlight --- @field bold? boolean -- cgit From b04286a187d57c50f01cd36cd4668b7a69026579 Mon Sep 17 00:00:00 2001 From: bfredl Date: Sun, 22 Nov 2020 10:10:37 +0100 Subject: feat(extmark): support proper multiline ranges The removes the previous restriction that nvim_buf_set_extmark() could not be used to highlight arbitrary multi-line regions The problem can be summarized as follows: let's assume an extmark with a hl_group is placed covering the region (5,0) to (50,0) Now, consider what happens if nvim needs to redraw a window covering the lines 20-30. It needs to be able to ask the marktree what extmarks cover this region, even if they don't begin or end here. Therefore the marktree needs to be augmented with the information covers a point, not just what marks begin or end there. To do this, we augment each node with a field "intersect" which is a set the ids of the marks which overlap this node, but only if it is not part of the set of any parent. This ensures the number of nodes that need to be explicitly marked grows only logarithmically with the total number of explicitly nodes (and thus the number of of overlapping marks). Thus we can quickly iterate all marks which overlaps any query position by looking up what leaf node contains that position. Then we only need to consider all "start" marks within that leaf node, and the "intersect" set of that node and all its parents. Now, and the major source of complexity is that the tree restructuring operations (to ensure that each node has T-1 <= size <= 2*T-1) also need to update these sets. If a full inner node is split in two, one of the new parents might start to completely overlap some ranges and its ids will need to be moved from its children's sets to its own set. Similarly, if two undersized nodes gets joined into one, it might no longer completely overlap some ranges, and now the children which do needs to have the have the ids in its set instead. And then there are the pivots! Yes the pivot operations when a child gets moved from one parent to another. --- runtime/lua/vim/_meta/api_keysets.lua | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 8f36edba77..4d08563ce2 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -122,6 +122,13 @@ error('Cannot require a meta file') --- @class vim.api.keyset.get_commands --- @field builtin? boolean +--- @class vim.api.keyset.get_extmarks +--- @field limit? integer +--- @field details? boolean +--- @field hl_name? boolean +--- @field overlap? boolean +--- @field type? string + --- @class vim.api.keyset.get_highlight --- @field id? integer --- @field name? string -- cgit From fd08fd3de3020647c8ae73f1c7d2cf9a4926c828 Mon Sep 17 00:00:00 2001 From: glepnir Date: Thu, 14 Sep 2023 13:30:51 +0800 Subject: fix(float): add fixd option --- runtime/lua/vim/_meta/api_keysets.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 4d08563ce2..b249f6629f 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -112,6 +112,7 @@ error('Cannot require a meta file') --- @field footer_pos? string --- @field style? string --- @field noautocmd? boolean +--- @field fixed? boolean --- @class vim.api.keyset.get_autocmds --- @field event? any -- cgit From f8ea49cfe1f4f3ed30da160d346553f0949ec1de Mon Sep 17 00:00:00 2001 From: glepnir Date: Mon, 18 Sep 2023 14:50:27 +0800 Subject: fix(highlight): add force in nvim_set_hl --- runtime/lua/vim/_meta/api_keysets.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 4d08563ce2..349c68f8f9 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -164,6 +164,7 @@ error('Cannot require a meta file') --- @field blend? integer --- @field fg_indexed? boolean --- @field bg_indexed? boolean +--- @field force? boolean --- @class vim.api.keyset.highlight_cterm --- @field bold? boolean -- cgit From 4200a0f1678c06c6da4e4cfb0184c29c1174ed21 Mon Sep 17 00:00:00 2001 From: glepnir Date: Wed, 27 Sep 2023 17:23:42 +0800 Subject: feat(float): support toggle show float window --- runtime/lua/vim/_meta/api_keysets.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index eaaa32d7b3..698e706171 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -113,6 +113,7 @@ error('Cannot require a meta file') --- @field style? string --- @field noautocmd? boolean --- @field fixed? boolean +--- @field hide? boolean --- @class vim.api.keyset.get_autocmds --- @field event? any -- cgit From 2615ed879e66a3d05920c47177e77383adc7aca0 Mon Sep 17 00:00:00 2001 From: Daniel Steinberg Date: Tue, 18 Jul 2023 17:02:45 -0400 Subject: feat(ui): allow to get the highlight namespace --- runtime/lua/vim/_meta/api_keysets.lua | 3 +++ 1 file changed, 3 insertions(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index eaaa32d7b3..88de2f58d0 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -136,6 +136,9 @@ error('Cannot require a meta file') --- @field link? boolean --- @field create? boolean +--- @class vim.api.keyset.get_ns +--- @field winid? integer + --- @class vim.api.keyset.highlight --- @field bold? boolean --- @field standout? boolean -- cgit From c80a3976cb34c2b3c7f6f01e9ad2db41a4f67796 Mon Sep 17 00:00:00 2001 From: Maria José Solano Date: Mon, 9 Oct 2023 15:34:48 -0700 Subject: docs: miscellaneous doc and type fixes (#25554) --- runtime/lua/vim/_meta/api_keysets.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index ebd164712c..467409505e 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -1,4 +1,4 @@ ---- @meta +--- @meta _ -- THIS FILE IS GENERATED -- DO NOT EDIT error('Cannot require a meta file') -- cgit From 4e6f559b8c5f77924fdbe2e5abd9c6aa8efad13f Mon Sep 17 00:00:00 2001 From: Luuk van Baal Date: Tue, 24 Oct 2023 13:32:00 +0200 Subject: feat(extmarks): add 'invalidate' property to extmarks Problem: No way to have extmarks automatically removed when the range it is attached to is deleted. Solution: Add new 'invalidate' property that will hide a mark when the entirety of its range is deleted. When "undo_restore" is set to false, delete the mark from the buffer instead. --- runtime/lua/vim/_meta/api_keysets.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'runtime/lua/vim/_meta/api_keysets.lua') diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua index 467409505e..f69e5a92c7 100644 --- a/runtime/lua/vim/_meta/api_keysets.lua +++ b/runtime/lua/vim/_meta/api_keysets.lua @@ -227,6 +227,7 @@ error('Cannot require a meta file') --- @field virt_text_hide? boolean --- @field hl_eol? boolean --- @field hl_mode? string +--- @field invalidate? boolean --- @field ephemeral? boolean --- @field priority? integer --- @field right_gravity? boolean @@ -243,6 +244,7 @@ error('Cannot require a meta file') --- @field conceal? string --- @field spell? boolean --- @field ui_watched? boolean +--- @field undo_restore? boolean --- @class vim.api.keyset.user_command --- @field addr? any -- cgit