aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | vim-patch:9.1.1125: cannot loop through pum menu with multiline items (#32543)zeertzjq2025-02-21
| | | | | | | | | | | | | | | | | | | | | | | | Problem: cannot loop through pum menu with multiline items with fuzzy and noselect in 'completeopt' (Tomasz N) Solution: remove unnecessary compl_no_select condition (glepnir) fixes: vim/vim#16641 closes: vim/vim#16674 https://github.com/vim/vim/commit/3af0a8d8f5b090a6a4b085e7b6ee0f5f87eda399 Co-authored-by: glepnir <glephunter@gmail.com>
* | vim-patch:9.1.1126: patch 9.1.1121 used a wrong way to handle enterzeertzjq2025-02-21
| | | | | | | | | | | | | | | | | | | | | | | | Problem: patch 9.1.1121 used a wrong way to handle enter Solution: compl_enter_selects also needs to consider the selected item in ins_compl_new_leader() (glepnir) closes: vim/vim#16673 https://github.com/vim/vim/commit/44180416981000ad0bc5db4686889892e7a05cdd Co-authored-by: glepnir <glephunter@gmail.com>
* | test(completion_spec): make Enter test descriptions more accuratezeertzjq2025-02-21
| |
* | vim-patch:9.1.1121: Enter does not insert newline with "noselect"glepnir2025-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Enter does not insert newline with "noselect" when the pum is visible (lifepillar) Solution: When Enter is pressed and no complete-item is selected, ins_compl_prep returns false, and the edit function continues processing Enter to insert a new line. (glepnir) fixes: vim/vim#1653 closes: vim/vim#16653 https://github.com/vim/vim/commit/07f0dbe3aa326fdf4d0f1b1cf7d79df89e91fc6e Co-authored-by: glepnir <glephunter@gmail.com>
* | vim-patch:9.1.1124: No test for 'listchars' "precedes" with double-width ↵zeertzjq2025-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | char (#32541) Problem: No test for 'listchars' "precedes" with double-width char. Solution: Add a test and fix a typo in code (zeertzjq). closes: vim/vim#16675 https://github.com/vim/vim/commit/08a83a033a32c0f5bc42eaa63162c21c369cb4ae Cherry-pick test_listchars.vim changes from patch 9.0.0625. Fix a regression from #30014 by moving the mb_schar assignment after the double-width check.
* | feat(messages): confirm kind for z=, :tselect, inputlist() #32521luukvbaal2025-02-20
| | | | | | | | | | | | | | | | | | | | | | Problem: Messages preceding a `cmdline_show->prompt` event can not be distinguished as such when receiving the event. (But since `msg_show` handlers should be scheduled, one can already check whether a prompt is active when displaying the message.) Solution: Rather than add a new kind again, use the `confirm` kind. Could be seen as slightly misleading where it is more of a choice rather than a confirmation, but that already applies to `confirm()` as well...
* | feat(marks): virtual lines support horizontal scrolling (#32497)zeertzjq2025-02-20
| | | | | | | | Add a new field `virt_lines_overflow` that enables horizontal scrolling for virtual lines when set to "scroll".
* | fix(keycodes): recognize <Find>, <Select> #28431Mantas Mikulėnas2025-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PuTTY sets TERM=xterm, but sends ESC[1~ and ESC[4~ for Home/End keys, which does not match what the 'xterm' terminfo has for khome/kend, so libtermkeys instead reports them as the original DEC VT220 names. The VT220 came with a DEC LK201 keyboard which had the following keys in the area above arrow keys (where PCs now have Ins/Del/Home/End/etc): ┌────────┬────────┬────────┐ │ Find │ Insert │ Re- │ │ │ Here │ move │ ├────────┼────────┼────────┤ │ Select │ Prev │ Next │ │ │ Screen │ Screen │ └────────┴────────┴────────┘ These would send ESC[x~ sequences in the expected order: ┌────────┬────────┬────────┐ │ ESC[1~ │ ESC[2~ │ ESC[3~ │ ├────────┼────────┼────────┤ │ ESC[4~ │ ESC[5~ │ ESC[6~ │ └────────┴────────┴────────┘ Modern terminals continue to use the same sequences for Ins/Del as well as PageUp/PageDn. But the VT220 keyboard apparently had no Home/End, and PuTTY apparently chose to re-purpose the Find/Select key sequences for Home/End (even though it claims to emulate Xterm and this doesn't match what actual Xterm does). So when Home/End are used in Neovim through PuTTY with TERM=xterm (the default setting), libtermkey finds no match for the received sequences in the terminfo database and defaults to reporting them as <Find> and <Select> respectively. PuTTY is not unique here -- tmux *also* sends ESC[1~ and ESC[4~ after its internal translation -- but the difference is that 'tmux' terminfo correctly maps them to Home/End so Neovim recognizes them as such, while PuTTY defaults to using 'xterm' which uses a different mapping. This initial patch only allows Neovim to recognize <Find> and <Select> key codes as themselves, so that the user could manually map them e.g. using ":imap <Find> <Home>". Alternatives: - Using TERM=putty(-256color) would of course be the most correct solution, but in practice it leads to other minor issues, e.g. the need to have different PuTTY config profiles for older or non-Linux systems that lack that terminfo, or tmux's insistence on rendering italics as reverse. - Using Neovim through tmux avoids the problem (as tmux recognizes ESC[1~ on input), but is something that needs to be manually run every time. The keycodes.h constants are slightly misnamed because K_SELECT was already taken for a different purpose.
* | vim-patch:c729d6d: runtime: decouple Open and Launch commands and gx mapping ↵Luca Saccarola2025-02-20
| | | | | | | | | | | | | | | | from netrw (#32506) closes: vim/vim#16494 fixes: #vim/vim#16486 https://github.com/vim/vim/commit/c729d6d154e097b439ff264b9736604824f4a5f4
* | fix(treesitter): don't spam query errors in the highlighterRiley Bruins2025-02-19
| | | | | | | | | | | | | | | | **Problem:** An erroneous query in the treesitter highlighter gives a deluge of errors that makes the editor almost unusable. **Solution:** Detach the highlighter after an error is detected, so that it only gets displayed once (per highlighter instance).
* | fix(api): remove invalid assertionsLuuk van Baal2025-02-19
| | | | | | | | | | Problem: `try_leave()` assertions moved in #31600 no longer hold. Solution: Remove the assertions.
* | fix(treesitter): avoid computing fold levels for empty bufferLuuk van Baal2025-02-19
| | | | | | | | | | | | | | | | Problem: Computing fold levels for an empty buffer (somehow) breaks the parser state, resulting in a broken highlighter and foldexpr. Cached foldexpr parser is invalid after filetype has changed. Solution: Avoid computing fold levels for empty buffer. Clear cached foldinfos upon `FileType`.
* | fix(treesitter)!: enforce buffer is loaded when creating parserLuuk van Baal2025-02-19
| | | | | | | | | | | | | | Problem: `vim.treesitter._create_parser()` silently loads the buffer, bypassing the swapfile prompt. Solution: Error for an unloaded buffer, ensure buffer is loaded in `vim.treesitter.start()` instead.
* | docs: Lua "bit" library #32492Phạm Bình An2025-02-19
| | | | | | | | | | | | | | Problem: lua-bit is built-in, but there is no doc Solution: Upstream doc from https://bitop.luajit.org/
* | fix(terminal): avoid more `busy_start` lacking `busy_stop` (#32509)Sean Dewar2025-02-19
| | | | | | | | | | | | | | | | | | | | | | Problem: after #32458, it may still be possible for `busy_start` UI events to be emitted without matching `busy_stop`s in the terminal. Solution: do `terminal_enter`'s cursor visibility check immediately after setting/restoring State so it occurs before events. This ensures that if pending escape sequences are processed while in `terminal_enter`, the cursor's initial visibility is set before `is_focused` is checked by `term_settermprop`. As a result, we can move the call to `showmode` back to where it was originally.
* | vim-patch:9.1.1122: too many strlen() calls in findfile.c (#32516)zeertzjq2025-02-19
| | | | | | | | | | | | | | | | | | | | | | Problem: too many strlen() calls in findfile.c Solution: refactor findfile.c and remove calls to strlen() (John Marriott) closes: vim/vim#16595 https://github.com/vim/vim/commit/d6e3c9048dfb7e8f08f8fadc820c7e2208c3f030 Co-authored-by: John Marriott <basilisk@internode.on.net>
* | vim-patch:9.0.0532: edit test is flaky when run under valgrind (#32518)zeertzjq2025-02-19
| | | | | | | | | | | | | | | | | | | | Problem: Edit test is flaky when run under valgrind. Solution: Send some text to the terminal to trigger a redraw. https://github.com/vim/vim/commit/14f91765c07e147e0c8554a50560ae24dbd5ecea Cherry-pick Test_edit_shift_bs() from patch 8.2.4876. Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | test(lua/hl_spec): fix hang on exit with ASAN (#32508)zeertzjq2025-02-18
| |
* | build(deps): bump tree-sitter to v0.25.2Christian Clason2025-02-18
| |
* | vim-patch:5647c91: runtime(doc): add reference to extendnew() at extend() ↵zeertzjq2025-02-17
| | | | | | | | | | | | | | | | | | (#32500) related: vim/vim#16607 https://github.com/vim/vim/commit/5647c91355f1ff3a1030c737bf5133bb7da5bb76 Co-authored-by: Christian Brabandt <cb@256bit.org>
* | fix(tests): remove the __extension__ keyword in filter_complex_blocks (#32483)Sören Tempel2025-02-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: This keyword is used by GCC and Clang to prevent -Wpedantic (and other options) from emitting warnings for many GNU C extensions. This is used heavily in Alpine Linux through musl libc and foritfy-headers. Without filtering the __extension__ keyword some type definitions are duplicated. For example, timeval is defined once as struct timeval { time_t tv_sec; suseconds_t tv_usec; }; and once as: __extension__ struct timeval { time_t tv_sec; suseconds_t tv_usec; }; Without this patch, the LuaJIT C parser doesn't recognize that these definitions are equivalent, causing unit test to fail on Alpine Linux. Solution: Filter out the keyword in filter_complex_blocks.
* | fix(treesitter): separately track the number of valid regionsRiley Bruins2025-02-17
| | | | | | | | | | | | We need to add a separate variable to keep track of this information, since we cannot read the length of the valid regions table itself, since it has holes.
* | refactor(channel): eliminate special case in on_proc_exit() #32485Justin M. Keyes2025-02-17
| | | | | | | | | | | | | | | | | | | | | | Problem: on_proc_exit() has a special-case that assumes that the UI client will never spawn more than 1 child process. Solution: If the Nvim server exits, the stream EOF will trigger `rpc_close()` in the UI client, so we don't need the special case in `on_proc_exit`. Pass `Channel.exit_status` from `rpc_close()` so that the correct exit code is reflected.
* | docs: misc (#32258)dundargoc2025-02-17
| | | | | | | | | | Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Julian Visser <12615757+justmejulian@users.noreply.github.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* | test(lua/hl_spec): reduce flakiness (#32489)zeertzjq2025-02-17
| |
* | test: reduce flakiness in highlight tests (#32488)zeertzjq2025-02-17
| |
* | vim-patch:68ba6c2: runtime(vim): Update base-syntax, improve performance ↵zeertzjq2025-02-17
|/ | | | | | | | | | | | | | | (#32487) Contain the vimNotation syntax group, matching this at top level is unnecessary and very slow. The removed vimString and vimNumber definitions are broken and/or never match. They have long been replaced by newer definitions. closes: vim/vim#16645 https://github.com/vim/vim/commit/68ba6c2c6c165796225f321597341a464fd72b63 Co-authored-by: Doug Kearns <dougkearns@gmail.com>
* docs: stdpath() type #32480phanium2025-02-16
|
* fix(diagnostic): don't include diagnostic code when using custom formatter ↵Maria José Solano2025-02-16
| | | | #32464
* fix(marks): handle composing in inline virt_text with 'nowrap' (#32477)zeertzjq2025-02-16
|
* fix(marks): handle double-with inline virt_text with 'nowrap' (#32476)zeertzjq2025-02-16
|
* fix(docs): update context type in `vim.lsp.LocationOpts.OnList`Maria José Solano2025-02-16
|
* fix(terminal): avoid mismatched `busy_start` without `busy_stop` (#32458)Sean Dewar2025-02-15
| | | | | | | | | | | | | | | | Problem: `showmode` in `terminal_enter` may cause `vpeekc` to process events, which may handle pending escape sequences. If `CSI ? 25 l` is handled to hide the cursor, it may remain hidden even after leaving terminal mode if both `terminal_enter` and (indirectly) `showmode` call `ui_busy_start`, as there is only one matching call to `ui_busy_stop` after leaving terminal mode. Solution: let `terminal_enter` handle setting the initial visibility of the cursor before calling `showmode`. Closes #32456. This simple solution assumes it isn't possible for e.g. `os_breakcheck` to be called indirectly by something else before `terminal_enter` initially handles cursor visibility and after it restores it, which I think is true.
* ci(test): disable ubuntu armdundargoc2025-02-15
| | | | | There are too many flakes and intermittent failures to reliably use it. Disable it for the time being until things stabilize.
* vim-patch:3f60114: runtime(keymap): Add ukrainian-enhanced keymapChristian Clason2025-02-15
| | | | | | | | | | | | | | | | | | | | The "Ukrainian enhanced keymap" allows you to type Ukrainian in Vim using jcuken Windows layout. Original file is made by Ivan Korneliuk and can be found at https://github.com/vansha/ukrainian-enhanced.vim. It is being added here with the permission of the author. There is another ukrainian layout already in Vim, namely the keymap\ukrainian-jcuken.vim script by Anatoli Sakhnik. But this one differs in way it maps numeric keys. It uses values usual for Windows users. closes: vim/vim#16628 https://github.com/vim/vim/commit/3f60114236cff60caf117fd708476fd4ff72252b Co-authored-by: Vladyslav Rehan <rehanvladyslav@gmail.com>
* vim-patch:faf4112: runtime(doc): document ComplMatchIns highlight for ↵zeertzjq2025-02-14
| | | | | | | | | insert-completion (#32448) closes: vim/vim#16636 https://github.com/vim/vim/commit/faf4112cdc60ca126986da15148f78337f126cf7 Co-authored-by: glepnir <glephunter@gmail.com>
* vim-patch:9.1.1112: Inconsistencies in get_next_or_prev_match() (#32447)zeertzjq2025-02-14
| | | | | | | | | Problem: Inconsistencies in get_next_or_prev_match() (after 9.1.1109). Solution: Change "file" to "entry" or "match" in comments. Use the same order of branches for PAGEUP and PAGEDOWN (zeertzjq). closes: vim/vim#16633 https://github.com/vim/vim/commit/b6c900be9ce49f688d3a03c2767dedb48e4f23ae
* feat(lsp): add support for completionItem.command resolvingMathias Fussenegger2025-02-14
| | | | | | | | `command` was already resolved via a `completionItem/resolve` request but only if `additionalTextEdits` were also present, and the `resolveSupport` capability wasn't listed. Closes https://github.com/neovim/neovim/issues/32406
* ci(release): change to ubuntu-22.04dundargoc2025-02-14
| | | | Ubuntu 20.04 is deprecated.
* fix(float): "Not enough room" error for 1-line float #25192glepnir2025-02-14
| | | | | | | | | Problem: set winbar on a floating window which only have one row will cause crash. Solution: when new floating window only have one room don't copy winbar from target window" Fix #19464
* Merge pull request #32442 from zeertzjq/vim-407319fzeertzjq2025-02-14
|\ | | | | vim-patch: runtime file updates
| * vim-patch:d7deeff: runtime(exports): include simple filetype pluginzeertzjq2025-02-14
| | | | | | | | | | | | | | | | closes: vim/vim#16625 https://github.com/vim/vim/commit/d7deeffe11f4db3cce19236ddb80831652a87e83 Co-authored-by: Matt Perry <matt@mattperry.com>
| * vim-patch:407319f: runtime(samba): include simple filetype pluginzeertzjq2025-02-14
| | | | | | | | | | | | | | | | closes: vim/vim#16626 https://github.com/vim/vim/commit/407319fe89d5df2c732937474479803d67761879 Co-authored-by: Matt Perry <matt@mattperry.com>
* | build(windows)!: drop cat and tee executables from windowsdundargoc2025-02-14
|/ | | | | | | | The legitimacy of the binaries can't be guaranteed and poses a security risk. A replacement version of these may be introduced in the future in a more secure manner. Closes https://github.com/neovim/neovim/issues/32431.
* vim-patch:9.1.1107: cannot loop through completion menu with fuzzy (#32438)zeertzjq2025-02-14
| | | | | | | | | | | | | | | Problem: cannot loop through completion menu with fuzzy and nosort in 'completeopt' (Tomasz N) Solution: Reset cur to zero and update compl_shown_match when 'completeopt' contains "nosort" but not "noselect" (glepnir) fixes: vim/vim#16624 closes: vim/vim#16629 https://github.com/vim/vim/commit/c0b7ca406ba18640c56e2746d6f6d03549d53072 Co-authored-by: glepnir <glephunter@gmail.com>
* vim-patch:9.1.1109: cmdexpand.c hard to read (#32437)zeertzjq2025-02-14
| | | | | | | | | | Problem: cmdexpand.c hard to read Solution: refactor the file slightly (glepnir) closes: vim/vim#16621 https://github.com/vim/vim/commit/977561a7198b5d31a17b852e332704025c2dbdc8 Co-authored-by: glepnir <glephunter@gmail.com>
* vim-patch:4f010c9: runtime(vim): Update base-syntax, always match ↵zeertzjq2025-02-14
| | | | | | | | | continuation comments to EOL (#32435) closes: vim/vim#16630 https://github.com/vim/vim/commit/4f010c90bdcb56a9c72cfee4d6fe3130b88616f8 Co-authored-by: Doug Kearns <dougkearns@gmail.com>
* vim-patch:9.1.1108: 'smoothscroll' gets stuck with 'listchars' "eol" (#32434)zeertzjq2025-02-13
| | | | | | | | | | Problem: 'smoothscroll' gets stuck with 'listchars' "eol". Solution: Count size of 'listchars' "eol" in line size when scrolling. (zeertzjq) related: neovim/neovim#32405 closes: vim/vim#16627 https://github.com/vim/vim/commit/2c47ab8fcd7188fa87053c757ea86b0d846c06c1
* feat(term): trigger TermRequest for APC (#32407)Till Bungert2025-02-13
| | | | Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* feat(lsp): add select kind in showMessageRequest #32387Maria José Solano2025-02-13
|