aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* 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>
* Merge pull request #32895 from zeertzjq/vim-8.2.4963zeertzjq2025-03-15
|\ | | | | vim-patch: buffer overflow when expanding long file name
| * vim-patch:9.0.1458: buffer overflow when expanding long file namezeertzjq2025-03-15
| | | | | | | | | | | | | | | | | | | | Problem: Buffer overflow when expanding long file name. Solution: Use a larger buffer and avoid overflowing it. (Yee Cheng Chin, closes vim/vim#12201) https://github.com/vim/vim/commit/a77670726e3706973adffc2b118f4576e1f58ea0 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| * vim-patch:8.2.4963: expanding path with "/**" may overrun end of bufferzeertzjq2025-03-15
|/ | | | | | | | | Problem: Expanding path with "/**" may overrun end of buffer. Solution: Use vim_snprintf(). https://github.com/vim/vim/commit/386c24cd262edac66a31add2fd989c96c4c2c952 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* 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>
* test: do not dedent() in feed() (#32884)zeertzjq2025-03-14
| | | | Most callers of feed() do not expect feed() to dedent. Now use a literal space in tests where it looks better.
* test: flaky loop_spec.lua #32885Justin M. Keyes2025-03-14
| | | | | | | | | | | | | | | | | | | | Problem: Test may fail because it matches a Lua table address, and the following whitespace may differ depending on the stringified address length: test/functional/lua/loop_spec.lua:233: Row 3 did not match. Expected: |{3: }| |{9:Error executing callback:} | |*{9:uv_idle_t: 0x{MATCH:%w+}} | |{6:Press ENTER or type command to continue}^ | Actual: |{3: }| |{9:Error executing callback:} | |*{9:uv_idle_t: 0xd4c2820a00} | |{6:Press ENTER or type command to continue}^ | Solution: Match a variable amount of whitespace.
* 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.
* refactor(gen_keycodes): put TAB and K_TAB together (#32882)zeertzjq2025-03-14
| | | | Keep track of the original indexes of both TAB and K_TAB, so that there doesn't have to be an extra table and loop for K_TAB.
* 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.1200: cmdline pum not cleared for input() completion (#32879)zeertzjq2025-03-13
| | | | | | | | | | | | | Problem: Cmdline pum not cleared for input() completion. Solution: Temporary reset RedrawingDisabled in cmdline_pum_cleanup(), like what is done in wildmenu_cleanup() (zeertzjq). fixes: vim/vim#16874 closes: vim/vim#16876 https://github.com/vim/vim/commit/1830e787f6ee9828151284c44b494b801c677ee9 No code change is needed in Nvim, as RedrawingDisabled does not prevent the compositor from removing a grid.
* fix(messages): no trailing newline for inputlist, tselect, z= with ext_messagesLuuk van Baal2025-03-13
| | | | | | | | | | Problem: Various list commands end in a newline to go to a new line on the message grid for the prompt message, which is unwanted with ext_messages. Solution: Don't emit a trailing newline with ext_messages for inputlist(), :tselect and z=. Co-authored-by: Tomasz N <przepompownia@users.noreply.github.com>
* 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>
* ci(deps): bump lua-language-server to 3.13.9Christian Clason2025-03-13
|
* 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:9.1.1195: inside try-block: fn body executed with default arg ↵zeertzjq2025-03-13
| | | | | | | | | | | | | | | undefined (#32866) Problem: inside try-block: fn body executed when default arg is undefined Solution: When inside a try-block do not execute function body after an error in evaluating a default argument expression (Shane Harper). closes: vim/vim#16865 https://github.com/vim/vim/commit/2d18789aa67cc60072ea0cf21811c403fa0b2c7b Co-authored-by: Shane Harper <shane@shaneharper.net>
* test: reduce flakiness in blocking wait tests (#32868)zeertzjq2025-03-13
|
* 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(terminal): delay when finishing terminal process #32846markstegeman2025-03-12
| | | | | | | | | | Problem: On Windows, the first attempt at finishing up after a terminal process terminates is delayed by 200ms, even if it would be possible to finish up immediately. Solution: Make the first attempt at finishing up immediately after the process terminates.
* refactor(popup): use plines_m_win #32857glepnir2025-03-12
| | | | | Problem: Custom inline function duplicated existing functionality Solution: Used existing plines_m_win function to reduce code duplication
* ci(deps): bump lua-language-server to 3.13.8Christian Clason2025-03-12
|
* 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.
* build(deps): bump luajit to 538a82133Christian Clason2025-03-12
|
* vim-patch:2347330: runtime(compiler): allow customizing exe and args for tsc ↵Muntasir Mahmud2025-03-12
| | | | | | | | | (#32853) closes: vim/vim#16853 https://github.com/vim/vim/commit/23473303b78d598a0f3c2f9370e011045093d3bd Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
* feat(treesitter): allow passing lang to InspectTreeMaria José Solano2025-03-12
|
* vim-patch:a8aeeeb: runtime(tera): remove unwanted code and fix issues in ↵Muntasir Mahmud2025-03-12
| | | | | | | syntax script (#32848) closes: vim/vim#16857 https://github.com/vim/vim/commit/a8aeeeb9aa694f2052e904c3e02e525035e0701f
* vim-patch:0a336cc: runtime(doc): clarify that a umask is applied to mkdir() ↵zeertzjq2025-03-11
| | | | | | | | | (#32845) fixes: vim/vim#16849 https://github.com/vim/vim/commit/0a336ccb57003c44ba303ccc50cf50cb640c2309 Co-authored-by: Christian Brabandt <cb@256bit.org>
* fix(ui): schedule UI detach (#32827)Gregory Anders2025-03-11
| | | | | | | | | | When a UI detaches it will execute any UILeave events. Autocommands cannot run in a libuv handler because they will in turn poll the event loop, which results in recursive loop execution. So we schedule the callback to detach the UI on the main event queue. We also have to schedule the exit when the RPC channel is closed to ensure it does not run until after `remote_ui_disconnect` has run, otherwise it will hang.
* refactor(lsp): rename `on_publish_diagnostics` parameter #32776Will Lillis2025-03-11
| | | | * fix(lsp): rename `on_publish_diagnostics` parameter: result->params * fix(colors): specify local var type to address lint failure
* feat(treesitter): allow disabling captures and patterns on TSQuery (#32790)Ian Chamberlain2025-03-11
| | | | | | | | | Problem: Cannot disable individual captures and patterns in treesitter queries. Solution: * Expose the corresponding tree-sitter API functions for `TSQuery` object. * Add documentation for `TSQuery`. * Return the pattern ID from `get_captures_at_pos()` (and hence `:Inspect!`).
* fix: warn when :InspectTree on buffer with no parser #32783phanium2025-03-11
| | | | | Problem: `InspectTree` error on buffer without ts parser attached. Solution: show a more correct warning.
* ci(test): enable translations in at least one job (#32833)zeertzjq2025-03-11
| | | | | Enable translations in the GCC release job, as it's the fastest. Although there aren't many tests for translation behavior, this still allows ensuring that Nvim isn't broken when translations are enabled.
* fix(lsp): improve LSP floating preview window cleanup #31353glepnir2025-03-11
| | | | | Problem: The current implementation creates a unique autocommand group for each floating preview window, which is inefficient and can lead to numerous autocommand groups. Solution: Use a single shared autocommand group with improved window validation to properly clean up LSP floating preview windows.
* fix(lsp): wrapped ctx in opts before passed to vim.lsp.completion.trigger #32837glepnir2025-03-11
| | | | | Problem: ctx is passed directly to M.trigger. In fact, it is a field of opts. Solution: wrapped in a table and passed to M.trigger.
* Merge pull request #32836 from clason/bump/lualsChristian Clason2025-03-11
|\ | | | | ci(deps): bump lua-language-server to 3.13.7
| * ci(deps): bump lua-language-server to 3.13.7Christian Clason2025-03-11
|/
* vim-patch:9.1.1193: Unnecessary use of STRCAT() in au_event_disable() (#32829)zeertzjq2025-03-11
| | | | | | | | | | | | | Problem: Unnecessary use of STRCAT() in au_event_disable(). STRCAT() seeks to the end of new_ei, but here the end is already known. Solution: Use STRCPY() and add p_ei_len to new_ei. Also fix a typo in a comment. Add a test that 'eventignore' works in :argdo (zeertzjq). closes: vim/vim#16844 https://github.com/vim/vim/commit/969e11a18b145241dc0ab39fc1be7ed814655dfc Cherry-pick p_ei_len from patch 9.1.0256.
* fix(events): fix incorrect capitalization of Cmdwin* events (#32813)zeertzjq2025-03-11
| | | | | | The name of Cmdwin* events were changed to CmdWin* in 8ed2dbf6e2802516501c11e72e5d6d977e6a07f3 without explanation. This commit changes them back. This doesn't affect the creation or execution of autocommands. It only affects the listing of autocommands.
* Merge pull request #32828 from zeertzjq/vim-9.1.1186zeertzjq2025-03-11
|\ | | | | vim-patch:9.1.{1186,1191,1194}: filetype: help files in git repos are not detected
| * vim-patch:9.1.1194: filetype: false positive help filetype detectionzeertzjq2025-03-11
| | | | | | | | | | | | | | | | | | | | Problem: filetype: false positive help filetype detection Solution: Only detect a file as help if modeline appears either at start of line or is preceded by whitespace (zeertzjq). closes: vim/vim#16845 https://github.com/vim/vim/commit/6763b0ee95e7e66ab7992653fbba48691e803e70
| * vim-patch:9.1.1191: tests: test for patch 9.1.1186 doesn't fail without the ↵zeertzjq2025-03-11
| | | | | | | | | | | | | | | | | | | | | | patch Problem: Test for patch 9.1.1186 doesn't fail without the patch. Solution: Set 'nomodeline' in the test (zeertzjq). closes: vim/vim#16835 https://github.com/vim/vim/commit/d6c7913e24e07c1d0ea099cda85e0014e8627c5c
| * vim-patch:9.1.1186: filetype: help files in git repos are not detectedzeertzjq2025-03-11
|/ | | | | | | | | | | | | | | | | | | | | | | | Problem: filetype: help files in git repos are not detected Solution: detect */doc/*.txt files as help if they end with a help modeline, even if 'modeline' is off Here's how I checked that this would still detect vim's own help files correctly: $ find . -type f -path '*/doc/*.txt' \ > -exec awk '{ } ENDFILE { print FILENAME ":" $0; }' '{}' + | > grep -v 'vim:.*\<\(ft\|filetype\)=help\>' ./src/libvterm/doc/seqs.txt: 23 DECSM 42 = DECNRCM, national/multinational character closes: vim/vim#16817 https://github.com/vim/vim/commit/16d6fff98ed3a9dfd34a41696b005b0c4c7800f8 Split the pattern into a Lua pattern for the first part and a Vim regex pattern for the second part, so that if the first part doesn't match there is no need to use the Vim regex. Co-authored-by: David Mandelberg <david@mandelberg.org>
* Merge pull request #32825 from moguls753/issue-32714-redundant-parsersJustin M. Keyes2025-03-10
|\ | | | | feat(checkhealth): group parsers by name and path in output
| * feat(checkhealth): group parsers by name and path in outputEike2025-03-10
|/ | | | | | | | | Problem: :checkhealth vim.treesitter sorts parser entries solely by path, splitting duplicates and reducing clarity. Solution: Sort entries first by name, then by path, so that duplicates are grouped.