aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * feat(api): combined highlights in nvim_eval_statusline()Luuk van Baal2025-01-23
| | | | | | | | | | | | | | | | | | | | | | Problem: Combined highlighting was not applied to nvim_eval_statusline(), and 'statuscolumn' sign segment/numhl highlights. Solution: Add an additional `groups` element to the return value of `nvim_eval_statusline()->highlights`. This is an array of stacked highlight groups (highest priority last). Also resolve combined highlights for the 'statuscolumn' sign segment/numhl highlights. Expose/synchronize some drawline.c logic that is now mimicked in three different places.
| * vim-patch:9.1.1048: crash after scrolling and pasting in silent Ex mode (#32168)zeertzjq2025-01-23
| | | | | | | | | | | | | | | | | | | | Problem: Crash after scrolling and pasting in silent Ex mode. (fizz-is-on-the-way) Solution: Don't move cursor to line 0 when scrolling. (zeertzjq) closes: vim/vim#16506 https://github.com/vim/vim/commit/df098fedbc2c481e91ea7e6207dab90359a92cc3
| * fix(editor): avoid scrolling :substitute confirm message #32149luukvbaal2025-01-22
| | | | | | Regression from 48e2a73.
| * fix(startup): avoid crash with completion from -l script (#32160)zeertzjq2025-01-22
| | | | | | Related #27764
| * vim-patch:9.1.1046: fuzzymatching doesn't prefer matching camelcase (#32155)zeertzjq2025-01-22
| | | | | | | | | | | | | | | | | | | | | | | | Problem: fuzzymatching doesn't prefer matching camelcase (Tomasz N) Solution: Add extra score when case matches (glepnir) fixes: vim/vim#16434 closes: vim/vim#16439 https://github.com/vim/vim/commit/9dfc7e5e6169594f6f4607ef1ba9dd347a9194d2 Co-authored-by: glepnir <glephunter@gmail.com>
| * fix(search): avoid quadratic time complexity when computing fuzzy score (#32153)zeertzjq2025-01-22
| |
| * feat(terminal): forward X1 and X2 mouse eventszeertzjq2025-01-21
| | | | | | | | | | Ref: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Other-buttons
| * feat(tui): recognize X1 and X2 mouse eventszeertzjq2025-01-21
| | | | | | | | | | Ref: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Other-buttons
| * Merge pull request #32098 from bfredl/multihl_groupbfredl2025-01-21
| |\ | | | | | | feat(extmark): stack multiple highlight groups in `hl_group`
| | * feat(extmark): stack multiple highlight groups in `hl_group`bfredl2025-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | This has been possible in the "backend" for a while but API was missing. Followup: we will need a `details2=true` mode for `nvim_get_hl_id_by_name` to return information in a way forward compatible with even further enhancements.
| * | Merge pull request #32099 from bfredl/no_bufhlbfredl2025-01-20
| |\ \ | | | | | | | | feat(api): deprecate nvim_buf_add_highlight()
| | * | feat(api): deprecate nvim_buf_add_highlight()bfredl2025-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This was kept for a while as it was a useful short hand and initially matched what highlights what actually properly implemented. But now |vim.hl.range()| is a better high-level shorthand with full support for native multi-line ranges.
| * | | feat(inccommand): preview 'nomodifiable' buffers #32034Donatas2025-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Incremental preview is not allowed on 'nomodifiable' buffers. Solution: - Allow preview on 'nomodifiable' buffers. - Restore the 'modifiable' option in case the preview function changes it.
| * | | fix(messages): compute msg_col after last newline in ext_messagesLuuk van Baal2025-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: We want to keep track of the current message column, which is done very rudimentary for ext_messages; only checking if the message ends in a newline to reset the column, while computing the entire cellwidth of the message, which may contain (multiple) newlines not necessarily at the end (since 21718c6). This introduced a noticeable delay for large messages (e.g. :=vim). Solution: Calculate the cellwidth of the message after the last newline. Use it to keep track of the current message column. This might not be a functional change currently, since it only affects messages with (multiple) newlines not at the end of a message, which I don't think we emit internally, and msg_col is reset for a new kind. It does fix the performance problem.
| * | | Merge pull request #31597 from bfredl/deletionismbfredl2025-01-20
| |\ \ \ | | | | | | | | | | fix(wininfo): when freeing windows, free the lowest priority wininfo
| | * | | fix(wininfo): when freeing windows, free the lowest priority wininfobfredl2025-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On master (and also before #31539) closing a window could cause the used wininfo for a buffer to change. This is due to always removing the previous NULL wininfo when deleting a window, even if that wininfo had higher priority than the the deleted window's own wininfo. Instead delete the wininfo with lowest priority. This retains the memory saving efect while not affecting the effective value of window options and so on.
| * | | | fix(log): unintuitive message for undefined $TMPDIRdeepsghimire2025-01-19
| | |/ / | |/| |
| * | | fix(coverity/530826): validate_opt_idx unchecked negative idx (#32081)Devon Gardner2025-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: opt_idx possible negative value used as index Solution: check opt_idx not less than zero (kOptInvalid)
| * | | fix(lua): prevent SIGSEGV when lua error is NULL in libuv_worker林玮 (Jade Lin)2025-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Calling `xstrdup` with a NULL pointer causes a SIGSEGV if `lua_tostring` returns NULL in `nlua_luv_thread_common_cfpcall`. Crash stack trace: - `_platform_strlen` → `xstrdup` (memory.c:469) - `nlua_luv_thread_common_cfpcall` (executor.c:281) Solution: Check if `lua_tostring` returns NULL and pass NULL to `event_create` to avoid the crash.
| * | | vim-patch:9.1.1028: too many strlen() calls in screen.c (#32083)zeertzjq2025-01-18
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: too many strlen() calls in screen.c Solution: refactor screen.c and remove calls to strlen(), verify that leadmultispace != NULL (John Marriott) closes: vim/vim#16460 https://github.com/vim/vim/commit/c15de972e8131def2f506bb9eb6b306ca089629c Co-authored-by: John Marriott <basilisk@internode.on.net>
| * | refactor(cmdline): more idiomatic way to avoid cmdline_showLuuk van Baal2025-01-17
| | | | | | | | | | | | | | | Problem: Fix applied in #32033 can be more idiomatic. Solution: Unset redraw_state instead of cmdbuff.
| * | vim-patch:9.1.1021: string might be used without a trailing NUL (#32062)zeertzjq2025-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: string might be used without a trailing NUL (after v9.1.0997) Solution: Make sure that the buffer is NUL terminated closes: vim/vim#16457 https://github.com/vim/vim/commit/70dfc374ec72634a0a61aea8344178779675d516 Co-authored-by: John Marriott <basilisk@internode.on.net>
| * | vim-patch:9.1.1020: no way to get current selected item in a async context ↵zeertzjq2025-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#32056) Problem: no way to get current selected item in a async context Solution: add completed flag to show the entries of currently selected index item (glepnir) closes: vim/vim#16451 https://github.com/vim/vim/commit/037b028a2219d09bc97be04b300b2c0490c4268d Co-authored-by: glepnir <glephunter@gmail.com>
| * | Merge pull request #32038 from gpanders/push-nsrttwwnsqvmGregory Anders2025-01-16
| |\ \ | | | | | | | | feat(terminal): add support for kitty keyboard protocol
| | * | feat(terminal): add support for kitty keyboard protocolGregory Anders2025-01-16
| | | | | | | | | | | | | | | | | | | | | | | | This commit adds basic support for the kitty keyboard protocol to Neovim's builtin terminal. For now only the first mode ("Disambiguate escape codes") is supported.
| * | | refactor(options): generic expand and did_set callbacks (#32011)Lewis Russell2025-01-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(options): generic expand and did_set callbacks Problem: Many options have similar callbacks to check the values are valid. Solution: Generalize these callbacks into a single function that reads the option table. * refactor: gen_options.lua refactor: gen_options.lua - inline get_cond * refactor(options): use a simpler format for the common default
| * | | vim-patch:9.1.1017: Vim9: Patch 9.1.1013 causes a few problemszeertzjq2025-01-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Vim9: Patch 9.1.1013 causes a few problems Solution: Translate the function name only when it is a string (Yegappan Lakshmanan) fixes: vim/vim#16453 closes: vim/vim#16450 https://github.com/vim/vim/commit/9904cbca4132f7376246a1a31305eb53e9530023 Cherry-pick call() change from patch 9.0.0345. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | vim-patch:9.1.1013: Vim9: Regression caused by patch v9.1.0646zeertzjq2025-01-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Vim9: Regression caused by patch v9.1.0646 Solution: Translate the function name before invoking it in call() (Yegappan Lakshmanan) fixes: vim/vim#16430 closes: vim/vim#16445 https://github.com/vim/vim/commit/6289f9159102e0855bedc566636b5e7ca6ced72c N/A patch: vim-patch:8.2.4176: Vim9: cannot use imported function with call() Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | vim-patch:9.1.1018: v9.1.0743 causes regression with diff mode (#32047)zeertzjq2025-01-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: v9.1.0743 causes regression with diff mode Solution: Fix the regression with overlapping regions closes: vim/vim#16454 https://github.com/vim/vim/commit/01f6509fb2de1627cc4ec2c109cd0aa2e3346d50 Co-authored-by: Yukihiro Nakadaira <yukihiro.nakadaira@gmail.com>
| * | | build: fix lint error on macosdundargoc2025-01-15
| |/ /
| * | fix(cmdline): prevent cmdline_show events after exiting cmdline #32033luukvbaal2025-01-15
| | | | | | | | | | | | | | | | | | Problem: If a (vim.ui_attach) cmdline_hide callback triggers a redraw, it may cause cmdline_show events for an already exited cmdline. Solution: Avoid emitting cmdline_show event when ccline.cmdbuff is already NULL. Unset ccline.cmdbuff before emitting cmdline_hide.
| * | fix(marks): revise metadata for start mark of revalidated pair #32017luukvbaal2025-01-15
| | | | | | | | | | | | Problem: Metadata may be revised for end mark of a revalidated pair. Solution: Revise metadata for start mark of a revalidated pair.
| * | Merge #32013 from luukvbaal/shellkindJustin M. Keyes2025-01-15
| |\ \
| | * | fix(messages): verbose kind for nvim_echo()Luuk van Baal2025-01-15
| | | | | | | | | | | | | | | | | | | | Problem: No "verbose" kind for nvim_echo() opts->verbose. Solution: Pass NULL "kind" to indicate no new kind.
| | * | feat(messages): add :!cmd shell message kindsLuuk van Baal2025-01-15
| | | | | | | | | | | | | | | | Also print stderr error messages with ErrorMsg highlight group.
| * | | vim-patch:9.1.1015: Coverity complains about dereferencing NULL value (#32020)zeertzjq2025-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Coverity complains about dereferencing NULL value Solution: Check that cms2 is not null closes: vim/vim#16438 https://github.com/vim/vim/commit/1ac53b84ada3a992f320566737e66fa00d48611f Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | feat(terminal): support theme update notifications (DEC mode 2031) (#31999)Gregory Anders2025-01-14
| | | |
| * | | Merge pull request #31932 from bfredl/termtabbfredl2025-01-14
| |\ \ \ | | | | | | | | | | fix(getchar): do not simplify keycodes in terminal mode
| | * | | fix(getchar): do not simplify keycodes in terminal modebfredl2025-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code represents a useful pattern in normal mode where remapping `<tab>` will implicitly also remap `<c-i>` unless you remap that explicitly. This relies on the _unmapped_ behavior being identical which is not true in terminal mode, as vterm can distinguish these keys. Vim seems to entangle this with kitty keyboard mode detection which is irrelevant for us. Conditional fallbacks depending on keyboard mode could be done completely inside `vterm/` without getchar.c getting involved, I would think.
| * | | | feat(api): nvim_open_win() relative to tabline and laststatus #32006luukvbaal2025-01-14
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | Problem: Anchoring a floating window to the tabline and laststatus is cumbersome; requiring autocommands and looping over all windows/tabpages. Solution: Add new "tabline" and "laststatus" options to the `relative` field of nvim_open_win() to place a window relative to.
| * | | refactor(options): remove code for multitype optionsFamiu Haque2025-01-14
| | | | | | | | | | | | | | | | | | | | | | | | Problem: It was decided on Matrix chat that multitype options won't be necessary for Neovim options, and that options should only have a single canonical type. Therefore the code for supporting multitype options is unnecessary. Solution: Remove the additional code that's used to provide multitype option support.
| * | | fix(treesitter): uv_dlclose after uv_dlerrorHorror Proton2025-01-14
| | | |
| * | | fix(options): better handling of empty valuesLewis Russell2025-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Whether an option is allowed to be empty isn't well defined and isn't properly checked. Solution: - For non-list string options, explicitly check the option value if it is empty. - Annotate non-list string options that can accept an empty value. - Adjust command completion to ignore the empty value. - Render values in Lua meta files
| * | | feat(messages): "verbose" message kind #31991luukvbaal2025-01-13
| | | |
| * | | refactor: delete duplicate utf8-functionalitydundargoc2025-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also remove British National Replacement Character Set. We keep the DEC Special Graphics and ASCII despite it not being unicode as some old software such as calcurse still rely on this functionality. References: - https://github.com/neovim/neovim/pull/31934#discussion_r1911046426 - https://en.wikipedia.org/wiki/DEC_Special_Graphics - https://vt100.net/docs/vt220-rm/chapter2.html#S2.4.3
| * | | vim-patch:9.1.1011: popupmenu internal error with some abbr in completion ↵zeertzjq2025-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | item (#31988) Problem: Popup menu internal error with some abbr in completion item. Solution: Don't compute attributes when there is no corresponding text. Reduce indent in pum_redraw() while at it (zeertzjq). fixes: vim/vim#16427 closes: vim/vim#16435 https://github.com/vim/vim/commit/3a0cc36c69744a7727ce34311d39d2d9d8ddc6f9
| * | | feat(treesitter): async parsingRiley Bruins2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Problem:** Parsing can be slow for large files, and it is a blocking operation which can be disruptive and annoying. **Solution:** Provide a function for asynchronous parsing, which accepts a callback to be run after parsing completes. Co-authored-by: Lewis Russell <lewis6991@gmail.com> Co-authored-by: Luuk van Baal <luukvbaal@gmail.com> Co-authored-by: VanaIgr <vanaigranov@gmail.com>
| * | | build(deps): bump wasmtime to v25.0.3Christian Clason2025-01-12
| | | |
| * | | vim-patch:9.1.1003: [security]: heap-buffer-overflow with visual mode (#31971)zeertzjq2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: [security]: heap-buffer-overflow with visual mode when using :all, causing Vim trying to access beyond end-of-line (gandalf) Solution: Reset visual mode on :all, validate position in gchar_pos() and charwise_block_prep() This fixes CVE-2025-22134 Github Advisory: https://github.com/vim/vim/security/advisories/GHSA-5rgf-26wj-48v8 https://github.com/vim/vim/commit/c9a1e257f1630a0866447e53a564f7ff96a80ead Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | vim-patch:9.1.1005: completion text is highlighted even with no pattern ↵zeertzjq2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | found (#31973) Problem: completion text is highlighted even with no pattern found Solution: use ins_compl_leader_len() instead of checking compl_leader.length (glepnir) closes: vim/vim#16422 https://github.com/vim/vim/commit/9fddb8ae770be3e16545dd4c2f4cfaad8f62cb40 Co-authored-by: glepnir <glephunter@gmail.com>