neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 05a511996fd411b52904cf78eb1694abfa34351e
parent 2f78ff816b03661b5f74d0624e973eaca0d64ef1
Author: Justin M. Keyes <justinkz@gmail.com>
Date:   Sat, 13 Sep 2025 23:54:10 -0400

Merge #35655 docs


Diffstat:
Druntime/doc/editorconfig.txt | 93-------------------------------------------------------------------------------
Mruntime/doc/ft_rust.txt | 2+-
Mruntime/doc/intro.txt | 133++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mruntime/doc/lua.txt | 34+++++++++++++++++++++++++---------
Mruntime/doc/plugins.txt | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
Mruntime/lua/vim/_meta/json.lua | 20++++++++++++++++++--
Mruntime/lua/vim/lsp.lua | 2+-
Mruntime/lua/vim/shared.lua | 19++++++++++---------
Msrc/gen/gen_help_html.lua | 3++-
Msrc/gen/gen_vimdoc.lua | 28+++++++++-------------------
Msrc/man/nvim.1 | 4++--
Msrc/nvim/ui_defs.h | 2+-
12 files changed, 225 insertions(+), 208 deletions(-)

diff --git a/runtime/doc/editorconfig.txt b/runtime/doc/editorconfig.txt @@ -1,93 +0,0 @@ -*editorconfig.txt* Nvim - - - NVIM REFERENCE MANUAL - - Type |gO| to see the table of contents. - -============================================================================== -EditorConfig integration *editorconfig* - -Nvim supports EditorConfig. When a file is opened, after running |ftplugin|s -and |FileType| autocommands, Nvim searches all parent directories of that file -for ".editorconfig" files, parses them, and applies any properties that match -the opened file. Think of it like 'modeline' for an entire (recursive) -directory. For more information see https://editorconfig.org/. - - *g:editorconfig* *b:editorconfig* - -EditorConfig is enabled by default. To disable it, add to your config: >lua - vim.g.editorconfig = false -< - -(Vimscript: `let g:editorconfig = v:false`). It can also be disabled -per-buffer by setting the |b:editorconfig| buffer-local variable to `false`. - -Nvim stores the applied properties in |b:editorconfig| if it is not `false`. - - *editorconfig-custom-properties* - -New properties can be added by adding a new entry to the "properties" table. -The table key is a property name and the value is a callback function which -accepts the number of the buffer to be modified, the value of the property in -the `.editorconfig` file, and (optionally) a table containing all of the other -properties and their values (useful for properties which depend on other -properties). The value is always a string and must be coerced if necessary. -Example: >lua - - require('editorconfig').properties.foo = function(bufnr, val, opts) - if opts.charset and opts.charset ~= "utf-8" then - error("foo can only be set when charset is utf-8", 0) - end - vim.b[bufnr].foo = val - end -< - - *editorconfig-properties* - -The following properties are supported by default: - - -charset *editorconfig.charset* - One of `"utf-8"`, `"utf-8-bom"`, `"latin1"`, `"utf-16be"`, or - `"utf-16le"`. Sets the 'fileencoding' and 'bomb' options. - -end_of_line *editorconfig.end_of_line* - One of `"lf"`, `"crlf"`, or `"cr"`. These correspond to setting - 'fileformat' to "unix", "dos", or "mac", respectively. - -indent_size *editorconfig.indent_size* - A number indicating the size of a single indent. Alternatively, use the - value "tab" to use the value of the tab_width property. Sets the - 'shiftwidth' and 'softtabstop' options. If this value is not "tab" and the - tab_width property is not set, 'tabstop' is also set to this value. - -indent_style *editorconfig.indent_style* - One of `"tab"` or `"space"`. Sets the 'expandtab' option. - -insert_final_newline *editorconfig.insert_final_newline* - `"true"` or `"false"` to ensure the file always has a trailing newline as - its last byte. Sets the 'fixendofline' and 'endofline' options. - -max_line_length *editorconfig.max_line_length* - A number indicating the maximum length of a single line. Sets the - 'textwidth' option. - -root *editorconfig.root* - If "true", then stop searching for `.editorconfig` files in parent - directories. This property must be at the top-level of the `.editorconfig` - file (i.e. it must not be within a glob section). - -spelling_language *editorconfig.spelling_language* - A code of the format ss or ss-TT, where ss is an ISO 639 language code and - TT is an ISO 3166 territory identifier. Sets the 'spelllang' option. - -tab_width *editorconfig.tab_width* - The display size of a single tab character. Sets the 'tabstop' option. - -trim_trailing_whitespace *editorconfig.trim_trailing_whitespace* - When `"true"`, trailing whitespace is automatically removed when the - buffer is written. - - - vim:tw=78:ts=8:sw=4:sts=4:et:ft=help:norl: diff --git a/runtime/doc/ft_rust.txt b/runtime/doc/ft_rust.txt @@ -167,7 +167,7 @@ g:rustfmt_detect_version ~ let g:rustfmt_detect_version = 1 < *g:rustfmt_find_toml* -g:rustfmt_emit_files ~ +g:rustfmt_find_toml ~ When set to 1, will try to find "rustfmt.toml" file by searching from current path upwards. Disabled by default for performance reasons >vim let g:rustfmt_find_toml = 1 diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt @@ -237,73 +237,74 @@ These names for keys are used in the documentation. They can also be used with the ":map" command. notation meaning equivalent decimal value(s) ~ -<Nul> zero CTRL-@ 0 (stored as 10) *<Nul>* -<BS> backspace CTRL-H 8 *backspace* -<Tab> tab CTRL-I 9 *tab* *Tab* +<Nul> Zero CTRL-@ 0 (stored as 10) *<Nul>* +<BS> Backspace CTRL-H 8 *backspace* +<Tab> Tab CTRL-I 9 *tab* *Tab* *linefeed* -<NL> linefeed CTRL-J 10 (used for <Nul>) -<CR> carriage return CTRL-M 13 *carriage-return* -<Return> same as <CR> *<Return>* -<Enter> same as <CR> *<Enter>* -<Esc> escape CTRL-[ 27 *escape* *<Esc>* -<Space> space 32 *space* -<lt> less-than < 60 *<lt>* -<Bslash> backslash \ 92 *backslash* *<Bslash>* -<Bar> vertical bar | 124 *<Bar>* -<Del> delete 127 -<CSI> command sequence intro ALT-Esc 155 *<CSI>* - -<EOL> end-of-line (can be <CR>, <NL> or <CR><NL>, - depends on system and 'fileformat') *<EOL>* -<Ignore> cancel wait-for-character *<Ignore>* -<NOP> no-op: do nothing (useful in mappings) *<Nop>* - -<Up> cursor-up *cursor-up* *cursor_up* -<Down> cursor-down *cursor-down* *cursor_down* -<Left> cursor-left *cursor-left* *cursor_left* -<Right> cursor-right *cursor-right* *cursor_right* -<S-Up> shift-cursor-up -<S-Down> shift-cursor-down -<S-Left> shift-cursor-left -<S-Right> shift-cursor-right -<C-Left> control-cursor-left -<C-Right> control-cursor-right -<F1> - <F12> function keys 1 to 12 *function_key* *function-key* -<S-F1> - <S-F12> shift-function keys 1 to 12 *<S-F1>* -<Help> help key -<Undo> undo key -<Find> find key -<Select> select key -<Insert> insert key -<Home> home *home* -<End> end *end* -<PageUp> page-up *page_up* *page-up* -<PageDown> page-down *page_down* *page-down* -<kUp> keypad cursor-up *keypad-cursor-up* -<kDown> keypad cursor-down *keypad-cursor-down* -<kLeft> keypad cursor-left *keypad-cursor-left* -<kRight> keypad cursor-right *keypad-cursor-right* -<kHome> keypad home (upper left) *keypad-home* -<kEnd> keypad end (lower left) *keypad-end* -<kOrigin> keypad origin (middle) *keypad-origin* -<kPageUp> keypad page-up (upper right) *keypad-page-up* -<kPageDown> keypad page-down (lower right) *keypad-page-down* -<kDel> keypad delete *keypad-delete* -<kPlus> keypad + *keypad-plus* -<kMinus> keypad - *keypad-minus* -<kMultiply> keypad * *keypad-multiply* -<kDivide> keypad / *keypad-divide* -<kPoint> keypad . *keypad-point* -<kComma> keypad , *keypad-comma* -<kEqual> keypad = *keypad-equal* -<kEnter> keypad Enter *keypad-enter* -<k0> - <k9> keypad 0 to 9 *keypad-0* *keypad-9* -<S-…> shift-key *shift* *<S-* -<C-…> control-key *control* *ctrl* *<C-* -<M-…> alt-key or meta-key *META* *ALT* *<M-* -<A-…> same as <M-…> *<A-* -<T-…> meta-key when it's not alt *<T-* -<D-…> command-key or "super" key *<D-* +<NL> Linefeed CTRL-J 10 (used for <Nul>) +<CR> Carriage return CTRL-M 13 *carriage-return* +<Return> Same as <CR> *<Return>* +<Enter> Same as <CR> *<Enter>* +<Esc> Escape CTRL-[ 27 *escape* *<Esc>* +<Space> Space 32 *space* +<lt> Less-than < 60 *<lt>* +<Bslash> Backslash \ 92 *backslash* *<Bslash>* +<Bar> Vertical bar | 124 *<Bar>* +<Del> Delete 127 +<CSI> Command sequence intro ALT-Esc 155 *<CSI>* + +<EOL> End-of-line (can be <CR>, <NL> or <CR><NL>, + Depends on system and 'fileformat') *<EOL>* +<Ignore> Cancel wait-for-character *<Ignore>* +<NOP> Do nothing (no-op). Useful in mappings. *<Nop>* + <Ignore> is a key, <NOP> is "absence of a key". + +<Up> Cursor-up *cursor-up* *cursor_up* +<Down> Cursor-down *cursor-down* *cursor_down* +<Left> Cursor-left *cursor-left* *cursor_left* +<Right> Cursor-right *cursor-right* *cursor_right* +<S-Up> Shift-cursor-up +<S-Down> Shift-cursor-down +<S-Left> Shift-cursor-left +<S-Right> Shift-cursor-right +<C-Left> Control-cursor-left +<C-Right> Control-cursor-right +<F1> - <F12> Function keys 1 to 12 *function_key* *function-key* +<S-F1> - <S-F12> Shift-function keys 1 to 12 *<S-F1>* +<Help> Help key +<Undo> Undo key +<Find> Find key +<Select> Select key +<Insert> Insert key +<Home> Home *home* +<End> End *end* +<PageUp> Page-up *page_up* *page-up* +<PageDown> Page-down *page_down* *page-down* +<kUp> Keypad cursor-up *keypad-cursor-up* +<kDown> Keypad cursor-down *keypad-cursor-down* +<kLeft> Keypad cursor-left *keypad-cursor-left* +<kRight> Keypad cursor-right *keypad-cursor-right* +<kHome> Keypad home (upper left) *keypad-home* +<kEnd> Keypad end (lower left) *keypad-end* +<kOrigin> Keypad origin (middle) *keypad-origin* +<kPageUp> Keypad page-up (upper right) *keypad-page-up* +<kPageDown> Keypad page-down (lower right) *keypad-page-down* +<kDel> Keypad delete *keypad-delete* +<kPlus> Keypad + *keypad-plus* +<kMinus> Keypad - *keypad-minus* +<kMultiply> Keypad * *keypad-multiply* +<kDivide> Keypad / *keypad-divide* +<kPoint> Keypad . *keypad-point* +<kComma> Keypad , *keypad-comma* +<kEqual> Keypad = *keypad-equal* +<kEnter> Keypad Enter *keypad-enter* +<k0> - <k9> Keypad 0 to 9 *keypad-0* *keypad-9* +<S-…> Shift-key *shift* *<S-* +<C-…> Control-key *control* *ctrl* *<C-* +<M-…> Alt-key or meta-key *META* *ALT* *<M-* +<A-…> Same as <M-…> *<A-* +<T-…> Meta-key, when it's not alt *<T-* +<D-…> Command-key or "super" key *<D-* Note: diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt @@ -2057,12 +2057,12 @@ vim.tbl_extend({behavior}, {...}) *vim.tbl_extend()* See also: ~ • |extend()| -vim.tbl_filter({func}, {t}) *vim.tbl_filter()* +vim.tbl_filter({fn}, {t}) *vim.tbl_filter()* Filter a table using a predicate function Parameters: ~ - • {func} (`function`) Function - • {t} (`table`) Table + • {fn} (`function`) Function + • {t} (`table`) Table Return: ~ (`any[]`) Table of filtered values @@ -2110,12 +2110,14 @@ vim.tbl_keys({t}) *vim.tbl_keys()* • From https://github.com/premake/premake-core/blob/master/src/base/table.lua -vim.tbl_map({func}, {t}) *vim.tbl_map()* - Apply a function to all values of a table. +vim.tbl_map({fn}, {t}) *vim.tbl_map()* + Applies function `fn` to all values of table `t`, in `pairs()` iteration + order (which is not guaranteed to be stable, even when the data doesn't + change). Parameters: ~ - • {func} (`fun(value: T): any`) Function - • {t} (`table<any, T>`) Table + • {fn} (`fun(value: T): any`) Function + • {t} (`table<any, T>`) Table Return: ~ (`table`) Table of transformed values @@ -3342,7 +3344,7 @@ JSON-encoded strings. Supports |vim.NIL| and |vim.empty_dict()|. vim.json.decode({str}, {opts}) *vim.json.decode()* - Decodes (or "unpacks") the JSON-encoded {str} to a Lua object. + Decodes (or "unpacks") stringified JSON to a Lua object. • Decodes JSON "null" as |vim.NIL| (controllable by {opts}, see below). • Decodes empty object as |vim.empty_dict()|. • Decodes empty array as `{}` (empty Lua table). @@ -3365,7 +3367,21 @@ vim.json.decode({str}, {opts}) *vim.json.decode()* (`any`) vim.json.encode({obj}, {opts}) *vim.json.encode()* - Encodes (or "packs") Lua object {obj} as JSON in a Lua string. + Encodes (or "packs") a Lua object to stringified JSON. + + Example: use the `indent` flag to implement a basic 'formatexpr' for JSON, + so you can use |gq| with a motion to format JSON in a buffer. (The motion + must operate on a valid JSON object.) >lua + function _G.fmt_json() + local indent = vim.bo.expandtab and (' '):rep(vim.o.shiftwidth) or '\t' + local lines = vim.api.nvim_buf_get_lines(0, vim.v.lnum - 1, vim.v.lnum + vim.v.count - 1, true) + local o = vim.json.decode(table.concat(lines, '\n')) + local stringified = vim.json.encode(o, { indent = indent }) + lines = vim.split(stringified, '\n') + vim.api.nvim_buf_set_lines(0, vim.v.lnum - 1, vim.v.count, true, lines) + end + vim.o.formatexpr = 'v:lua.fmt_json()' +< Parameters: ~ • {obj} (`any`) diff --git a/runtime/doc/plugins.txt b/runtime/doc/plugins.txt @@ -11,19 +11,19 @@ Plugins and modules included with Nvim Nvim includes various Lua and Vim plugins or modules which may provide commands (such as :TOhtml) or modules that you can optionally require() or :packadd. The Lua ones are not part of the |lua-stdlib|, that is, they are not -available from the global `vim` module namespace. Some of the plugins are by -default loaded while others require a |:packadd| to be loaded. +available from the global `vim` module namespace. Some of the plugins are +loaded by default while others are not loaded until requested by |:packadd|. ============================================================================== Standard plugins ~ *standard-plugin-list* -Help-link Loaded Short description +Help-link Loaded Short description ~ |package-cfilter| No Filtering quickfix/location list |package-justify| No Justify text |package-nohlsearch| No Automatically run :nohlsearch |package-termdebug| No Debug inside Nvim with gdb |matchit| Yes Extended |%| matching -|editorconfig.txt| Yes Detect and internet editorconfig +|editorconfig| Yes Detect and internet editorconfig |spellfile.vim| Yes Install spellfile if missing |pi_tutor.txt| Yes Interactive tutorial |pi_gzip.txt| Yes Reading and writing compressed files @@ -38,6 +38,91 @@ Help-link Loaded Short description |tohtml| Yes Convert buffer to html, syntax included ============================================================================== +Builtin plugin: editorconfig *editorconfig* + +Nvim supports EditorConfig. When a file is opened, after running |ftplugin|s +and |FileType| autocommands, Nvim searches all parent directories of that file +for ".editorconfig" files, parses them, and applies any properties that match +the opened file. Think of it like 'modeline' for an entire (recursive) +directory. For more information see https://editorconfig.org/. + + *g:editorconfig* *b:editorconfig* + +EditorConfig is enabled by default. To disable it, add to your config: >lua + vim.g.editorconfig = false +< + +(Vimscript: `let g:editorconfig = v:false`). It can also be disabled +per-buffer by setting the |b:editorconfig| buffer-local variable to `false`. + +Nvim stores the applied properties in |b:editorconfig| if it is not `false`. + + *editorconfig-custom-properties* + +New properties can be added by adding a new entry to the "properties" table. +The table key is a property name and the value is a callback function which +accepts the number of the buffer to be modified, the value of the property in +the `.editorconfig` file, and (optionally) a table containing all of the other +properties and their values (useful for properties which depend on other +properties). The value is always a string and must be coerced if necessary. +Example: >lua + + require('editorconfig').properties.foo = function(bufnr, val, opts) + if opts.charset and opts.charset ~= "utf-8" then + error("foo can only be set when charset is utf-8", 0) + end + vim.b[bufnr].foo = val + end +< + + *editorconfig-properties* + +The following properties are supported by default: + + +charset *editorconfig.charset* + One of `"utf-8"`, `"utf-8-bom"`, `"latin1"`, `"utf-16be"`, or + `"utf-16le"`. Sets the 'fileencoding' and 'bomb' options. + +end_of_line *editorconfig.end_of_line* + One of `"lf"`, `"crlf"`, or `"cr"`. These correspond to setting + 'fileformat' to "unix", "dos", or "mac", respectively. + +indent_size *editorconfig.indent_size* + A number indicating the size of a single indent. Alternatively, use the + value "tab" to use the value of the tab_width property. Sets the + 'shiftwidth' and 'softtabstop' options. If this value is not "tab" and the + tab_width property is not set, 'tabstop' is also set to this value. + +indent_style *editorconfig.indent_style* + One of `"tab"` or `"space"`. Sets the 'expandtab' option. + +insert_final_newline *editorconfig.insert_final_newline* + `"true"` or `"false"` to ensure the file always has a trailing newline as + its last byte. Sets the 'fixendofline' and 'endofline' options. + +max_line_length *editorconfig.max_line_length* + A number indicating the maximum length of a single line. Sets the + 'textwidth' option. + +root *editorconfig.root* + If "true", then stop searching for `.editorconfig` files in parent + directories. This property must be at the top-level of the `.editorconfig` + file (i.e. it must not be within a glob section). + +spelling_language *editorconfig.spelling_language* + A code of the format ss or ss-TT, where ss is an ISO 639 language code and + TT is an ISO 3166 territory identifier. Sets the 'spelllang' option. + +tab_width *editorconfig.tab_width* + The display size of a single tab character. Sets the 'tabstop' option. + +trim_trailing_whitespace *editorconfig.trim_trailing_whitespace* + When `"true"`, trailing whitespace is automatically removed when the + buffer is written. + + +============================================================================== Builtin plugin: tohtml *tohtml* diff --git a/runtime/lua/vim/_meta/json.lua b/runtime/lua/vim/_meta/json.lua @@ -10,7 +10,7 @@ vim.json = {} --- This module provides encoding and decoding of Lua objects to and --- from JSON-encoded strings. Supports |vim.NIL| and |vim.empty_dict()|. ---- Decodes (or "unpacks") the JSON-encoded {str} to a Lua object. +--- Decodes (or "unpacks") stringified JSON to a Lua object. --- --- - Decodes JSON "null" as |vim.NIL| (controllable by {opts}, see below). --- - Decodes empty object as |vim.empty_dict()|. @@ -33,7 +33,23 @@ vim.json = {} ---@return any function vim.json.decode(str, opts) end ---- Encodes (or "packs") Lua object {obj} as JSON in a Lua string. +--- Encodes (or "packs") a Lua object to stringified JSON. +--- +--- Example: use the `indent` flag to implement a basic 'formatexpr' for JSON, so you can use |gq| +--- with a motion to format JSON in a buffer. (The motion must operate on a valid JSON object.) +--- +--- ```lua +--- function _G.fmt_json() +--- local indent = vim.bo.expandtab and (' '):rep(vim.o.shiftwidth) or '\t' +--- local lines = vim.api.nvim_buf_get_lines(0, vim.v.lnum - 1, vim.v.lnum + vim.v.count - 1, true) +--- local o = vim.json.decode(table.concat(lines, '\n')) +--- local stringified = vim.json.encode(o, { indent = indent }) +--- lines = vim.split(stringified, '\n') +--- vim.api.nvim_buf_set_lines(0, vim.v.lnum - 1, vim.v.count, true, lines) +--- end +--- vim.o.formatexpr = 'v:lua.fmt_json()' +--- ``` +--- ---@param obj any ---@param opts? table<string,any> Options table with keys: --- - escape_slash: (boolean) (default false) Escape slash diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua @@ -50,7 +50,7 @@ lsp._resolve_to_request = { ---@param method (vim.lsp.protocol.Method.ClientToServer) name of the method function lsp._unsupported_method(method) local msg = string.format( - 'method %s is not supported by any of the servers registered for the current buffer', + 'vim.lsp: method %q is not supported by any server activated for this buffer', method ) log.warn(msg) diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua @@ -244,20 +244,21 @@ function vim.tbl_values(t) return values end ---- Apply a function to all values of a table. +--- Applies function `fn` to all values of table `t`, in `pairs()` iteration order (which is not +--- guaranteed to be stable, even when the data doesn't change). --- ---@generic T ----@param func fun(value: T): any Function +---@param fn fun(value: T): any Function ---@param t table<any, T> Table ---@return table : Table of transformed values -function vim.tbl_map(func, t) - vim.validate('func', func, 'callable') +function vim.tbl_map(fn, t) + vim.validate('fn', fn, 'callable') vim.validate('t', t, 'table') --- @cast t table<any,any> local rettab = {} --- @type table<any,any> for k, v in pairs(t) do - rettab[k] = func(v) + rettab[k] = fn(v) end return rettab end @@ -265,17 +266,17 @@ end --- Filter a table using a predicate function --- ---@generic T ----@param func fun(value: T): boolean (function) Function +---@param fn fun(value: T): boolean (function) Function ---@param t table<any, T> (table) Table ---@return T[] : Table of filtered values -function vim.tbl_filter(func, t) - vim.validate('func', func, 'callable') +function vim.tbl_filter(fn, t) + vim.validate('fn', fn, 'callable') vim.validate('t', t, 'table') --- @cast t table<any,any> local rettab = {} --- @type table<any,any> for _, entry in pairs(t) do - if func(entry) then + if fn(entry) then rettab[#rettab + 1] = entry end end diff --git a/src/gen/gen_help_html.lua b/src/gen/gen_help_html.lua @@ -89,10 +89,11 @@ local new_layout = { -- Map of new:old pages, to redirect renamed pages. local redirects = { + ['api-ui-events'] = 'ui', ['credits'] = 'backers', + ['plugins'] = 'editorconfig', ['terminal'] = 'nvim_terminal_emulator', ['tui'] = 'term', - ['api-ui-events'] = 'ui', } -- TODO: These known invalid |links| require an update to the relevant docs. diff --git a/src/gen/gen_vimdoc.lua b/src/gen/gen_vimdoc.lua @@ -384,25 +384,6 @@ local config = { return 'treesitter-' .. name:lower() end, }, - editorconfig = { - filename = 'editorconfig.txt', - files = { - 'runtime/lua/editorconfig.lua', - }, - section_order = { - 'editorconfig.lua', - }, - section_fmt = function(_name) - return 'EditorConfig integration' - end, - helptag_fmt = function(name) - return name:lower() - end, - fn_xform = function(fun) - fun.table = true - fun.name = vim.split(fun.name, '.', { plain = true })[2] - end, - }, health = { filename = 'health.txt', files = { @@ -432,11 +413,20 @@ local config = { plugins = { filename = 'plugins.txt', section_order = { + 'editorconfig.lua', 'tohtml.lua', }, files = { + 'runtime/lua/editorconfig.lua', 'runtime/lua/tohtml.lua', }, + fn_xform = function(fun) + if fun.module == 'editorconfig' then + -- Example: "editorconfig.properties.root()" => "editorconfig.root" + fun.table = true + fun.name = vim.split(fun.name, '.', { plain = true })[2] or fun.name + end + end, section_fmt = function(name) return 'Builtin plugin: ' .. name:lower() end, diff --git a/src/man/nvim.1 b/src/man/nvim.1 @@ -197,8 +197,8 @@ Skip loading plugins (by setting the \(aqnoloadplugins\(aq option). Implied by .Cm -u NONE . .It Fl -clean -Start Nvim with \(lqfactory defaults\(rq (no user config and plugins, no -shada). +Start Nvim with \(lqfactory defaults\(rq (only builtin plugins, no user +config/plugins, no shada). .Ic ":help --clean" .It Fl o Ns Op Ar N Open diff --git a/src/nvim/ui_defs.h b/src/nvim/ui_defs.h @@ -34,7 +34,7 @@ typedef struct { bool rgb; bool override; ///< Force highest-requested UI capabilities. bool composed; - bool ui_ext[kUIExtCount]; ///< Externalized UI capabilities. + bool ui_ext[kUIExtCount]; ///< UI capabilities/extensions. int width; int height; int pum_nlines; ///< actual nr. lines shown in PUM