aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | fix(messages): typo and unwanted truncation in msg_outtrans_long #31669luukvbaal2024-12-22
| | | | | | | | | | | | | | | | | | | | - Typo/bug in msg_outtrans_long passing string length as "hist" argument. - Avoid truncating message in msg_outtrans_long with ext_messages (followup to 1097d239c307a10a87fa995c4cfbe5987939e177). - Remove `_hl` from `msg_keep`, `smsg_keep` as there is no non-`_hl` variant. - `msg_printf_hl` is removed (identical to `smsg` except it sets `msg_scroll = true`, seemingly as a caveat to force a more prompt in cmdline mode). Move this logic to the only the only place this was used in ex_getln.c.
* | vim-patch:9.1.0951: filetype: jshell files are not recognizedChristian Clason2024-12-22
| | | | | | | | | | | | | | | | | | | | | | | | Problem: filetype: jshell files are not recognized Solution: detect '*.jsh' files as java filetype (Konfekt) closes: vim/vim#16260 https://github.com/vim/vim/commit/62e3014ab1146d7f78694c97fc6974f1af2cc5af Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
* | test: format C test files and fix clang-tidy warningsdundargoc2024-12-21
| | | | | | | | | | | | | | It's probably not worth adding the C test files to regular formatting as they're pretty much never touched, but ensuring the files are formatted according to our standards and getting rid of warnings is a cheap one-time fix.
* | feat(lsp): return table from lsp/ files on runtimepath (#31663)Gregory Anders2024-12-21
| | | | | | | | | | | | | | | | Problem: LSP configs on the runtimepath must have the same name as the LSP server and must also explicitly set the name in vim.lsp.config. This is redundant and creates a footgun where a user may accidentally use the wrong name when assigning to the vim.lsp.config table. Solution: Return a table from lsp/ runtimepath files instead
* | build: bump lua dev dependenciesdundargoc2024-12-21
| | | | | | | | | | | | | | | | | | | | | | busted: 2.1.1 -> 2.2.0 https://github.com/lunarmodules/busted/releases/tag/v2.1.2 https://github.com/lunarmodules/busted/releases/tag/v2.2.0 luacheck: 1.1.0 -> 1.2.0 https://github.com/lunarmodules/luacheck/releases/tag/v1.1.1 https://github.com/lunarmodules/luacheck/releases/tag/v1.1.2 https://github.com/lunarmodules/luacheck/releases/tag/v1.2.0
* | vim-patch:70881ba: runtime(dockerfile): do not set commentstring in syntax ↵Christian Clason2024-12-21
| | | | | | | | | | | | | | | | | | | | script fixes: vim/vim#16268 https://github.com/vim/vim/commit/70881ba195d267d01df912294ddc5b5d525bba3d Co-authored-by: Christian Brabandt <cb@256bit.org>
* | vim-patch:9.1.0950: filetype: fennelrc files are not recognizedChristian Clason2024-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: filetype: fennelrc files are not recognized Solution: detect 'fennelrc' files as fennel filetype (Wu Zhenyu) References: https://github.com/bakpakin/Fennel/issues/193 closes: vim/vim#16262 https://github.com/vim/vim/commit/f173f4249fc785fb3e2b341bcfb0f21192cd4bf5 Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
* | vim-patch:c673b80: runtime(netrw): more reformating vim/vim#16248 (#31662)zeertzjq2024-12-21
|/ | | | | | | closes: vim/vim#16266 https://github.com/vim/vim/commit/c673b805ad80d0aef07e745d412a2bf298ba1c07 Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
* fix(coverity): INTEGER_OVERFLOW #31657luukvbaal2024-12-20
| | | | | | | | | | | | | | | | | | CID 516419: Integer handling issues (INTEGER_OVERFLOW) /src/nvim/message.c: 2242 in msg_puts_display() 2236 } 2237 // Concat pieces with the same highlight 2238 size_t len = maxlen < 0 ? strlen(str) : strnlen(str, (size_t)maxlen); 2239 ga_concat_len(&msg_ext_last_chunk, str, len); 2240 msg_ext_cur_len += len; 2241 // When message ends in newline, reset variables used to format message: msg_advance(). >>> CID 516419: Integer handling issues (INTEGER_OVERFLOW) >>> Expression "len - 1UL", which is equal to 18446744073709551615, where "len" is known to be equal to 0, underflows the type that receives it, an unsigned integer 64 bits wide. 2242 if (str[len - 1] == '\n') { 2243 msg_ext_cur_len = 0; 2244 msg_col = 0; 2245 } 2246 return; 2247 }
* fix(messages): no message kind for completion menu messages #31646Tomasz N2024-12-20
|
* fix(vim.system): invalid MAX_TIMEOUT for 32-bit systems #31638Dan Pascu2024-12-20
| | | | | | The maximum signed value on 32-bit systems is 2 ^ 31 - 1. When using 2 ^ 31 for the default timeout, the value would overflow on such systems resulting in a negative value, which caused a stack trace when calling wait() without a timeout.
* vim-patch:c363ca1: runtime(netrw): change indent size from 1 to 2 (#31648)zeertzjq2024-12-20
| | | | | | | closes: vim/vim#16248 https://github.com/vim/vim/commit/c363ca1ecd1f8db03663ef98dcf41eeacc3c22c7 Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
* vim-patch:9.1.0948: Missing cmdline completion for :pbuffer (#31645)zeertzjq2024-12-20
| | | | | | | | | | Problem: Missing cmdline completion for :pbuffer. Solution: Add cmdline completion for :pbuffer like :buffer. (zeertzjq) fixes: vim/vim#16250 closes: vim/vim#16251 https://github.com/vim/vim/commit/3baf19a2b144b215c5b537c3c1b3b80a79b0fe99
* feat(jobs): jobstart(…,{term=true}), deprecate termopen() #31343Justin M. Keyes2024-12-19
| | | | | | | | | | | | Problem: `termopen` has long been a superficial wrapper around `jobstart`, and has no real purpose. Also, `vim.system` and `nvim_open_term` presumably will replace all features of `jobstart` and `termopen`, so centralizing the logic will help with that. Solution: - Introduce `eval/deprecated.c`, where all deprecated eval funcs will live. - Introduce "term" flag of `jobstart`. - Deprecate `termopen`.
* docs(api): specify when decor provider on_buf is called #31634luukvbaal2024-12-19
|
* fix(messages): better formatting for :highlight with ext_messages #31627luukvbaal2024-12-19
| | | Also avoid going down message callstack with empty message, and remove expected grid for some tests where it did not change, and we are just testing for expected messages.
* vim-patch:9.1.0945: ComplMatchIns highlight doesn't end after inserted text ↵zeertzjq2024-12-18
| | | | | | | | | | | | (#31628) Problem: ComplMatchIns highlight doesn't end after inserted text. Solution: Handle ComplMatchIns highlight more like search highlight. Fix off-by-one error. Handle deleting text properly. (zeertzjq) closes: vim/vim#16244 https://github.com/vim/vim/commit/f25d8f9312a24da2727671560a865888812ab8d9
* test(cursor_spec): global highlight definitions (#31613)luukvbaal2024-12-18
|
* fix(terminal): restore cursor from 'guicursor' on TermLeave (#31620)Gregory Anders2024-12-18
| | | Fixes: https://github.com/neovim/neovim/issues/31612
* refactor(man.lua): various changesLewis Russell2024-12-18
| | | | | | | | | | | | | | | | | | | - Replace all uses of vim.regex with simpler Lua patterns. - Replace all uses of vim.fn.substitute with string.gsub. - Rework error handling so expected errors are passed back via a return. - These get routed up an passed to `vim.notify()` - Any other errors will cause a stack trace. - Reworked the module initialization of `localfile_arg` - Updated all type annotations. - Refactored CLI completion by introduction a parse_cmdline() function. - Simplified `show_toc()` - Refactor highlighting - Inline some functions - Fix completion on MacOS 13 and earlier. - Prefer `manpath -q` over `man -w` - Make completion more efficient by avoiding vim.fn.sort and vim.fn.uniq - Reimplement using a single loop
* fix(lsp): vim.lsp.start fails if existing client has no workspace_folders #31608phanium2024-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: regression since https://github.com/neovim/neovim/pull/31340 `nvim -l repro.lua`: ```lua vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls' } vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls', root_dir = 'foo' } -- swapped case will be ok: -- vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls', root_dir = 'foo' } -- vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls' } ``` Failure: ``` E5113: Error while calling lua chunk: /…/lua/vim/lsp.lua:214: bad argument #1 to 'ipairs' (table expected, got nil) stack traceback: [C]: in function 'ipairs' /…/lua/vim/lsp.lua:214: in function 'reuse_client' /…/lua/vim/lsp.lua:629: in function 'start' repro.lua:34: in main chunk ```
* feat(lsp): show server version in `:checkhealth` #31611Peter Lithammer2024-12-18
| | | | | | | | Problem: Language server version information missing from `:checkhealth vim.lsp`. Solution: Store `InitializeResult.serverInfo.version` from the `initialize` response and display for each client in `:checkhealth vim.lsp`.
* fix(coverity): error handling CHECKED_RETURN #31618Justin M. Keyes2024-12-18
| | | | | | | | | | | | | | | | | | CID 516406: Error handling issues (CHECKED_RETURN) /src/nvim/api/vimscript.c: 284 in nvim_call_dict_function() 278 Object rv = OBJECT_INIT; 279 280 typval_T rettv; 281 bool mustfree = false; 282 switch (dict.type) { 283 case kObjectTypeString: >>> CID 516406: Error handling issues (CHECKED_RETURN) >>> Calling "eval0" without checking return value (as is done elsewhere 10 out of 12 times). 284 TRY_WRAP(err, { 285 eval0(dict.data.string.data, &rettv, NULL, &EVALARG_EVALUATE); 286 clear_evalarg(&EVALARG_EVALUATE, NULL); 287 }); 288 if (ERROR_SET(err)) { 289 return rv;
* test(old): fix incorrect comment in test_preview.vim (#31619)zeertzjq2024-12-18
|
* vim-patch:a977883: runtime(doc): Fix style in fold.txt (#31617)zeertzjq2024-12-18
| | | | | | | closes: vim/vim#16236 https://github.com/vim/vim/commit/a977883ef336f83102dc0a1edbfc999e6b5c129c Co-authored-by: h-east <h.east.727@gmail.com>
* vim-patch:9.1.0940: Wrong cursor shape with "gq" and 'indentexpr' executes ↵zeertzjq2024-12-18
| | | | | | | | | | | | | :normal (#31616) Problem: Wrong cursor shape with "gq" and 'indentexpr' executes :normal Solution: Update cursor and mouse shape after restoring old_State. (zeertzjq) closes: vim/vim#16241 Solution: Update cursor and mouse shape after restoring old_State. https://github.com/vim/vim/commit/6c3027744e71937b24829135ba072090d7d52bc3
* Merge pull request #31615 from zeertzjq/vim-9.1.0936zeertzjq2024-12-18
|\ | | | | vim-patch:9.1.{0936,0941,0942}: ComplMatchIns highlight
| * vim-patch:9.1.0942: a few typos were foundzeertzjq2024-12-18
| | | | | | | | | | | | | | | | | | Problem: a few typos were found Solution: fix them (zeertzjq) closes: vim/vim#16232 https://github.com/vim/vim/commit/d32bf0a06762f9ad08334d67b4d7f235f87f9063
| * vim-patch:9.1.0941: ComplMatchIns doesn't work after multibyte charszeertzjq2024-12-18
| | | | | | | | | | | | | | | | | | | | Problem: ComplMatchIns doesn't work after multibyte chars (after v9.1.0936) Solution: Use (ptr - line) instead of wlv.col (zeertzjq). closes: vim/vim#16233 https://github.com/vim/vim/commit/f4ccada5c372b2c14cc32490860c6995cd00268c
| * vim-patch:9.1.0936: cannot highlight completed textzeertzjq2024-12-18
|/ | | | | | | | | | | | Problem: cannot highlight completed text Solution: (optionally) highlight auto-completed text using the ComplMatchIns highlight group (glepnir) closes: vim/vim#16173 https://github.com/vim/vim/commit/6a38aff218f5b99a1aed7edaa357df24b9092734 Co-authored-by: glepnir <glephunter@gmail.com>
* feat(terminal)!: cursor shape and blink (#31562)Gregory Anders2024-12-17
| | | | | | | | | | | | | | | | | | | | | When a terminal application running inside the terminal emulator sets the cursor shape or blink status of the cursor, update the cursor in the parent terminal to match. This removes the "virtual cursor" that has been in use by the terminal emulator since the beginning. The original rationale for using the virtual cursor was to avoid having to support additional UI methods to change the cursor color for other (non-TUI) UIs, instead relying on the TermCursor and TermCursorNC highlight groups. The TermCursor highlight group is now used in the default 'guicursor' value, which has a new entry for Terminal mode. However, the TermCursorNC highlight group is no longer supported: since terminal windows now use the real cursor, when the window is not focused there is no cursor displayed in the window at all, so there is nothing to highlight. Users can still use the StatusLineTermNC highlight group to differentiate non-focused terminal windows. BREAKING CHANGE: The TermCursorNC highlight group is no longer supported.
* test: unreliable test "messages &messagesopt wait" #31548Shougo2024-12-17
|
* refactor(api): always use TRY_WRAP #31600luukvbaal2024-12-17
| | | | | | | Problem: Two separate try/end wrappers, that only marginally differ by restoring a few variables. Wrappers that don't restore previous state are dangerous to use in "api-fast" functions. Solution: Remove wrappers that don't restore the previous state. Always use TRY_WRAP.
* vim-patch:9.1.0934: hard to view an existing buffer in the preview window ↵zeertzjq2024-12-17
| | | | | | | | | | | | | | | | | | | | | | (#31605) Problem: hard to view an existing buffer in the preview window Solution: add the :pbuffer command (Yinzuo Jiang) Similar as `:pedit` and `:buffer` command. `:pbuffer` edits buffer [N] from the buffer list in the preview window. `:pbuffer` can also open special buffer, for example terminal buffer. closes: vim/vim#16222 https://github.com/vim/vim/commit/a2a2fe841ed2efdbb1f8055f752a3a4d0988ae9d Cherry-pick Test_popup_and_previewwindow_dump() changes from patch 9.0.0625. Cherry-pick Run_noroom_for_newwindow_test() changes from patches 8.2.0432 and 9.0.0363. Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
* vim-patch:9.1.0938: exclusive selection not respected when re-selecting ↵zeertzjq2024-12-17
| | | | | | | | | | | | | | | block mode (#31603) Problem: exclusive selection not respected when re-selecting block mode (Matt Ellis) Solution: advance selection by another character when using selection=exclusive and visual block mode fixes: vim/vim#16202 closes: vim/vim#16219 https://github.com/vim/vim/commit/bb955894734b287abfadd3a25786a42038d18d61 Co-authored-by: Christian Brabandt <cb@256bit.org>
* Merge pull request #31602 from zeertzjq/vim-0a4e57fzeertzjq2024-12-17
|\ | | | | vim-patch: doc updates
| * vim-patch:3920bb4: runtime(doc): document how to minimize fold computation costszeertzjq2024-12-17
| | | | | | | | | | | | | | | | closes: vim/vim#16224 https://github.com/vim/vim/commit/3920bb4356aa7324a4be1071c87524a2f921d921 Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
| * vim-patch:0a4e57f: runtime(doc): fix a few minor errors from the last doc ↵zeertzjq2024-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | updates 1) move the section at :h inclusive-motion-selection-exclusive a few lines below, so that it doesn't live in between the 2 exceptions. 2) remove the tag :h :!-range. It's not accurate (because it is actually a filter) and this command is already described at :h :range! https://github.com/vim/vim/commit/0a4e57f44abc05033f839b4538efee8120f7d967 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:41d6de2: runtime(doc): update the change.txt help filezeertzjq2024-12-17
|/ | | | | | https://github.com/vim/vim/commit/41d6de2974429f5fc76fbeacc233a1fa66c6f869 Co-authored-by: Antonio Giovanni Colombo <azc100@gmail.com>
* fix(api): generic error messages, not using TRY_WRAP #31596Justin M. Keyes2024-12-16
| | | | | | | | | | | Problem: - API functions using `try_start` directly, do not surface the underlying error message, and instead show generic messages. - Error-handling code is duplicated in the API impl. - Failure modes are not tested. Solution: - Use `TRY_WRAP`. - Add tests.
* build(deps): bump luajit to HEAD - f73e649a9Christian Clason2024-12-16
|
* fix(Man): completion on MacLewis Russell2024-12-16
| | | | | | | | Problem: `man -w` does not work on recent versions of MacOs. Solution: Make it so an empty result is interpreted as an error unless silent=true
* ci(build.yml): disable security restrictiondundargoc2024-12-16
| | | | | | A new security restriction in Ubuntu 24.04 prevents users from using `unshare`, so we need to disable it in order for the test to work properly.
* fix(diagnostic): vim.diagnostic.setqflist() opens loclist on first call #31585Juan Cruz De La Torre2024-12-16
| | | | | | | | | | | | Problem: Regression from de794f2d2409: `vim.diagnostic.setqflist{open=true}` attempts to open the location list instead of the diagnostics quickfix list if it didn't exist before. This is because we are using `qf_id` to decide which to open, but `qf_id=nil` when there is no existing diagnostics quickfix list with a given title ("Diagnostics" by default). Solution: - Revert to using `loclist` to decide which to open. - Add tests.
* Merge pull request #31539 from bfredl/wininfobfredl2024-12-16
|\ | | | | refactor(wininfo): change wininfo from a linked list to an array
| * refactor(wininfo): change wininfo from a linked list to an arraybfredl2024-12-16
| | | | | | | | | | | | | | | | | | | | "wininfo" is going to be my next victim. The main problem with wininfo is that it is "all or nothing", i e either all state about a buffer in a window is considered valid or none of it is. This needs to be fixed to address some long running grievances. For now this is just a warmup: refactor it from a linked list to a vector.
* | fix(api): not using TRY_WRAP, generic error messages #31595Justin M. Keyes2024-12-16
|/ | | | | | | | | | | Problem: - API functions using `try_start` directly instead of `TRY_WRAP`, do not surface the underlying error message, and instead show generic things like "Failed to set buffer". - Error handling code is duplicated in the API impl, instead of delegating to the vim buffer/window handling logic. Solution: - Use `TRY_WRAP`.
* fix(messages): no message kind for :undo messages #31590Tomasz N2024-12-16
| | | | | | Problem: cannot handle `:undo` and `:redo` messages in a special way, e.g. replace one by another. Solution: add `undo` kind.
* fix(api): nvim_win_set_buf(0, 0) fails if 'winfixbuf' is set #31576phanium2024-12-16
| | | | | | | | | | | | ## Problem With 'winfixbuf' enabled, `nvim_win_set_buf` and `nvim_set_current_buf` fail even if targeting the already-current buffer. vim.wo.winfixbuf = true vim.api.nvim_win_set_buf(0, 0) vim.api.nvim_set_current_buf(0) Solution: Check for this condition.
* vim-patch:9.1.0929: filetype: lalrpop files are not recognizedChristian Clason2024-12-16
| | | | | | | | | | | | | | | Problem: filetype: lalrpop files are not recognized Solution: detect '*.lalrpop' files as lalrpop filetype (David Thievon) References: https://github.com/lalrpop/lalrpop closes: vim/vim#16223 https://github.com/vim/vim/commit/5a2e0cf5f11c611c9b01f1bd6e7294edf0dd2bf4 Co-authored-by: David Thievon <pdkfan@gmail.com>