aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* fix(checkhealth): module not found when `&rtp` has nested paths #32988phanium2025-03-19
| | | | | | | | | | | Problem: `:checkhealth` fail to find the module when `&rtp` have nested paths. Solution: find in order all existed `&rtp/lua` path rather than `&rtp` to ensure prefix exist before trim `&rtp`. In this case one module can be searched out from two different `&rtp/lua`, we use the first `&rtp/lua` contain the module (like how require() works).
* fix(snippet): wrong indentation when snippet contains "^" #32970Avinash Thakur2025-03-19
| | | | | | | | | | | | | | | | | | | | | | | ## Problem The pattern used to match indentation is wrong as can be seen in ```lua -- current pattern doesn't match starting space print(vim.inspect((" xyz"):match("(^%s+)%S"))) -- nil -- instead, it matches characters `^ ` in text print(vim.inspect(("x^ yz"):match("(^%s+)%S"))) -- "^ " -- indentation could've been matched by, however not required print(vim.inspect((" xyz"):match("^(%s+)%S"))) -- " " ``` ## Solution We don't even need to modify `base_indent` at every line. If every line's indentation is calculated by the previous line's indentation (which already has starting indentation) added to the starting indentation, we see that indentation is multiplied on every line. Hence, we only add the starting line indentation to every line.
* fix(filetype): normalize full path before matching #32227markstegeman2025-03-19
| | | | | | | | | | | | | Problem: On Windows, treesitter query files are not recognized as such when opened from inside their directory, because the full path returned from fnamemodify(_, ':p') contains backslashes, while the filetype patterns expect forward slashes. Solution: Normalize the result of fnamemodify(_, ':p') before trying to match it to filetype patterns. Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* fix(diagnostic): clear virtual_lines autocmd only for valid buf #32979Mars Peng2025-03-19
|
* fix(runtime): gO always says "Help TOC" #32971Justin M. Keyes2025-03-19
| | | | | | | Problem: gO always says "Help TOC". Solution: Use a generic title instead.
* vim-patch:40ab82b: runtime(sh): remove invalid commented out line in syntax ↵Christian Clason2025-03-19
| | | | | | | | script https://github.com/vim/vim/commit/40ab82b974a31ab483abee6357d97d9018d775a7 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:711f4a0: runtime(sh): update sh indent scriptChristian Clason2025-03-19
| | | | | | | | fixes: vim/vim#16930 https://github.com/vim/vim/commit/711f4a07f356cbe6f1d6d67994519f0b36a100f2 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:11ab02c: runtime(go): use :term for keywordprg for nvim/gvimChristian Clason2025-03-19
| | | | | | | | | | | | | | | | | | | | Problem: - The document from `go doc` can be very long, and you can scroll if using `!` to run shell command in Gvim. - I realize that I didn't fully mimic behavior of default keywordprg in Nvim in the last commit. Solution: - Use builtin terminal for keywordprg in Gvim - In Nvim (both TUI and GUI), it should mimic the behavior of Vim `:term`, `:Man`, and `:help` closes: vim/vim#16911 https://github.com/vim/vim/commit/11ab02c819449eaeddc3d8d291f06bc73f428e91 Co-authored-by: Phạm Bình An <phambinhanctb2004@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* vim-patch:ad2f6b6: runtime(keymap) Add forward slash (/) to ↵Christian Clason2025-03-19
| | | | | | | | | | russian-jcukenwin keymap closes: vim/vim#16912 https://github.com/vim/vim/commit/ad2f6b66623f0a218ae1b2b18430e728070c8aca Co-authored-by: Marat Amerov <maratamerov@gmail.com>
* vim-patch:9.1.1220: filetype: uv.lock file not recognized (#32955)Acaibrid2025-03-18
| | | | | | | | | Problem: filetype: uv.lock file not recognized Solution: detect uv.lock file as toml filetype (Acaibird) closes: vim/vim#16924 https://github.com/vim/vim/commit/18a6853a7627de231f0128237665112a0c8aaaf0
* feat(float): add winborder option (#31074)glepnir2025-03-18
| | | | | | | | | Problem: There is currently no global option to define the default border style for floating windows. This leads to repetitive code when developers need consistent styling across multiple floating windows. Solution: Introduce a global option winborder to specify the default border style for floating windows. When a floating window is created without explicitly specifying a border style, the value of the winborder option will be used. This simplifies configuration and ensures consistency in floating window appearance. Co-authored-by: Gregory Anders <greg@gpanders.com>
* fix(help): remove runnable code virtual textChristian Clason2025-03-18
| | | | | | | | Problem: Virtual text indicating runnable code examples in help files is intrusive and non-configurable (and often denotes actually non-working examples). Solution: Remove virtual text.
* docs: misc #32959Justin M. Keyes2025-03-18
|
* fix(runtime): E15: Invalid expression in lua file when `gf`phanium2025-03-18
| | | | | | | | | | | | | | Problem: after https://github.com/neovim/neovim/pull/32719, `gf` error in lua: ``` E15: Invalid expression: "v:lua.require"vim._ftplugin.lua".includeexpr()" E447: Can't find file "vim._ftplugin.lua" in path ``` Solution: * use single quote (no idea why there's two pair double quote in expression). * add missing `v:fname`.
* fix(lua): ensure inspect_pos() only shows visible highlight extmarksLuuk van Baal2025-03-18
| | | | | | | | | | | | | | | Problem: Unpaired marks are shown with `filter.extmarks == true`, which should only return visible highlights. Misleading `end_col` included in `inspect_pos()` for unpaired mark; it is set to `start_col + 1` which would be a visible highlight, which it is not. Custom "is_here" filter used to get extmarks overlapping a position. Solution: Exclude unpaired highlight extmarks with `filter.extmarks == true`. Set `end_col` to `start_col` for an unpaired mark. Supply appropriate arguments to nvim_buf_get_extmarks() to return overlapping extmarks; exclude marks whose end is at `{row, col}` with `filter.extmarks == true`.
* test: cleanup ftplugin_spec.lua #32948Justin M. Keyes2025-03-17
| | | | | | | | Problem: - cannot run ftplugin_spec.lua by itself - test leaves foo/ dir Solution: - fix setup and teardown
* fix(diagnostic): remove deprecated `severity_limit` optionChristian Clason2025-03-17
| | | | Deprecated to be removed in 0.11
* feat(runtime): Lua ftplugin 'includeexpr' #32719Phạm Bình An2025-03-17
| | | | | | | | | Problem: Current `'includeexpr'` in runtime/ftplugin/lua.vim doesn't work with Nvim Lua. Solution: Provide an improved 'includeexpr' for Lua in "ftplugin/lua.lua". Closes: https://github.com/neovim/neovim/issues/32490
* docs: miscJustin M. Keyes2025-03-17
|
* docs(api): rename "handle" => "id"Justin M. Keyes2025-03-17
|
* docs: OSC 133Justin M. Keyes2025-03-17
| | | | | | The "end" termcode is not actually needed for our purposes. And the suggested $PS1 has trouble with bash's "reverse find" (CTRL-r) feature, probably because I did it wrong...
* vim-patch:3c7d9b1: runtime(prql): include prql syntax scriptChristian Clason2025-03-16
| | | | | | | | | | | | References: https://prql-lang.org/ https://github.com/PRQL/prql closes: vim/vim#16885 https://github.com/vim/vim/commit/3c7d9b11c8041f483a6caad9e9653e375f387d05 Co-authored-by: Jonathan <vanillajonathan@users.noreply.github.com>
* perf(lsp): don't construct potentially expensive stringsRiley Bruins2025-03-16
|
* refactor(lsp)!: rename lsp.completion.trigger() to get() (#32911)Mathias Fußenegger2025-03-16
| | | | | | | | | | | | Problem: `trigger` is a custom word not yet used in APIs. Solution: Use `get` instead because the main effect is that the completion candidates will be collected (and shown by default, but follow-up commits are planned to add an `on_result` callback that allows more general handling). --------- Co-authored-by: Christian Clason <c.clason@uni-graz.at>
* fix(checkhealth): handle nested lua/ directory #32918phanium2025-03-16
| | | | | | Problem: :checkhealth fails if plugin has nested "lua/" directory Solution: trim `{runtimepath}/lua` from fullpath to get subpath (`./**/{health, health/init.lua}`)
* fix(diagnostic): virtual lines should scroll horizontallyxzb2025-03-16
|
* docs(lsp): simplify example of enabling LSP foldingYi Ming2025-03-16
|
* feat(runtime): Lua ftplugin sets 'omnifunc', 'foldexpr' #32697Phạm Bình An2025-03-15
| | | | | | | | | | | | Problem: - Many other ftplugin have defined 'omnifunc', but the Lua one doesn't define one, even though there is `vim.lua_omnifunc()` - Users may want "stupid" completion to fix Lua config with `nvim --clean` in case they breaks it - Nvim doesn't port Lua foldexpr from Vim Solution: - Set 'omnifunc' to 'v:lua.vim.lua_omnifunc' in ftplugin/lua.lua - Set 'foldexpr' to use treesitter
* refactor(test): deprecate n.feed_command() #32915Justin M. Keyes2025-03-15
| | | | | | | | | | | Problem: `feed_command()` was added as a "bridge" for old test code. 99% of those cases should be using `n.command()`, which raises errors instead of silently continuing the test. Solution: Deprecate `feed_command()`. It should not be used in new tests. All usages of `feed_command()` should be converted to `command()` or `feed()`.
* fix(lsp): correctly check for "codeAction/resolve" supportTobias Schmitz2025-03-15
|
* docs: miscdundargoc2025-03-15
| | | | | | | | | | | | | Co-authored-by: Au. <acehinnnqru@gmail.com> Co-authored-by: Daniel Rainer <daniel.rainer@localhost> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Lewis Russell <lewis6991@gmail.com> Co-authored-by: Luuk van Baal <luukvbaal@gmail.com> Co-authored-by: Pierre Barbin <pierre@heitzsystem.com> Co-authored-by: Riley Bruins <ribru17@hotmail.com> Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com> Co-authored-by: phanium <91544758+phanen@users.noreply.github.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* fix(lsp): autocmds to close lsp preview windows not clearedbekaboo2025-03-15
| | | | | | | | Problem: Augroup to close lsp preview hover window is not cleared after the window is closed because of unmatched group name. Solution: Delete the augroup before closing the preview window with correct group name.
* feat(defaults): completeopt=popup #32909Justin M. Keyes2025-03-15
| | | | Assuming that completeopt=popup does what its documentation claims, it is more appropriate that completeopt=preview as a default.
* fix(treesitter): update lua, markdown queriesChristian Clason2025-03-15
|
* vim-patch:96395e1: runtime(cs): Update C# runtime filesChristian Clason2025-03-15
| | | | | | | | closes: vim/vim#16884 https://github.com/vim/vim/commit/96395e15125502e6c29bc93c58d688a2bdc31300 Co-authored-by: Nick Jensen <nickspoon@gmail.com>
* vim-patch:9.1.1203: matchparen keeps cursor on case label in sh filetype ↵zeertzjq2025-03-15
| | | | | | | | | | | | | (#32900) Problem: matchparen keeps cursor on case label in sh filetype (@categorical, after 9.1.1187). Solution: Use :defer so that cursor is always restored, remove checks for older Vims, finish early if Vim does not support :defer fixes: vim/vim#16887 closes: vim/vim#16888 https://github.com/vim/vim/commit/47071c6076018cace96f6e567054a21c123d0c10
* vim-patch:2329bd4: runtime(doc): fix a typo in gitrebase filetype (#32899)zeertzjq2025-03-15
| | | | | | | | | Introduced in 4d2c4b90f. closes: vim/vim#16892 https://github.com/vim/vim/commit/2329bd427a046d1e76ba29100a2e79790fd96011 Co-authored-by: skshetry <18718008+skshetry@users.noreply.github.com>
* vim-patch:f22580e: runtime(doc): update a few minor omissions from 5876016 ↵zeertzjq2025-03-14
| | | | | | | | | and 4d2c4b9 (#32888) https://github.com/vim/vim/commit/f22580e57c09ef8584fc62140028adf2d043c306 Skip options.txt: included in #30189 Co-authored-by: Christian Brabandt <cb@256bit.org>
* feat(snippet): set snippet keymaps permanent instead of dynamic (#31887)Mathias Fußenegger2025-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Given that `vim.snippet.expand()` sets temporary `<tab>`/`<s-tab>` keymaps there is no way to build "smart-tab" functionality where `<tab>` chooses the next completion candidate if the popup menu is visible. Solution: Set the keymap permanent in `_defaults`. The downside of this approach is that users of multiple snippet engine's need to adapt their keymaps to handle all their engines that are in use. For example: vim.keymap.set({ 'i', 's' }, "<Tab>", function() if foreign_snippet.active() then return "<Cmd>lua require('foreign_snippet').jump()<CR>" elseif vim.snippet.active({ direction = 1 }) then return "<Cmd>lua vim.snippet.jump(1)<CR>" else return key end end, { expr = true }) Upside is that using `vim.keymap.set` to override keymaps is a well established pattern and `vim.snippet.expand` calls made by nvim itself or plugins have working keymaps out of the box. Co-authored-by: Maria José Solano <majosolano99@gmail.com>
* fix(vim.fs): default to follow=false #32859Mike2025-03-14
| | | | | | | Problem: Following symlinks can have surprising behavior and slow performance. Solution: Do not set it by default.
* vim-patch:4d2c4b9: runtime(doc): document gitrebase filetype (#32881)zeertzjq2025-03-14
| | | | | | | closes: vim/vim#16883 https://github.com/vim/vim/commit/4d2c4b90fb0603c9cc53aa33c43c5840c91cb80e Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.1.1196: filetype: config files for container tools are not ↵zeertzjq2025-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | recognized (#32873) Problem: filetype: config files for container tools are not recognized Solution: detect the ones that aren't detected yet as toml filetype (David Mandelberg) The .containerignore format doesn't look exactly the same as gitignore, but very close. And .dockerignore is already using gitignore. References: https://github.com/containers/common/blob/main/docs/containerignore.5.md https://github.com/containers/common/blob/main/docs/containers.conf.5.md https://github.com/containers/storage/blob/main/docs/containers-storage.conf.5.md https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md https://github.com/containers/image/blob/main/docs/containers-registries.conf.d.5.md I wasn't sure exactly how to interpret what containers.conf(5) was saying about modules, so I looked at https://github.com/containers/common/tree/main/pkg/config/testdata/modules to get examples, and based the detection off those. closes: vim/vim#16852 https://github.com/vim/vim/commit/7546afbf525861f586ea2deabf71e3a2940abd4d Co-authored-by: David Mandelberg <david@mandelberg.org>
* fix(lua): vim.hl.on_yank highlights wrong region with yi' (#32850)phanium2025-03-13
| | | | | | | Problem: yi' don't highlight last character since https://github.com/neovim/neovim/commit/8ce504820af04194a41acbe1f4c61cf12bd5feb5. Solution: Always use `opts.inclusive=true`, since calculation of `"]` (`b_op_end`) have taken `inclusive` into account.
* vim-patch:9.1.1198: [security]: potential data loss with zip.vim (#32867)zeertzjq2025-03-13
| | | | | | | | | | | | Problem: [security]: potential data loss with zip.vim and special crafted zip files (RyotaK) Solution: use glob '[-]' to protect filenames starting with '-' Github Advisory: https://github.com/vim/vim/security/advisories/GHSA-693p-m996-3rmf https://github.com/vim/vim/commit/f209dcd3defb95bae21b2740910e6aa7bb940531 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:c1c3b5d: runtime(doc): remove unnecessary "an" (#32865)zeertzjq2025-03-13
| | | | | | | | | | | | "umask" is pronounce like "youmask", so having an "an" before it is a bit strange. In other places in the help, "umask" is not preceded by either "a" or "an", and sometimes preceded by "the". Also, "Note" is usually followed either by ":" or "that" in builtin.txt, so add a ":" after "Note". closes: 16860 https://github.com/vim/vim/commit/c1c3b5d6a0a3032057bf6de8672cc79100bb73c9
* fix(diagnostic): clear autocmd only for valid buf (#32861)Jaehwang Jung2025-03-12
|
* fix: update osc52 termfeatures flag on UIEnter/UILeave (#32756)Gregory Anders2025-03-12
| | | | | | | | | Problem: Nvim tries to use OSC 52 even when no TUIs are attached. Solution: On each UIEnter/UILeave event, check that there is a TUI client connected to Nvim's stdout.
* fix(lsp): handle non-existent configs in lsp.config/enableLewis Russell2025-03-12
|
* vim-patch:4fa2dd2: runtime(compiler): add comment for Dispatch (#32856)zeertzjq2025-03-12
| | | | | | | closes: vim/vim#16854 https://github.com/vim/vim/commit/4fa2dd2405a8d11bf1d1cb3553adb6fba53dc19f Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
* feat(treesitter): allow `iter_captures` to accept `opts`Riley Bruins2025-03-12
| | | | | | This matches the `iter_captures` functionality to the `iter_matches` functionality, allowing it to specify a match limit and start depth for the query iterator.