summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_meta/options.lua
AgeCommit message (Collapse)AuthorFiles
2026-04-14fix(lua): not obvious which _meta/ files are generated #39035Justin M. Keyes1
Problem: - Not obvious which _meta/ are generated and which should be edited manually. - The require guard (`error('Cannot require a meta file')`) is not consistently present in all meta files. Solution: - Update headers. - Add require() guard to all meta files. - Rename generated meta files with `.gen.lua`.
2026-04-14refactor(options): generate "modeline disallowed" doc text #39019Justin M. Keyes1
Problem: - Lots of redundant text in options docs for "not allowed in a modeline", even though we already have a flag that indicates that. - `deny_in_modelines` is an old vestigial flag only used by 'encoding' (which never changes). Solution: - Generate docs based on the `secure` flag. - Remove the `deny_in_modelines` flag (`kOptFlagNoML`).
2026-04-13feat(completion): completeopt=preselect, LSP CompletionItem.preselect #36613glepnir1
Problem: LSP CompletionItem.preselect is not supported. https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#completionClientCapabilities Solution: - Add "preselect" field to complete-items and "preselect" flag to 'completeopt'. - Set preselectSupport=true in LSP client capabilities.
2026-04-12Merge #38882 docsJustin M. Keyes1
2026-04-12fix(normal): pass count to 'keywordprg' as arg1 #38965Barrett Ruth1
Problem: If `'keywordprg'` begins with `:`, `3K` turns the count into an Ex range. Commands that don't support that then fail. Vim passes the count as the first arg (see #19436, vim/vim#10745). Solution: Pass `[count]` as the first arg for `'keywordprg'`.
2026-04-12docs: miscJustin M. Keyes1
Close #38748 Close #38866 Co-authored-by: Mario Loriedo <mario.loriedo@gmail.com> Co-authored-by: Anakin Childerhose <anakin@childerhose.ca>
2026-04-07vim-patch:794c304: runtime(doc): clarify incsearch feature and typed chars ↵zeertzjq1
(#38830) fixes: vim/vim#19886 https://github.com/vim/vim/commit/794c3044794330d8d0eadf71635d3892c187794c Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-04-06docs: statuslineJustin M. Keyes1
fix https://github.com/neovim/neovim/issues/38670
2026-04-04vim-patch:af58a9f: runtime(doc): adjust :h 'autowrite' and :h 'autowriteall'zeertzjq1
- Don't go over 78 columns. - Change the first "and" to "or", as "or" is used below. - Change "takes one" to "switches", as "one" may be mistaken as referring to the command instead of the user. - Use backticks in :h 'autowriteall' like in :h 'autowrite'. closes: vim/vim#19859 https://github.com/vim/vim/commit/af58a9f5e9e0bf748700645d07c6262eb281d737
2026-04-04vim-patch:9.2.0267: 'autowrite' not triggered for :termzeertzjq1
Problem: 'autowrite' not triggered for :term Solution: Trigger autowrite for :term command (rendcrx) closes: vim/vim#19855 https://github.com/vim/vim/commit/466b5f531a9818d4fa834126d64e8b771e4a497f Co-authored-by: rendcrx <974449413@qq.com>
2026-04-01vim-patch:9.2.0277: tests: test_modeline.vim fails (#38672)zeertzjq1
Problem: tests: test_modeline.vim fails (after v9.2.0276) Solution: Rewrite the tests to use the existing s:modeline_fails() function, update documentation (zeertzjq). https://github.com/vim/vim/commit/8c8772c6b321d4955c8f09926e3eda2b4cd83680
2026-03-24fix(progress): show progress-status only in curwin #38458Shadman1
Problem: Currently same progress stat get's displayed on statusline of all windows. This is repeatitive and noisy. Solultion: Only display progress-status on the focused window Problem: Currently, when multiple progress are on going we show it as Progress: {N} items {percent}% format. It can be simplified sinnce items doesn't really add enough value for the valuable space it takes in statusline Solution: Change format to Progress: {percent}%({N})
2026-03-24docs: api, plugins, ui2Justin M. Keyes1
2026-03-20feat(progress): status api, 'statusline' integration #35428Shadman1
Problem: Default statusline doesn't show progress status. Solution: - Provide `vim.ui.progress_status()`. - Include it in the default 'statusline'. How it works: Status text summarizes "running" progress messages. - If none: returns empty string - If one running item: "title: percent%" - If multiple running items: "Progress: N items avg-percent%"
2026-03-19fix(ui): apply 'pumborder' to mouse menu, fix overflow #36193glepnir1
Problem: Mouse popup menus (right-click context menus) do not respect the 'pumborder' option and could overflow screen boundaries when borders were enabled near the edge. Solution: - Remove the mouse menu exclusion from border rendering. - Add boundary check to shift menu left when border would exceed screen width, ensuring complete visibility of menu content and borders.
2026-03-17docs: api, lsp, messages, intro #38327Justin M. Keyes1
2026-03-17feat(diff): merge adjacent blocks using inline:word (#37085)Harsh Kapse1
vim-patch:9.2.0174: diff: inline word-diffs can be fragmented Problem: When using 'diffopt=inline:word', lines were excessively fragmented with punctuation creating separate highlight blocks, making it harder to read the diffs. Solution: Added 'diff_refine_inline_word_highlight()' to merge adjacent diff blocks that are separated by small gaps of non-word characters (up to 5 bytes by default) (HarshK97). When using inline:word diff mode, adjacent changed words separated by punctuation or whitespace are now merged into a single highlight block if the gap between them contains fewer than 5 non-word characters. This creates more readable diffs and closely matches GitHub's own diff display. closes: vim/vim#19098 https://github.com/vim/vim/commit/42c6686c78d39843f71dba989a8ea59bc6975132
2026-03-16feat(progress): disable cmdline progress msg via messagesopt' #36730Shadman1
Problem: No way to disable progress messages in cmdline message area. If a third-party plugin handles Progress events + messages, the user may not want the "redundant" progress displayed in the cmdline message area. Solution: Support "progress:c" entry in 'messageopts' option.
2026-03-16docs: miscJustin M. Keyes1
2026-03-15feat(help): super K (":help!") guesses tag at cursor #36205Justin M. Keyes1
Problem: `K` in help files may fail in some noisy text. Example: (`fun(config: vim.lsp.ClientConfig): boolean`) ^cursor Solution: - `:help!` (bang, no args) activates DWIM behavior: tries `<cWORD>`, then trims punctuation until a valid tag is found. - Set `keywordprg=:help!` by default. - Does not affect `CTRL-]`, that is still fully "tags" based.
2026-03-15fix(statusline): missing info/hint diagnostics #38307phanium1
Problem: default stl treat vim.diagnostics.count() return as array Solution: next() tell if a dict is empty
2026-03-12docs: vimfn descriptionsJustin M. Keyes1
2026-03-11fix(prompt): don't implicitly set 'modified' #38118Willaaaaaaa1
Problem: In aec3d7915c55fc0b7dc73f6186cf0ae45d416d33 Vim changed prompt-buffers to respect 'modified' so the termdebug plugin can "control closing the window". But for most use-cases (REPL, shell, AI "chat", …), prompt-buffers are in practice always "modified", and no way to "save" them, so *implicitly* setting 'modified' is noisy and annoying. Solution: Don't implicitly set 'modified' when a prompt-buffer is updated. Plugins/users can still explicitly set 'modified', which will then trigger the "E37: No write since last change" warning.
2026-03-11docs: api, messages, lsp, trustJustin M. Keyes1
gen_vimdoc.lua: In prepare for the upcoming release, comment-out the "Experimental" warning for prerelease features.
2026-03-10feat(terminal): surface exit code via virttext + nvim_get_chan_info #37987Ayaan1
Problem: When a terminal process exits, "[Process Exited]" text is added to the buffer contents. Solution: - Return `exitcode` field from `nvim_get_chan_info`. - Show it in the default 'statusline'. - Show exitcode as virtual text in the terminal buffer.
2026-03-03vim-patch:73f4162: runtime(doc): Tweak doc style in options.txtzeertzjq1
https://github.com/vim/vim/commit/73f41626df1f1764007f073088048ffea4f970c4 Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2026-03-03vim-patch:9.2.0088: cannot display tabs for indentationzeertzjq1
Problem: cannot display tabs for indentation Solution: Add the "leadtab" value to the 'listchars' option to distinguish between tabs used for indentation and tabs used for alignment (HarshK97). closes: vim/vim#19094 https://github.com/vim/vim/commit/8526d32647245b3b623986949e7807b4b353e624 Co-authored-by: HarshK97 <harshkapse1234@gmail.com>
2026-02-26vim-patch:9.2.0061: Not possible to know when a session will be loaded (#38071)zeertzjq1
Problem: Not possible to know when a session will be loaded. Solution: Add the SessionLoadPre autocommand (Colin Kennedy). fixes: vim/vim#19084 closes: vim/vim#19306 https://github.com/vim/vim/commit/1c0d468d72e0220d4cb25936043ac35439a981b5 Co-authored-by: Colin Kennedy <colinvfx@gmail.com>
2026-02-23fix(statusline): broken statusline on error #38000Sean Dewar1
Problem: after #33036, an error from evaluating 'statusline' clears it and doesn't draw the statusline. (causing glitchy redraws) Solution: use the default value instead. If 'stl' is somehow ever empty, still call redraw_custom_statusline to at least draw an empty statusline. Ideally our default 'stl' shouldn't itself error too! :-) Also adjust some prior screen:expect()s to avoid immediate success warnings.
2026-02-21vim-patch:9.2.0036: completion: thesaurus completion incorrect with ↵zeertzjq1
"longest/fuzzy" (#37996) Problem: completion: thesaurus completion incorrect with "longest/fuzzy" (Mao-Yining) Solution: Disable fuzzy matching and longest-match insertion specifically for thesaurus completion (Girish Palya). fixes: vim/vim#19356 closes: vim/vim#19475 https://github.com/vim/vim/commit/26a3f486cc708b285b20e92c206f1615d20b23b6 Co-authored-by: Girish Palya <girishji@gmail.com>
2026-02-18fix(defaults): 'guifont' "monospace" fallback, trim spaces #37930Rahul Yedida1
Problem: Some UI clients break if space follows the comma in 'guifont' items. Also the new 'guifont' default may cause problems if none of the fonts are found. Solution: Remove trailing whitespace. Add a "monospace" fallback which `fontconfig` can resolve on *nix systems.
2026-02-16feat(defaults): per-platform 'guifont' default #37175Rahul Yedida1
Problem: Font rendering and kerning are subpar in GUIs. Solution: Set default 'guifont' based on common CSS fonts per: https://github.com/system-fonts/modern-font-stacks#monospace-code
2026-02-15feat(statusline): option to specify stacking highlight groups #37153Riley Bruins1
**Problem:** No easy way to stack highlight groups #35806. **Solution:** Add a way to specify a new statusline chunk with a highlight group that inherits from previous highlight attributes. Also applies to tabline, etc.
2026-02-10vim-patch:9e456e5: runtime(doc): clarify the use of 'iskeyword' option valuezeertzjq1
In particular, also mention the difference between the regex atom \k and what Vim considers for a word character. closes: vim/vim#18688 https://github.com/vim/vim/commit/9e456e52df83f64075ce94c9a5adc43e221a6d3c Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-02-03feat(defaults): exclude temp dirs from 'shada' oldfiles #37631Pavel Pisetski1
Problem: Temporary files from /tmp/ and /private/ paths clutter :oldfiles list. Additionally, the documented Windows default (rA:,rB:) was never applied due to a missing platform condition. Solution: Drop platform-specific shada differences and default to excluding /tmp/ and /private/ paths.
2026-02-01vim-patch:dd9f7e6: runtime(doc): Fix some overlength lineszeertzjq1
closes: vim/vim#19286 https://github.com/vim/vim/commit/dd9f7e6cbbba6d8e63cca3b4c537dc9b8cc1837a Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-01-20vim-patch:9.1.1202: Missing TabClosedPre autocommandzeertzjq1
Problem: Missing TabClosedPre autocommand (zoumi) Solution: Add the TabClosedPre autcommand (Jim Zhou). fixes: vim/vim#16518 closes: vim/vim#16855 https://github.com/vim/vim/commit/5606ca5349982fe53cc6a2ec6345aa66f0613d40 Co-authored-by: Jim Zhou <jimzhouzzy@gmail.com>
2026-01-16vim-patch:9.1.0059: No event triggered before creating a windowzeertzjq1
Problem: No event is triggered before creating a window. (Sergey Vlasov) Solution: Add the WinNewPre event (Sergey Vlasov) fixes: vim/vim#10635 closes: vim/vim#12761 https://github.com/vim/vim/commit/1f47db75fdc8c53c5c778b26ecfa0942ac801f22 Not sure if this should be triggered before creating a floating window, as its use case is related to window layout. Co-authored-by: Sergey Vlasov <sergey@vlasov.me>
2026-01-12docs: misc (#37281)zeertzjq1
Close #37289 Close #37348 Co-authored-by: Marc Jakobi <marc@jakobi.dev> Co-authored-by: Anton Kesy <anton@kesy.de>
2026-01-12vim-patch:9.1.2079: use-after-free with 'qftf' wiping buffer (#37364)zeertzjq1
Problem: use-after-free with 'quickfixtextfunc' wiping buffer (henices) Solution: Evaluate 'quickfixtextfunc' with textlock enabled. closes: vim/vim#19142 https://github.com/vim/vim/commit/300ea1133fba310ae8acd7fadc3ab3cc24e8402f Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-28vim-patch:9.1.2024: 'fsync' option cannot be set per buffer (#37129)zeertzjq1
Problem: 'fsync' option cannot be set per buffer Solution: Make 'fsync' option global-local (glepnir) closes: vim/vim#19019 https://github.com/vim/vim/commit/4d5b30372663e8ea356b25fe94334558c6ae283f Co-authored-by: glepnir <glephunter@gmail.com>
2025-12-24vim-patch:2006415: runtime(doc): add reference to searchcount() functionzeertzjq1
https://github.com/vim/vim/commit/20064150169a94380abef37d3966c864531d1d92 Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-21Merge #37057 docsJustin M. Keyes1
2025-12-20fix(statusline): diagnostics spacing #36897Olivia Kinnear1
2025-12-20fix(options): deprecate 'gdefault', 'magic'Justin M. Keyes1
2025-12-19feat(tag): respect jumpoptions=view when popping tagstack (#37021)Sean Dewar1
Problem: jumpoptions=view has no effect when popping from the tagstack. Solution: make it work.
2025-12-10docs(options): shell-powershell #36881ymich99631
Problem: Current options for powershell and pwsh had mistakes and rationale behind them was not clear. Solution: Update the suggested options by splitting up powershell and pwsh, as well as ensuring that all options work and rationale is documented and discussed.
2025-12-09vim-patch:9.1.1963: diff: missing diff size limit for xdiff (#36877)zeertzjq1
Problem: diff: missing diff size limit for xdiff Solution: Impose file size limit for internal diff (xdiff) (Yee Cheng Chin). Git imposes a hard cap on file size for content that it passes to xdiff (added to Git in dcd1742e56e, defined in xdiff-interface.h), due to integer overflow concerns in xdiff. Vim doesn't specify such a limit right now, which means it's possible for a user to diff a large file (1GB+) and trigger these overflow issues. Add the same size limit (1GB minus 1MB) to Vim and simply throws an error when Vim encounters files larger than said limit. For now, reuse the same error message regarding internal diff failures. There is no need to add the same limit for external diff as it's up to each tool to error check their input to decide what is appropriate or not. closes: vim/vim#18891 https://github.com/vim/vim/commit/4af6d9755cba0dd07e881172f2a6e0efe9986ddc Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2025-12-07feat(events): MarkSet event, aucmd_defer() #35793Nathan Smith1
Problem: - Can't subscribe to "mark" events. - Executing events is risky because they can't be deferred. Solution: - Introduce `MarkSet` event. - Introduce `aucmd_defer()`. Helped-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2025-12-06docs: miscJustin M. Keyes1
fix https://github.com/neovim/neovim.github.io/issues/419 Co-authored-by: Rob Pilling <robpilling@gmail.com>