<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>neovim, branch HEAD</title>
<subtitle>Neovim text editor
</subtitle>
<entry>
<id>b23d00ce99092a47ec188d5a3afd231b9c86d5b5</id>
<published>2026-03-03T01:57:21Z</published>
<updated>2026-03-03T01:57:21Z</updated>
<title>vim-patch:partial:9.2.0096: has() function is slow due to linear feature scan (#38135)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/b23d00ce99092a47ec188d5a3afd231b9c86d5b5.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit b23d00ce99092a47ec188d5a3afd231b9c86d5b5
parent b4274b73f398d2f1c13d8d8b3c7c443329c01fa2
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Tue,  3 Mar 2026 09:57:21 +0800

vim-patch:partial:9.2.0096: has() function is slow due to linear feature scan (#38135)

Problem:  The has() function is slow because it performs a linear scan
          of the feature list for every call.
Solution: Move common runtime checks and the patch-version parser to the
          beginning of the f_has() function (Yasuhiro Matsumoto).

closes: vim/vim#19550

https://github.com/vim/vim/commit/327e0e34c907abafbf356700705a3676c036ca65

Co-authored-by: Yasuhiro Matsumoto &lt;mattn.jp@gmail.com&gt;
</content>
</entry>
<entry>
<id>b4274b73f398d2f1c13d8d8b3c7c443329c01fa2</id>
<published>2026-03-03T01:36:15Z</published>
<updated>2026-03-03T01:36:15Z</updated>
<title>vim-patch:99ba87d: runtime(nickel): Add filetype plugin with com, cms settings (#38134)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/b4274b73f398d2f1c13d8d8b3c7c443329c01fa2.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit b4274b73f398d2f1c13d8d8b3c7c443329c01fa2
parent aeddd66a2a07dfa32016d7289b845a25e5e86e2b
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Tue,  3 Mar 2026 09:36:15 +0800

vim-patch:99ba87d: runtime(nickel): Add filetype plugin with com, cms settings (#38134)

closes: vim/vim#19545

https://github.com/vim/vim/commit/99ba87d152a93d994eb052ba1cfc39e55ac46421

Co-authored-by: Riley Bruins &lt;ribru17@hotmail.com&gt;
</content>
</entry>
<entry>
<id>aeddd66a2a07dfa32016d7289b845a25e5e86e2b</id>
<published>2026-03-03T01:35:26Z</published>
<updated>2026-03-03T01:35:26Z</updated>
<title>Merge pull request #38133 from zeertzjq/vim-9.2.0088</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/aeddd66a2a07dfa32016d7289b845a25e5e86e2b.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit aeddd66a2a07dfa32016d7289b845a25e5e86e2b
parent a8361c3afc5b9281814e9f16a9d4291e095b38fa
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Tue,  3 Mar 2026 09:35:26 +0800

Merge pull request #38133 from zeertzjq/vim-9.2.0088

vim-patch:9.2.{0088,0090}: &#39;listchars&#39; &quot;leadtab&quot;
</content>
</entry>
<entry>
<id>f1c57b39fd5e8abd4dfe276d793450b541f549d5</id>
<published>2026-03-03T00:08:12Z</published>
<updated>2026-03-03T00:24:15Z</updated>
<title>vim-patch:73f4162: runtime(doc): Tweak doc style in options.txt</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/f1c57b39fd5e8abd4dfe276d793450b541f549d5.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit f1c57b39fd5e8abd4dfe276d793450b541f549d5
parent 518aa46158c56e75261ef095bdd313ade9197f46
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Tue,  3 Mar 2026 08:08:12 +0800

vim-patch:73f4162: runtime(doc): Tweak doc style in options.txt

https://github.com/vim/vim/commit/73f41626df1f1764007f073088048ffea4f970c4

Co-authored-by: Hirohito Higashi &lt;h.east.727@gmail.com&gt;

</content>
</entry>
<entry>
<id>518aa46158c56e75261ef095bdd313ade9197f46</id>
<published>2026-03-03T00:06:19Z</published>
<updated>2026-03-03T00:08:20Z</updated>
<title>vim-patch:9.2.0090: &quot;leadtab&quot; behavior inconsistent on line with only TABs</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/518aa46158c56e75261ef095bdd313ade9197f46.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 518aa46158c56e75261ef095bdd313ade9197f46
parent 3e810722934509b93936e9094a6fc381c0bc1c40
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Tue,  3 Mar 2026 08:06:19 +0800

vim-patch:9.2.0090: &quot;leadtab&quot; behavior inconsistent on line with only TABs

Problem:  &quot;leadtab&quot; behavior inconsistent on line with only TABs
          (after 9.2.0088).
Solution: Don&#39;t consider those as leading TABs. Also add more tests for
          existing behavior of &quot;lead&quot; and &quot;leadmultispace&quot; (zeertzjq).

closes: vim/vim#19549

https://github.com/vim/vim/commit/4b30e40a1f0c27622f71e70648aff99a5a99be5f

</content>
</entry>
<entry>
<id>3e810722934509b93936e9094a6fc381c0bc1c40</id>
<published>2026-03-02T23:45:33Z</published>
<updated>2026-03-03T00:05:58Z</updated>
<title>vim-patch:9.2.0088: cannot display tabs for indentation</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/3e810722934509b93936e9094a6fc381c0bc1c40.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 3e810722934509b93936e9094a6fc381c0bc1c40
parent a8361c3afc5b9281814e9f16a9d4291e095b38fa
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Tue,  3 Mar 2026 07:45:33 +0800

vim-patch:9.2.0088: cannot display tabs for indentation

Problem:  cannot display tabs for indentation
Solution: Add the &quot;leadtab&quot; value to the &#39;listchars&#39; option to
          distinguish between tabs used for indentation and tabs used
          for alignment (HarshK97).

closes: vim/vim#19094

https://github.com/vim/vim/commit/8526d32647245b3b623986949e7807b4b353e624

Co-authored-by: HarshK97 &lt;harshkapse1234@gmail.com&gt;

</content>
</entry>
<entry>
<id>a8361c3afc5b9281814e9f16a9d4291e095b38fa</id>
<published>2026-03-02T17:51:31Z</published>
<updated>2026-03-02T17:51:31Z</updated>
<title>docs(diagnostics): use the original namespace in &quot;on-jump&quot; example (#38124)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/a8361c3afc5b9281814e9f16a9d4291e095b38fa.html" />
<author>
<name>Sergei Slipchenko</name>
<email>faergeek@gmail.com</email>
</author>
<content>commit a8361c3afc5b9281814e9f16a9d4291e095b38fa
parent ab8371a26cf47a40d26af637455ea71da0d5a59d
Author: Sergei Slipchenko &lt;faergeek@gmail.com&gt;
Date:   Mon,  2 Mar 2026 21:51:31 +0400

docs(diagnostics): use the original namespace in &quot;on-jump&quot; example (#38124)

Problem: currently in the example a new diagnostic namespace is created
for showing it manually with a custom config. Because of a separate
namespace, when the original diagnostic source sets diagnostics again,
it will not affect the diagnostic shown in that new namespace and the
user would need to implement the logic for hiding it themselves,
separately as well.

Solution: instead of creating a new namespace, reuse the original
diagnostic&#39;s namespace, so once the source sets diagnostics again, it&#39;s
removed and hidden automatically without user having to do anything
extra for that.
</content>
</entry>
<entry>
<id>ab8371a26cf47a40d26af637455ea71da0d5a59d</id>
<published>2026-03-02T12:39:05Z</published>
<updated>2026-03-02T12:39:05Z</updated>
<title>fix(tui): server --listen error sometimes not visible (#38027)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/ab8371a26cf47a40d26af637455ea71da0d5a59d.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit ab8371a26cf47a40d26af637455ea71da0d5a59d
parent dea8430d5946c8e709e0196ae072f2394b34b5dc
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon,  2 Mar 2026 20:39:05 +0800

fix(tui): server --listen error sometimes not visible (#38027)

Problem:  If Nvim server fails to --listen and prints error before the
          TUI enters alternate screen, the error isn&#39;t visible.
Solution: Forward server stderr using client side stderr handler instead
          of having the server inherit client stderr file descriptor.

This does mean that `stderr_isatty` will be `false` in the server, but
that value doesn&#39;t matter in embedded mode.

Always pass `stdin_fd` to embedded server to avoid a hang when reading
from stdin when it&#39;s a TTY (not sure why one wants to do that, perhaps
by mistake), because if `stdin_fd` isn&#39;t passed, the server will try to
use stderr as stdin.

Example test failure on CI:

FAILED   test/functional/terminal/tui_spec.lua @ 41: TUI exit status 1 and error message with server --listen error #34365
test/functional/terminal\tui_spec.lua:55: Failed to match any screen lines.
Expected (anywhere): &quot;nvim%.exe: Failed to %-%-listen: address already in use:&quot;
Actual:
  |{114:nvim.exe -h&quot;}                                                |
  |                                                            |
  |[Process exited 1]^                                          |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |                                                            |
  |{5:-- TERMINAL --}                                              |

Snapshot:
screen:expect([[
  {114:nvim.exe -h&quot;}                                                |
                                                              |
  [Process exited 1]^                                          |
                                                              |*13
  {5:-- TERMINAL --}                                              |
]])

stack traceback:
	test\functional\ui\screen.lua:909: in function &#39;_wait&#39;
	test\functional\ui\screen.lua:537: in function &#39;expect&#39;
	test/functional/terminal\tui_spec.lua:55: in function &lt;test/functional/terminal\tui_spec.lua:41&gt;

In this case, it appears that the client entered alternate screen in the
middle of the server&#39;s print_mainerr().
</content>
</entry>
<entry>
<id>dea8430d5946c8e709e0196ae072f2394b34b5dc</id>
<published>2026-03-02T12:34:11Z</published>
<updated>2026-03-02T12:34:11Z</updated>
<title>test: suppress DSR wait warning when running tests (#38126)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/dea8430d5946c8e709e0196ae072f2394b34b5dc.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit dea8430d5946c8e709e0196ae072f2394b34b5dc
parent 1a02896e169b7e22c489dd5b7f60b570c496631e
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon,  2 Mar 2026 20:34:11 +0800

test: suppress DSR wait warning when running tests (#38126)

Problem:
The DSR wait warning causes any test that involves Nvim TUI to become
flaky on Windows. Example:

FAILED   test/functional/terminal/cursor_spec.lua @ 367: :terminal cursor can be positioned arbitrarily
test/functional/terminal\cursor_spec.lua:377: Row 1 did not match.
Expected:
  |*^                                                  |
  |*~                                                 |
  |*~                                                 |
  |*~                                                 |
  |*~                                                 |
  |*                                                  |
  |{5:-- TERMINAL --}                                    |
Actual:
  |*                                                  |
  |*                                                  |
  |*{2:                                                  }|
  |*{103:defaults.lua: Did not detect DSR response from ter}|
  |*{103:minal. This results in a slower startup time.     }|
  |*{UNEXPECTED foreground = tonumber(&#39;0x000006&#39;):Press ENTER or type command to continue^           }|
  |{5:-- TERMINAL --}                                    |

Solution:
Don&#39;t show the DSR wait warning when running tests.
</content>
</entry>
<entry>
<id>1a02896e169b7e22c489dd5b7f60b570c496631e</id>
<published>2026-03-02T00:43:54Z</published>
<updated>2026-03-02T00:43:54Z</updated>
<title>vim-patch:14eddc7: runtime(xkb): Include a simple xkb ftplugin (#38121)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/1a02896e169b7e22c489dd5b7f60b570c496631e.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 1a02896e169b7e22c489dd5b7f60b570c496631e
parent 0ae8168c9974a3e673c6274d03cffef15f83795a
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon,  2 Mar 2026 08:43:54 +0800

vim-patch:14eddc7: runtime(xkb): Include a simple xkb ftplugin (#38121)

Problem:  There is a xkb syntax, but no filetype plugin.
Solution: Create a filetype plugin and set the comment and commentstring
          options for the xkb filetype (xkb = X keyboard extension)

closes: vim/vim#19537

https://github.com/vim/vim/commit/14eddc7d46f2e6830beb00834f33eb272d028e82

Co-authored-by: GX &lt;59413576+gx089@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<id>0ae8168c9974a3e673c6274d03cffef15f83795a</id>
<published>2026-03-02T00:07:46Z</published>
<updated>2026-03-02T00:07:46Z</updated>
<title>test(terminal/cursor_spec): only delete TermOpen autocmds (#38123)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/0ae8168c9974a3e673c6274d03cffef15f83795a.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 0ae8168c9974a3e673c6274d03cffef15f83795a
parent 563f9ef7994a35686419b4524cd772c97960dac1
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon,  2 Mar 2026 08:07:46 +0800

test(terminal/cursor_spec): only delete TermOpen autocmds (#38123)


</content>
</entry>
<entry>
<id>563f9ef7994a35686419b4524cd772c97960dac1</id>
<published>2026-03-01T08:21:48Z</published>
<updated>2026-03-01T08:21:48Z</updated>
<title>vim-patch:9.2.0081: Failed &quot;z=&quot; does not reset &#39;nospell&#39; setting (#38109)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/563f9ef7994a35686419b4524cd772c97960dac1.html" />
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<content>commit 563f9ef7994a35686419b4524cd772c97960dac1
parent 62135f5a578a8e9894c511ebf37855ce7b2e1917
Author: luukvbaal &lt;luukvbaal@gmail.com&gt;
Date:   Sun,  1 Mar 2026 09:21:48 +0100

vim-patch:9.2.0081: Failed &quot;z=&quot; does not reset &#39;nospell&#39; setting (#38109)

Problem:  When z= fails due to no word being found, &#39;spelllang&#39; being
          unset or a multiline visual selection, &#39;nospell&#39; is not
          restored.
Solution: Jump to where the user configured value of &#39;spell&#39; is restored
          instead of returning early (Luuk van Baal).

closes: vim/vim#19525

https://github.com/vim/vim/commit/eba078fc47b6e0a5b6bc032ab31f4296ed2ff2a6
</content>
</entry>
<entry>
<id>62135f5a578a8e9894c511ebf37855ce7b2e1917</id>
<published>2026-03-01T00:13:19Z</published>
<updated>2026-03-01T00:13:19Z</updated>
<title>vim-patch:b901fa9: runtime(vim): Update base syntax, improve :syntax group list arg matching (#38112)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/62135f5a578a8e9894c511ebf37855ce7b2e1917.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 62135f5a578a8e9894c511ebf37855ce7b2e1917
parent 8a79e3398a347248f067abe0c09097416fbf9cae
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sun,  1 Mar 2026 08:13:19 +0800

vim-patch:b901fa9: runtime(vim): Update base syntax, improve :syntax group list arg matching (#38112)

Attempt to match all variations of group name and comma separator across
continuation lines.

Fixes issues:
- vim/vim#18491 (Two &quot;)&quot;s are incorrectly colored &#39;vimOperError&#39; in
  syntax/mail.vim), reported by @lkintact
- vim/vim#19366 (highlight error for contains elements in a new line), reported
  by Maxim Kim

fixes: vim/vim#18491
fixes: vim/vim#19366

https://github.com/vim/vim/commit/b901fa9a6adbc0b1404b1e6c19f83941820b1d91

Co-authored-by: Doug Kearns &lt;dougkearns@gmail.com&gt;
</content>
</entry>
<entry>
<id>8a79e3398a347248f067abe0c09097416fbf9cae</id>
<published>2026-02-28T17:58:31Z</published>
<updated>2026-02-28T22:59:52Z</updated>
<title>vim-patch:75c291f: runtime(julia): Update julia ftplugin</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/8a79e3398a347248f067abe0c09097416fbf9cae.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit 8a79e3398a347248f067abe0c09097416fbf9cae
parent 45b4bbac281b518e86906f39f1b4119ae0905012
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Sat, 28 Feb 2026 18:58:31 +0100

vim-patch:75c291f: runtime(julia): Update julia ftplugin

commentstring changed to single line variant in
JuliaEditorSupport/julia-vim@edd3512

closes: vim/vim#19530

https://github.com/vim/vim/commit/75c291fc39d33844365cb0a4e99569b570d85af0

Co-authored-by: Daniel Wennberg &lt;daniel.wennberg@gmail.com&gt;

</content>
</entry>
<entry>
<id>45b4bbac281b518e86906f39f1b4119ae0905012</id>
<published>2026-02-28T16:03:44Z</published>
<updated>2026-02-28T16:03:44Z</updated>
<title>feat(difftool): replace old &quot;nvim -d&quot; automatically #38057</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/45b4bbac281b518e86906f39f1b4119ae0905012.html" />
<author>
<name>Tomas Slusny</name>
<email>slusnucky@gmail.com</email>
</author>
<content>commit 45b4bbac281b518e86906f39f1b4119ae0905012
parent 3e8a4e10920dc6431547035eec514cdd21e37a3a
Author: Tomas Slusny &lt;slusnucky@gmail.com&gt;
Date:   Sat, 28 Feb 2026 17:03:44 +0100

feat(difftool): replace old &quot;nvim -d&quot; automatically #38057

Problem:
&quot;nvim -d&quot; doesn&#39;t leverage nvim.difftool.

Solution:
If nvim.difftool was enabled via :packadd, automatically
handle &quot;nvim -d&quot; on startup.

    nvim -c &quot;packadd nvim.difftool&quot; -d dir1/ dir2/
</content>
</entry>
<entry>
<id>3e8a4e10920dc6431547035eec514cdd21e37a3a</id>
<published>2026-02-28T15:02:52Z</published>
<updated>2026-02-28T15:02:52Z</updated>
<title>feat(lsp): show color preview in completion items #32138</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/3e8a4e10920dc6431547035eec514cdd21e37a3a.html" />
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<content>commit 3e8a4e10920dc6431547035eec514cdd21e37a3a
parent c1e60f36f3fb915bb59503dedd330addb63161ac
Author: glepnir &lt;glephunter@gmail.com&gt;
Date:   Sat, 28 Feb 2026 23:02:52 +0800

feat(lsp): show color preview in completion items #32138

Problem: Color completion items display as plain text without visual preview

Solution: Parse RGB/hex colors from documentation and render with colored symbol ■
</content>
</entry>
<entry>
<id>c1e60f36f3fb915bb59503dedd330addb63161ac</id>
<published>2026-02-28T14:59:53Z</published>
<updated>2026-02-28T14:59:53Z</updated>
<title>fix(difftool): don&#39;t reset quickfix list when closing quickfix window #38088</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/c1e60f36f3fb915bb59503dedd330addb63161ac.html" />
<author>
<name>Nicknamess96</name>
<email>113626193+Nicknamess96@users.noreply.github.com</email>
</author>
<content>commit c1e60f36f3fb915bb59503dedd330addb63161ac
parent 32e0d05d53f452a445afad161f6dda31ac054484
Author: Nicknamess96 &lt;113626193+Nicknamess96@users.noreply.github.com&gt;
Date:   Sat, 28 Feb 2026 15:59:53 +0100

fix(difftool): don&#39;t reset quickfix list when closing quickfix window #38088

Closing the quickfix window previously triggered a WinClosed autocmd
that deleted all difftool autocmds and pushed an empty quickfix list,
making the difftool non-functional. Users who close the quickfix window
to gain screen real estate for viewing diffs had no way to continue
navigating entries.

Remove the qf_win tracking and its associated WinClosed autocmd so that
closing the quickfix window no longer tears down the difftool state.
Closing either diff window still performs full cleanup as before.

The BufWinEnter handler no longer passes with_qf to diff_files, so
navigating entries while the quickfix window is closed reuses the
existing diff layout without forcing a layout rebuild.

Fixes #37388
</content>
</entry>
<entry>
<id>32e0d05d53f452a445afad161f6dda31ac054484</id>
<published>2026-02-28T13:31:02Z</published>
<updated>2026-02-28T13:31:02Z</updated>
<title>feat(ui2): configure targets per message kind #38091</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/32e0d05d53f452a445afad161f6dda31ac054484.html" />
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<content>commit 32e0d05d53f452a445afad161f6dda31ac054484
parent b40ca5a01c39c2acf10ff8bcca9db18b3336540c
Author: luukvbaal &lt;luukvbaal@gmail.com&gt;
Date:   Sat, 28 Feb 2026 14:31:02 +0100

feat(ui2): configure targets per message kind #38091

Problem:  Unable to configure message targets based on message kind.
Solution: Add cfg.msg.targets mapping message kinds to &quot;cmd/msg/pager&quot;.
          Check the configured target when writing the message.
          cfg.msg = { target = &#39;cmd&#39;, targets = { progress = &#39;msg&#39;, list_cmd = &#39;pager&#39; } }
          will for example use the &#39;msg&#39; target for progress messages,
          immediately open the pager for &#39;list_cmd&#39; and use the cmdline
          for all other message kinds.
</content>
</entry>
<entry>
<id>b40ca5a01c39c2acf10ff8bcca9db18b3336540c</id>
<published>2026-02-28T13:21:13Z</published>
<updated>2026-02-28T13:21:13Z</updated>
<title>fix(channel): support :detach, :restart on Windows #37977</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/b40ca5a01c39c2acf10ff8bcca9db18b3336540c.html" />
<author>
<name>Sanzhar Kuandyk</name>
<email>92693103+SanzharKuandyk@users.noreply.github.com</email>
</author>
<content>commit b40ca5a01c39c2acf10ff8bcca9db18b3336540c
parent 5943a81fe79a0d9a639af88452050a5056e9027d
Author: Sanzhar Kuandyk &lt;92693103+SanzharKuandyk@users.noreply.github.com&gt;
Date:   Sat, 28 Feb 2026 18:21:13 +0500

fix(channel): support :detach, :restart on Windows #37977

fix: allocate hidden console for detached server

Starting the server with UV_PROCESS_DETACHED results in DETACHED_PROCESS, leaving the child without a console. Without a console:

CONIN$ / CONOUT$ cannot resolve, causing channel_from_stdio to fail.

ConPTY cannot attach, breaking :terminal.

This patch allocates a hidden console via AllocConsole() when the server has none, restoring working stdio and enabling ConPTY.

Also updates os_set_cloexec to clear HANDLE_FLAG_INHERIT on the RPC pipe
handles, matching the Unix F_DUPFD_CLOEXEC behavior.
</content>
</entry>
<entry>
<id>5943a81fe79a0d9a639af88452050a5056e9027d</id>
<published>2026-02-28T13:20:56Z</published>
<updated>2026-02-28T13:20:56Z</updated>
<title>fix(float): style=minimal leaks into normal windows #25185</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/5943a81fe79a0d9a639af88452050a5056e9027d.html" />
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<content>commit 5943a81fe79a0d9a639af88452050a5056e9027d
parent 9763834170dda77ea25799dba403d6cbd513600f
Author: glepnir &lt;glephunter@gmail.com&gt;
Date:   Sat, 28 Feb 2026 21:20:56 +0800

fix(float): style=minimal leaks into normal windows #25185

Problem: closing a minimal float saves its style-imposed options into
buffer&#39;s wininfo, which get picked up by normal windows on :bnext.

Solution: don&#39;t save window options to wininfo for style=minimal windows.
</content>
</entry>
<entry>
<id>9763834170dda77ea25799dba403d6cbd513600f</id>
<published>2026-02-28T12:17:46Z</published>
<updated>2026-02-28T12:17:46Z</updated>
<title>fix(cmake): use host nlua0 binary when cross-compiling #38089</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/9763834170dda77ea25799dba403d6cbd513600f.html" />
<author>
<name>Rawan Khalid</name>
<email>145160003+Rawan10101@users.noreply.github.com</email>
</author>
<content>commit 9763834170dda77ea25799dba403d6cbd513600f
parent 74d1af165a39cd8e0a2e4934027a1484ca247e87
Author: Rawan Khalid &lt;145160003+Rawan10101@users.noreply.github.com&gt;
Date:   Sat, 28 Feb 2026 14:17:46 +0200

fix(cmake): use host nlua0 binary when cross-compiling #38089

Problem:
When cross-compiling, `$&lt;TARGET_FILE:nlua0&gt;` resolves to the target
binary, which cannot run on the host machine during the build process.

Solution:
Allow passing a host native nlua0 binary via
`-DNLUA0_HOST_PRG=/path/to/nlua0` when cross-compiling, so code
generation can run correctly on the host.
</content>
</entry>
<entry>
<id>74d1af165a39cd8e0a2e4934027a1484ca247e87</id>
<published>2026-02-28T11:34:01Z</published>
<updated>2026-02-28T11:34:01Z</updated>
<title>revert :gen_help_html.lua commit 4a4de73 #38100</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/74d1af165a39cd8e0a2e4934027a1484ca247e87.html" />
<author>
<name>Yochem van Rosmalen</name>
<email>git@yochem.nl</email>
</author>
<content>commit 74d1af165a39cd8e0a2e4934027a1484ca247e87
parent 7e8bdd348c3bb6074ab795b97addb818705991bf
Author: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Date:   Sat, 28 Feb 2026 12:34:01 +0100

revert :gen_help_html.lua commit 4a4de73 #38100

revert commit 4a4de73043060a4c0f8e91bc69ff62c69fcd8702
</content>
</entry>
<entry>
<id>7e8bdd348c3bb6074ab795b97addb818705991bf</id>
<published>2026-02-28T04:33:47Z</published>
<updated>2026-02-28T04:33:47Z</updated>
<title>vim-patch:9.2.0077: [security]: Crash when recovering a corrupted swap file (#38104)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/7e8bdd348c3bb6074ab795b97addb818705991bf.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 7e8bdd348c3bb6074ab795b97addb818705991bf
parent a416494e648b18a41fd5d1cdcf04ef0e05c15926
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 12:33:47 +0800

vim-patch:9.2.0077: [security]: Crash when recovering a corrupted swap file (#38104)

Problem:  memline: a crafted swap files with bogus pe_page_count/pe_bnum
          values could cause a multi-GB allocation via mf_get(), and
          invalid pe_old_lnum/pe_line_count values could cause a SEGV
          when passed to readfile() (ehdgks0627, un3xploitable)
Solution: Add bounds checks on pe_page_count and pe_bnum against
          mf_blocknr_max before descending into the block tree, and
          validate pe_old_lnum &gt;= 1 and pe_line_count &gt; 0 before calling
          readfile().

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-r2gw-2x48-jj5p

https://github.com/vim/vim/commit/65c1a143c331c886dc28888dd632708f953b4eb3

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;
</content>
</entry>
<entry>
<id>a416494e648b18a41fd5d1cdcf04ef0e05c15926</id>
<published>2026-02-28T01:22:41Z</published>
<updated>2026-02-28T01:22:41Z</updated>
<title>vim-patch:9.2.0078: [security]: stack-buffer-overflow in build_stl_str_hl() (#38102)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/a416494e648b18a41fd5d1cdcf04ef0e05c15926.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit a416494e648b18a41fd5d1cdcf04ef0e05c15926
parent 7e65c44cfbab533b7b96cf643f31e37a7b01e8c4
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 09:22:41 +0800

vim-patch:9.2.0078: [security]: stack-buffer-overflow in build_stl_str_hl() (#38102)

Problem:  A stack-buffer-overflow occurs when rendering a statusline
          with a multi-byte fill character on a very wide terminal.
          The size check in build_stl_str_hl() uses the cell width
          rather than the byte length, allowing the subsequent fill
          loop to write beyond the 4096-byte MAXPATHL buffer
          (ehdgks0627, un3xploitable).
Solution: Update the size check to account for the byte length of
          the fill character (using MB_CHAR2LEN).

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-gmqx-prf2-8mwf

https://github.com/vim/vim/commit/4e5b9e31cb7484ad156fba995fdce3c9b075b5fd

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;
</content>
</entry>
<entry>
<id>7e65c44cfbab533b7b96cf643f31e37a7b01e8c4</id>
<published>2026-02-28T01:09:41Z</published>
<updated>2026-02-28T01:09:41Z</updated>
<title>Merge pull request #38101 from zeertzjq/vim-9.2.0074</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/7e65c44cfbab533b7b96cf643f31e37a7b01e8c4.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 7e65c44cfbab533b7b96cf643f31e37a7b01e8c4
parent c4fdd3b072adc53206efa6310fdfd197f90c8b96
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 09:09:41 +0800

Merge pull request #38101 from zeertzjq/vim-9.2.0074

vim-patch:9.2.{0074,0075}
</content>
</entry>
<entry>
<id>e85fc92a6ba4b2bf165b360846b6fb460e98ab52</id>
<published>2026-02-28T00:11:48Z</published>
<updated>2026-02-28T00:12:25Z</updated>
<title>vim-patch:9.2.0075: [security]: Buffer underflow with emacs tag file</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/e85fc92a6ba4b2bf165b360846b6fb460e98ab52.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit e85fc92a6ba4b2bf165b360846b6fb460e98ab52
parent 95ddabdb2b0995b39a13f14de0f5ecabcda00dcd
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 08:11:48 +0800

vim-patch:9.2.0075: [security]: Buffer underflow with emacs tag file

Problem:  When parsing a malformed Emacs-style tags file, a 1-byte
          heap-buffer-underflow read occurs if the 0x7f delimiter
          appears at the very beginning of a line. This happens
          because the code attempts to scan backward for a tag
          name from the delimiter without checking if space exists.
          (ehdgks0627, un3xploitable)
Solution: Add a check to ensure the delimiter (p_7f) is not at the
          start of the buffer (lbuf) before attempting to isolate
          the tag name.

GitHub Advisory:
https://github.com/vim/vim/security/advisories/GHSA-xcc8-r6c5-hvwv

https://github.com/vim/vim/commit/9b7dfa2948c9e1e5e32a5812812d580c7879f4a0

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;

</content>
</entry>
<entry>
<id>95ddabdb2b0995b39a13f14de0f5ecabcda00dcd</id>
<published>2026-02-28T00:08:57Z</published>
<updated>2026-02-28T00:11:01Z</updated>
<title>vim-patch:9.2.0074: [security]: Crash with overlong emacs tag file</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/95ddabdb2b0995b39a13f14de0f5ecabcda00dcd.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 95ddabdb2b0995b39a13f14de0f5ecabcda00dcd
parent c4fdd3b072adc53206efa6310fdfd197f90c8b96
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 08:08:57 +0800

vim-patch:9.2.0074: [security]: Crash with overlong emacs tag file

Problem:  Crash with overlong emacs tag file, because of an OOB buffer
          read (ehdgks0627, un3xploitable)
Solution: Check for end of buffer and return early.

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-h4mf-vg97-hj8j

https://github.com/vim/vim/commit/f6a7f469a9c0d09e84cd6cb46c3a9e76f684da2d

Cherry-pick a change from patch 9.0.0767.
Add missing change from patch 9.2.0070.

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;

</content>
</entry>
<entry>
<id>c4fdd3b072adc53206efa6310fdfd197f90c8b96</id>
<published>2026-02-28T00:00:17Z</published>
<updated>2026-02-28T00:00:17Z</updated>
<title>vim-patch:9148644: runtime(env): add ftplugin for env filetype (#38098)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/c4fdd3b072adc53206efa6310fdfd197f90c8b96.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit c4fdd3b072adc53206efa6310fdfd197f90c8b96
parent 3e128cd7980d98ff5c9b1d9e7cd789bc423a4cde
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 08:00:17 +0800

vim-patch:9148644: runtime(env): add ftplugin for env filetype (#38098)

Patch 9.2.0033 (vim/vim#19260) introduced a dedicated `env` filetype for
.env files, which were previously detected as `sh`. This left env
files without `commentstring`, `comments`, or `formatoptions` since
no ftplugin was added alongside the new filetype.

Add runtime/ftplugin/env.vim to set these options, matching the
behavior that .env files had when they used the `sh` filetype.

closes: vim/vim#19522

https://github.com/vim/vim/commit/9148644c1eb73faad702eacac2d40925c0c9a2d0

Co-authored-by: snelling-a &lt;72226000+snelling-a@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<id>3e128cd7980d98ff5c9b1d9e7cd789bc423a4cde</id>
<published>2026-02-27T23:46:36Z</published>
<updated>2026-02-27T23:46:36Z</updated>
<title>Merge pull request #38099 from zeertzjq/vim-9.1.0535</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/3e128cd7980d98ff5c9b1d9e7cd789bc423a4cde.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 3e128cd7980d98ff5c9b1d9e7cd789bc423a4cde
parent 4a4de73043060a4c0f8e91bc69ff62c69fcd8702
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 07:46:36 +0800

Merge pull request #38099 from zeertzjq/vim-9.1.0535

vim-patch:9.1.{0535,0539},9.2.0070
</content>
</entry>
<entry>
<id>cd4c7850d05f64ae5a9d0bfd37ce3bd09e8fe9f1</id>
<published>2026-02-27T23:04:53Z</published>
<updated>2026-02-27T23:06:44Z</updated>
<title>vim-patch:9.2.0070: tests: various tests leave swapfiles around</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/cd4c7850d05f64ae5a9d0bfd37ce3bd09e8fe9f1.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit cd4c7850d05f64ae5a9d0bfd37ce3bd09e8fe9f1
parent 6ce964aed6aa58d1f30c1181411d6cb1a9777ab8
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 07:04:53 +0800

vim-patch:9.2.0070: tests: various tests leave swapfiles around

Problem:  tests: various tests leave swapfiles around
Solution: close open buffers using :bw! instead of :close!

https://github.com/vim/vim/commit/2fa34b64228cc385cc9705919edb169ab19e68bc

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;

</content>
</entry>
<entry>
<id>6ce964aed6aa58d1f30c1181411d6cb1a9777ab8</id>
<published>2026-02-27T23:04:24Z</published>
<updated>2026-02-27T23:04:49Z</updated>
<title>vim-patch:9.1.0539: Not enough tests for what v9.1.0535 fixed</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/6ce964aed6aa58d1f30c1181411d6cb1a9777ab8.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 6ce964aed6aa58d1f30c1181411d6cb1a9777ab8
parent 453dfbf7d668061b44d39d3aee6d372c4d3c31cf
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 07:04:24 +0800

vim-patch:9.1.0539: Not enough tests for what v9.1.0535 fixed

Problem:  Not enough tests for what v9.1.0535 fixed
Solution: Add another test for ex-mode

This comes from: https://groups.google.com/g/vim_dev/c/F5-tDqoafz8/m/GqKF-uQsLD0J

related: vim/vim#15120

https://github.com/vim/vim/commit/248efab9b53516febf771bad9a88d3ca46f05ed6

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;

</content>
</entry>
<entry>
<id>453dfbf7d668061b44d39d3aee6d372c4d3c31cf</id>
<published>2026-02-27T22:59:08Z</published>
<updated>2026-02-27T23:04:08Z</updated>
<title>vim-patch:9.1.0535: newline escape wrong in ex mode</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/453dfbf7d668061b44d39d3aee6d372c4d3c31cf.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 453dfbf7d668061b44d39d3aee6d372c4d3c31cf
parent 4a4de73043060a4c0f8e91bc69ff62c69fcd8702
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 28 Feb 2026 06:59:08 +0800

vim-patch:9.1.0535: newline escape wrong in ex mode

Problem:  newline escape wrong in ex mode (Konrad Schwarz)
Solution: partly revert patch 7.3.014, remove backslash in front of a
          newline when not in prompt mode in ex line mode
          (Mohamed Akram)

This fixes newline escaping to allow passing multiple commands to
&quot;:global&quot;, multiple lines to shell commands, and ending lines in append
mode with backslashes. This should fix a POSIX/(traditional) VI
incompatiblity.

This reverts a previous incorrect attempt at patch v7.3.014 to fix
append mode which removed half of trailing backslashes which lead to,
eg. the following two commands being parsed as having a different number
of backslashes:

```
!echo foo\\\
```

```
!echo foo\\ \
```

fixes: vim/vim#6135
fixes: vim/vim#7244
closes: vim/vim#15120

https://github.com/vim/vim/commit/f3daa4525b1816e475fbfe7add6f3c4a33b13944

Co-authored-by: Mohamed Akram &lt;mohd.akram@outlook.com&gt;

</content>
</entry>
<entry>
<id>4a4de73043060a4c0f8e91bc69ff62c69fcd8702</id>
<published>2026-02-27T22:50:51Z</published>
<updated>2026-02-27T22:50:51Z</updated>
<title>fix(help): better align local-additions #38097</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/4a4de73043060a4c0f8e91bc69ff62c69fcd8702.html" />
<author>
<name>Yochem van Rosmalen</name>
<email>git@yochem.nl</email>
</author>
<content>commit 4a4de73043060a4c0f8e91bc69ff62c69fcd8702
parent dc5d313d66c620699a926aeefaf20bb0ec0d653e
Author: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Date:   Fri, 27 Feb 2026 23:50:51 +0100

fix(help): better align local-additions #38097

Problem:
Descriptions of plugins often contain taglinks which are generally
concealed. This misaligns them by 2 characters with descriptions that
don&#39;t have a taglink in them.

Solution:
Don&#39;t count &quot;bar&quot; characters (`|`) for the description width.

Example:

Actual buffer content:
```
myplugin.txt                  |lsp| is cool
myplugin.txt        this is a nice plugin
```

Rendered as:
```
myplugin.txt                  lsp is cool
myplugin.txt        this is a nice plugin
```
</content>
</entry>
<entry>
<id>dc5d313d66c620699a926aeefaf20bb0ec0d653e</id>
<published>2026-02-27T22:45:07Z</published>
<updated>2026-02-27T22:45:07Z</updated>
<title>fix(vim.fs): joinpath() should ignore empty items #38077</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/dc5d313d66c620699a926aeefaf20bb0ec0d653e.html" />
<author>
<name>Yochem van Rosmalen</name>
<email>git@yochem.nl</email>
</author>
<content>commit dc5d313d66c620699a926aeefaf20bb0ec0d653e
parent 47479757540fa3b56a48145c74eeb93db81c90f7
Author: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Date:   Fri, 27 Feb 2026 23:45:07 +0100

fix(vim.fs): joinpath() should ignore empty items #38077

Problem:
vim.fs.joinpath treats empty string as a path segment
(it adds a path separator for each empty item):

    print(vim.fs.joinpath(&#39;&#39;, &#39;after/lsp&#39;, &#39;&#39;)) -- &#39;/after/lsp/&#39;
    print(vim.fs.joinpath(&#39;&#39;, &#39;&#39;)) -- &#39;/&#39;

Especially problematic if the empty segment is the first segment, as
that converts the path to an absolute path.

Solution:
Ignore empty (length of 0) path segments.

Benchmark:

    local function test(func)
      local t = vim.uv.hrtime()
      for _ = 1, 100000, 1 do
        func(&#39;&#39;, &#39;this/is&#39;, &#39;a/very/long/path&#39;, &#39;&#39;, &#39;it&#39;, &#39;really&#39;, &#39;is&#39;)
      end
      print(math.floor((vim.uv.hrtime() - t) / 1e6), &#39;ms&#39;)
    end

- with Iter():filter() --&gt; 370 ms
- building new segments table --&gt; 208 ms
- with vim.tbl_filter --&gt; 232 ms
- Instead of gsub split on `/` in all parts --&gt; 1870 ms
</content>
</entry>
<entry>
<id>47479757540fa3b56a48145c74eeb93db81c90f7</id>
<published>2026-02-27T12:22:54Z</published>
<updated>2026-02-27T13:04:49Z</updated>
<title>ci: bump actions/download-artifact from 7 to 8</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/47479757540fa3b56a48145c74eeb93db81c90f7.html" />
<author>
<name>dependabot[bot]</name>
<email>49699333+dependabot[bot]@users.noreply.github.com</email>
</author>
<content>commit 47479757540fa3b56a48145c74eeb93db81c90f7
parent 044300b72c8a6b18c1343145cc7db493d74aa7f7
Author: dependabot[bot] &lt;49699333+dependabot[bot]@users.noreply.github.com&gt;
Date:   Fri, 27 Feb 2026 12:22:54 +0000

ci: bump actions/download-artifact from 7 to 8

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: &#39;8&#39;
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;
</content>
</entry>
<entry>
<id>044300b72c8a6b18c1343145cc7db493d74aa7f7</id>
<published>2026-02-27T12:58:04Z</published>
<updated>2026-02-27T12:58:04Z</updated>
<title>Merge pull request #38074 from bfredl/mapfix</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/044300b72c8a6b18c1343145cc7db493d74aa7f7.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 044300b72c8a6b18c1343145cc7db493d74aa7f7
parent 64fabe64e5a50e63a4c1c2777e06597769cf6917
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Fri, 27 Feb 2026 13:58:04 +0100

Merge pull request #38074 from bfredl/mapfix

fix(map): use names like Map_key_value not Map_keyvalue
</content>
</entry>
<entry>
<id>64fabe64e5a50e63a4c1c2777e06597769cf6917</id>
<published>2026-02-27T12:22:50Z</published>
<updated>2026-02-27T12:51:05Z</updated>
<title>ci: bump actions/upload-artifact from 6 to 7</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/64fabe64e5a50e63a4c1c2777e06597769cf6917.html" />
<author>
<name>dependabot[bot]</name>
<email>49699333+dependabot[bot]@users.noreply.github.com</email>
</author>
<content>commit 64fabe64e5a50e63a4c1c2777e06597769cf6917
parent 2368a9edbd6c4ac75dc2cb9471d1e2e93b5fdd18
Author: dependabot[bot] &lt;49699333+dependabot[bot]@users.noreply.github.com&gt;
Date:   Fri, 27 Feb 2026 12:22:50 +0000

ci: bump actions/upload-artifact from 6 to 7

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: &#39;7&#39;
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;
</content>
</entry>
<entry>
<id>2368a9edbd6c4ac75dc2cb9471d1e2e93b5fdd18</id>
<published>2026-02-27T11:46:22Z</published>
<updated>2026-02-27T11:46:22Z</updated>
<title>feat(terminal): support SGR dim, overline attributes #37997</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/2368a9edbd6c4ac75dc2cb9471d1e2e93b5fdd18.html" />
<author>
<name>Riccardo Mazzarini</name>
<email>me@noib3.dev</email>
</author>
<content>commit 2368a9edbd6c4ac75dc2cb9471d1e2e93b5fdd18
parent 5cbb9d613bf6d8983b5effd7e20343a4ef497c06
Author: Riccardo Mazzarini &lt;me@noib3.dev&gt;
Date:   Fri, 27 Feb 2026 12:46:22 +0100

feat(terminal): support SGR dim, overline attributes #37997

Problem:
libvterm doesn&#39;t support parsing the dim and overline attributes, so when a program running in the embedded terminal emits one of these escape codes, we ignore it and don&#39;t surface it to the outer terminal.

Solution: tweak libvterm to add support for both attributes.
</content>
</entry>
<entry>
<id>84d3bbef23d0de61eb23aec5568bfa136d6bce13</id>
<published>2026-02-26T10:44:48Z</published>
<updated>2026-02-27T10:47:07Z</updated>
<title>fix(map): use names like Map_key_value not Map_keyvalue</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/84d3bbef23d0de61eb23aec5568bfa136d6bce13.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 84d3bbef23d0de61eb23aec5568bfa136d6bce13
parent 5cbb9d613bf6d8983b5effd7e20343a4ef497c06
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Thu, 26 Feb 2026 11:44:48 +0100

fix(map): use names like Map_key_value not Map_keyvalue

This makes little difference in practice except for extremely unlikely
ambiguities. But it looks nicer in compiler errors and stacktraces where
you see the fully expanded names

</content>
</entry>
<entry>
<id>5cbb9d613bf6d8983b5effd7e20343a4ef497c06</id>
<published>2026-02-27T09:52:52Z</published>
<updated>2026-02-27T09:52:52Z</updated>
<title>fix(startup): wait for bg detection before user config #37075</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/5cbb9d613bf6d8983b5effd7e20343a4ef497c06.html" />
<author>
<name>Kyle</name>
<email>50718101+kylesower@users.noreply.github.com</email>
</author>
<content>commit 5cbb9d613bf6d8983b5effd7e20343a4ef497c06
parent f45c550f4edd49815470e84447cb4ed9dd7a80fc
Author: Kyle &lt;50718101+kylesower@users.noreply.github.com&gt;
Date:   Fri, 27 Feb 2026 03:52:52 -0600

fix(startup): wait for bg detection before user config #37075

Problem:
Automatic background detection sets the background option too late,
which loads colorschemes twice and causes problems when the user&#39;s
terminal background doesn&#39;t match the default (#32109, #36211, #36416).

Solution:
Use a DA1 query to determine whether the TTY supports OSC 11. Wait for
background detection and setting to complete before processing user
config.

Note: To preserve the existing behavior as much as possible, this triggers
OptionSet manually on VimEnter (since it won&#39;t trigger automatically if
we set bg during startup). However, I&#39;m unsure if this behavior is
truly desired given that the documentation says OptionSet is triggered
&quot;After setting an option (except during |startup|).&quot;

Also fixes flickering issue #28667. To check for flickering:

    nvim --clean --cmd &quot;set termguicolors&quot; --cmd &quot;echo \&quot;foo\&quot;&quot; --cmd &quot;sleep 10&quot;

On master, this gives me a black screen for 10 seconds, but on this
branch, the background is dark or light depending on the terminal
background (since the option is now set during startup rather than after
VimEnter).
</content>
</entry>
<entry>
<id>f45c550f4edd49815470e84447cb4ed9dd7a80fc</id>
<published>2026-02-27T09:30:45Z</published>
<updated>2026-02-27T09:30:45Z</updated>
<title>fix(restart): drop &quot;-s &lt;scriptfile&gt;&quot; from v:argv on :restart #38058</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/f45c550f4edd49815470e84447cb4ed9dd7a80fc.html" />
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<content>commit f45c550f4edd49815470e84447cb4ed9dd7a80fc
parent acf81031992320e0f8d0dddb3164ba9d7d40fc26
Author: glepnir &lt;glephunter@gmail.com&gt;
Date:   Fri, 27 Feb 2026 17:30:45 +0800

fix(restart): drop &quot;-s &lt;scriptfile&gt;&quot; from v:argv on :restart #38058

Problem: When nvim is started with &quot;-s -&quot; (read from stdin), &quot;:restart&quot;
drops the &quot;-&quot; argument but keeps &quot;-s&quot;, leaving an orphaned &quot;-s&quot; in the
restarted server&#39;s argv, causing a crash.

Solution: Drop &quot;-s&quot; and its scriptfile argument when copying v:argv for
the restarted server. Like &quot;-- [files…]&quot;, the scriptfile is a one-shot
startup input that should not be replayed on restart
</content>
</entry>
<entry>
<id>acf81031992320e0f8d0dddb3164ba9d7d40fc26</id>
<published>2026-02-27T08:17:51Z</published>
<updated>2026-02-27T08:49:58Z</updated>
<title>build(deps): bump luajit to a553b3de2</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/acf81031992320e0f8d0dddb3164ba9d7d40fc26.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit acf81031992320e0f8d0dddb3164ba9d7d40fc26
parent 18c5f06c9f6068b9a26a1ed4ab0f66b91db85cd9
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Fri, 27 Feb 2026 09:17:51 +0100

build(deps): bump luajit to a553b3de2

</content>
</entry>
<entry>
<id>18c5f06c9f6068b9a26a1ed4ab0f66b91db85cd9</id>
<published>2026-02-26T23:32:08Z</published>
<updated>2026-02-26T23:32:08Z</updated>
<title>vim-patch:partial:9.2.0068: Inefficient use of list_append_string() (#38083)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/18c5f06c9f6068b9a26a1ed4ab0f66b91db85cd9.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 18c5f06c9f6068b9a26a1ed4ab0f66b91db85cd9
parent 6435c61bd61ce910da6659394d918f7f36e932ba
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Fri, 27 Feb 2026 07:32:08 +0800

vim-patch:partial:9.2.0068: Inefficient use of list_append_string() (#38083)

Problem:  Inefficient use of list_append_string()
Solution: Pass string length to list_append_string() where it is known
          (John Marriott).

closes: vim/vim#19491

https://github.com/vim/vim/commit/455d62e38a75572bccc43e42d20b5db3c4b22ec3

N/A patches:
vim-patch:9.2.0063: memory leak in type_name_list_or_dict()
vim-patch:9.2.0065: memory leak in invoke_sync_listeners()
vim-patch:9.2.0066: memory leak in build_drop_cmd()
vim-patch:9.2.0067: memory leak in dict_extend_func()

Co-authored-by: John Marriott &lt;basilisk@internode.on.net&gt;
</content>
</entry>
<entry>
<id>6435c61bd61ce910da6659394d918f7f36e932ba</id>
<published>2026-02-26T18:09:09Z</published>
<updated>2026-02-26T18:26:35Z</updated>
<title>build(deps): bump tree-sitter-markdown to v0.5.3</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/6435c61bd61ce910da6659394d918f7f36e932ba.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit 6435c61bd61ce910da6659394d918f7f36e932ba
parent d94c29114e75a7afda892dff94f7d0bafa0f861b
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Thu, 26 Feb 2026 19:09:09 +0100

build(deps): bump tree-sitter-markdown to v0.5.3

</content>
</entry>
<entry>
<id>d94c29114e75a7afda892dff94f7d0bafa0f861b</id>
<published>2026-02-26T18:08:13Z</published>
<updated>2026-02-26T18:26:35Z</updated>
<title>build(deps): bump tree-sitter-lua to v0.5.0</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/d94c29114e75a7afda892dff94f7d0bafa0f861b.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit d94c29114e75a7afda892dff94f7d0bafa0f861b
parent 37ce3d626170ab26a64bffe7eeb499f035fe23c5
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Thu, 26 Feb 2026 19:08:13 +0100

build(deps): bump tree-sitter-lua to v0.5.0

</content>
</entry>
<entry>
<id>37ce3d626170ab26a64bffe7eeb499f035fe23c5</id>
<published>2026-02-26T18:07:27Z</published>
<updated>2026-02-26T18:26:35Z</updated>
<title>build(deps): bump tree-sitter-vim to v0.8.1</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/37ce3d626170ab26a64bffe7eeb499f035fe23c5.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit 37ce3d626170ab26a64bffe7eeb499f035fe23c5
parent ea5007b37fbe3147cc184ccf37dd80bf12ac6b56
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Thu, 26 Feb 2026 19:07:27 +0100

build(deps): bump tree-sitter-vim to v0.8.1

</content>
</entry>
<entry>
<id>ea5007b37fbe3147cc184ccf37dd80bf12ac6b56</id>
<published>2026-02-26T17:05:30Z</published>
<updated>2026-02-26T17:05:30Z</updated>
<title>fix(lps): separate namespaces for pull/push diagnostics #37938</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/ea5007b37fbe3147cc184ccf37dd80bf12ac6b56.html" />
<author>
<name>Riccardo Mazzarini</name>
<email>me@noib3.dev</email>
</author>
<content>commit ea5007b37fbe3147cc184ccf37dd80bf12ac6b56
parent 7852993f4927c2d004d627bbe244dbbe09edb94f
Author: Riccardo Mazzarini &lt;me@noib3.dev&gt;
Date:   Thu, 26 Feb 2026 18:05:30 +0100

fix(lps): separate namespaces for pull/push diagnostics #37938

Problem:
Regression from b99cdd0:
Pull diagnostics (from `textDocument/diagnostic`) and push diagnostics
(from `textDocument/publishDiagnostics`) use the same namespace, which
is a problem when using language servers that publish two different sets
of diagnostics on push vs pull, like rust-analyzer (see
https://github.com/rust-lang/rust-analyzer/issues/18709#issuecomment-2551394047).

Solution:
Rename `is_pull` to `pull_id` which accepts a pull namespace instead of
just a boolean.
</content>
</entry>
<entry>
<id>7852993f4927c2d004d627bbe244dbbe09edb94f</id>
<published>2026-02-26T13:30:44Z</published>
<updated>2026-02-26T13:30:44Z</updated>
<title>vim-patch:9.2.0061: Not possible to know when a session will be loaded (#38071)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/7852993f4927c2d004d627bbe244dbbe09edb94f.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 7852993f4927c2d004d627bbe244dbbe09edb94f
parent 34b3bd1ac5758813743836b1bd559102191d57a6
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Thu, 26 Feb 2026 21:30:44 +0800

vim-patch:9.2.0061: Not possible to know when a session will be loaded (#38071)

Problem:  Not possible to know when a session will be loaded.
Solution: Add the SessionLoadPre autocommand (Colin Kennedy).

fixes:  vim/vim#19084
closes: vim/vim#19306

https://github.com/vim/vim/commit/1c0d468d72e0220d4cb25936043ac35439a981b5

Co-authored-by: Colin Kennedy &lt;colinvfx@gmail.com&gt;
</content>
</entry>
<entry>
<id>34b3bd1ac5758813743836b1bd559102191d57a6</id>
<published>2026-02-26T13:28:52Z</published>
<updated>2026-02-26T13:28:52Z</updated>
<title>test(treesitter/fold_spec): fix flaky test (#38075)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/34b3bd1ac5758813743836b1bd559102191d57a6.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 34b3bd1ac5758813743836b1bd559102191d57a6
parent e63346dfe91baae48ecdc5453b4033d4d01a7286
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Thu, 26 Feb 2026 21:28:52 +0800

test(treesitter/fold_spec): fix flaky test (#38075)


</content>
</entry>
<entry>
<id>e63346dfe91baae48ecdc5453b4033d4d01a7286</id>
<published>2026-02-26T12:45:33Z</published>
<updated>2026-02-26T12:45:33Z</updated>
<title>fix(messages): reset redirection message column at message start #38068</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/e63346dfe91baae48ecdc5453b4033d4d01a7286.html" />
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<content>commit e63346dfe91baae48ecdc5453b4033d4d01a7286
parent 8f1c161d9d11a79442b3496fb042c10d6b1ad9f6
Author: luukvbaal &lt;luukvbaal@gmail.com&gt;
Date:   Thu, 26 Feb 2026 13:45:33 +0100

fix(messages): reset redirection message column at message start #38068

Problem:  Leading message newlines (not emitted with ext_messages since
          4260f73) were responsible for resetting the redirection message
          column (while the newline itself is later pruned...).
Solution: Ensure the redirection column is reset at the start of a message.
          (Instead of re-adjusting all the newline callsites which can
          themselves hopefully be pruned if ext_messages is enabled by
          default.)
</content>
</entry>
<entry>
<id>8f1c161d9d11a79442b3496fb042c10d6b1ad9f6</id>
<published>2026-02-26T11:49:29Z</published>
<updated>2026-02-26T11:49:29Z</updated>
<title>Merge pull request #38040 from bfredl/seenfix</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/8f1c161d9d11a79442b3496fb042c10d6b1ad9f6.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 8f1c161d9d11a79442b3496fb042c10d6b1ad9f6
parent 3a4a7a7efb2769d386d780aa79b1f625a0e83ce9
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Thu, 26 Feb 2026 12:49:29 +0100

Merge pull request #38040 from bfredl/seenfix

fix(marktree): fix edge case bug regarding changing intersections
</content>
</entry>
<entry>
<id>37c0efb21cfbd05554d01b0f05edc7cf28b9d62d</id>
<published>2026-02-24T10:12:56Z</published>
<updated>2026-02-26T09:30:41Z</updated>
<title>fix(marktree): fix edge case bug regarding changing intersections</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/37c0efb21cfbd05554d01b0f05edc7cf28b9d62d.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 37c0efb21cfbd05554d01b0f05edc7cf28b9d62d
parent 3a4a7a7efb2769d386d780aa79b1f625a0e83ce9
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Tue, 24 Feb 2026 11:12:56 +0100

fix(marktree): fix edge case bug regarding changing intersections

fix #37867

This bug happens when only one end is moved between different nodes,
but the other end is also moved but within the same node.
When this happens we need the correct previous position even for the
internal move. This code shall be refactored to make the intent clearer,
(and avoid some unnecessary processing) but this is a fix for the observable
bug.

Thanks to KevinGoodsell for providing a deterministic
reproduce using fuzzing techniques.

</content>
</entry>
<entry>
<id>3a4a7a7efb2769d386d780aa79b1f625a0e83ce9</id>
<published>2026-02-26T09:29:49Z</published>
<updated>2026-02-26T09:29:49Z</updated>
<title>Merge pull request #37722 from bfredl/fastpackadd</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/3a4a7a7efb2769d386d780aa79b1f625a0e83ce9.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 3a4a7a7efb2769d386d780aa79b1f625a0e83ce9
parent be8969f4cc1f766386319ee3dc45f6002f51713b
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Thu, 26 Feb 2026 10:29:49 +0100

Merge pull request #37722 from bfredl/fastpackadd

perf(runtime): hardware accelerated &quot;packadd opt_package&quot;
</content>
</entry>
<entry>
<id>be8969f4cc1f766386319ee3dc45f6002f51713b</id>
<published>2026-02-26T04:02:20Z</published>
<updated>2026-02-26T04:02:20Z</updated>
<title>docs: update version.c (#38053)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/be8969f4cc1f766386319ee3dc45f6002f51713b.html" />
<author>
<name>github-actions[bot]</name>
<email>41898282+github-actions[bot]@users.noreply.github.com</email>
</author>
<content>commit be8969f4cc1f766386319ee3dc45f6002f51713b
parent 6ba32713ada1c290aa8ff0cfcf69c3cbb14d59d4
Author: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Date:   Thu, 26 Feb 2026 12:02:20 +0800

docs: update version.c (#38053)

vim-patch:9.2.0001: tests: Test_popup_setbuf() fails
vim-patch:9.2.0047: Vim9: Comment parsing error with lambda
vim-patch:9.2.0052: Wayland: hiding lower half of command line in tiny vim

Co-authored-by: marvim &lt;marvim@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<id>6ba32713ada1c290aa8ff0cfcf69c3cbb14d59d4</id>
<published>2026-02-26T02:55:05Z</published>
<updated>2026-02-26T02:55:05Z</updated>
<title>feat(secure): allow &#39;path&#39; parameter for trust action &#39;allow&#39; (#38001)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/6ba32713ada1c290aa8ff0cfcf69c3cbb14d59d4.html" />
<author>
<name>anondeveg</name>
<email>anondeveg@gmail.com</email>
</author>
<content>commit 6ba32713ada1c290aa8ff0cfcf69c3cbb14d59d4
parent e86ccdbeaefd56398bfe7e5927e076348733a868
Author: anondeveg &lt;anondeveg@gmail.com&gt;
Date:   Thu, 26 Feb 2026 04:55:05 +0200

feat(secure): allow &#39;path&#39; parameter for trust action &#39;allow&#39; (#38001)


</content>
</entry>
<entry>
<id>e86ccdbeaefd56398bfe7e5927e076348733a868</id>
<published>2026-02-26T02:06:34Z</published>
<updated>2026-02-26T02:06:34Z</updated>
<title>test: remove remaining use of feed_command() in terminal/ (#38069)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/e86ccdbeaefd56398bfe7e5927e076348733a868.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit e86ccdbeaefd56398bfe7e5927e076348733a868
parent 1fe1b2525f7e54dee17a3303e2a2f1f184ef5493
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Thu, 26 Feb 2026 10:06:34 +0800

test: remove remaining use of feed_command() in terminal/ (#38069)

Also deduplicate screen lines in some other tests.
</content>
</entry>
<entry>
<id>1fe1b2525f7e54dee17a3303e2a2f1f184ef5493</id>
<published>2026-02-26T00:15:57Z</published>
<updated>2026-02-26T00:15:57Z</updated>
<title>vim-patch:9.2.0054: eval_addblob() is inefficient (#38067)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/1fe1b2525f7e54dee17a3303e2a2f1f184ef5493.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 1fe1b2525f7e54dee17a3303e2a2f1f184ef5493
parent 9288357d59d2c6bbc88c7db4eda5fc888c896a90
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Thu, 26 Feb 2026 08:15:57 +0800

vim-patch:9.2.0054: eval_addblob() is inefficient (#38067)

Problem:  eval_addblob() is inefficient
Solution: Replace per-byte ga_append() loop with a single ga_grow() and
          mch_memmove() for each source blob.  This eliminates N grow
          checks and function call overhead for blob concatenation
          (Yasuhiro Matsumoto).

closes: vim/vim#19494

https://github.com/vim/vim/commit/c389ae8c4467e93827a9737abd907ebc27b998b3

Omit the pointless int -&gt; long changes in other functions.

Co-authored-by: Yasuhiro Matsumoto &lt;mattn.jp@gmail.com&gt;
</content>
</entry>
<entry>
<id>9288357d59d2c6bbc88c7db4eda5fc888c896a90</id>
<published>2026-02-26T00:04:34Z</published>
<updated>2026-02-26T00:04:34Z</updated>
<title>vim-patch:9.2.0055: memory leak in ExpandFromContext() (#38066)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/9288357d59d2c6bbc88c7db4eda5fc888c896a90.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 9288357d59d2c6bbc88c7db4eda5fc888c896a90
parent 583308f5991c4c55d3f04e456254d95433033c72
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Thu, 26 Feb 2026 08:04:34 +0800

vim-patch:9.2.0055: memory leak in ExpandFromContext() (#38066)

Problem:  memory leak in ExpandFromContext()
Solution: Free the variable (Huihui Huang).

fixes:  vim/vim#19500
closes: vim/vim#19505

https://github.com/vim/vim/commit/9c3279ddc39da31f3fe9c52d06cb8a9b3a06ca0e

N/A patches:
vim-patch:9.2.0056: memory leak in ex_substitute
vim-patch:9.2.0057: memory leak in exe_newdict()
vim-patch:9.2.0058: Compile error in did_set_previewpopup()
vim-patch:9.2.0059: memory leak in fill_assert_error

Co-authored-by: Huihui Huang &lt;625173@qq.com&gt;
</content>
</entry>
<entry>
<id>583308f5991c4c55d3f04e456254d95433033c72</id>
<published>2026-02-25T18:26:56Z</published>
<updated>2026-02-25T18:26:56Z</updated>
<title>fix(diagnostic): handle stale diagnostic extmark ids #38060</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/583308f5991c4c55d3f04e456254d95433033c72.html" />
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<content>commit 583308f5991c4c55d3f04e456254d95433033c72
parent 4ef217e272c463896b73ba726b0a498c497413a0
Author: Mathias Fußenegger &lt;mfussenegger@users.noreply.github.com&gt;
Date:   Wed, 25 Feb 2026 19:26:56 +0100

fix(diagnostic): handle stale diagnostic extmark ids #38060

Problem:
If a server is slow with catching up, there can be stale diagnostics
for deleted lines. Then if a user uses `jump` it can error like:

    E5108: Lua: ...runtime/lua/vim/diagnostic.lua:670: attempt to index a nil value
    stack traceback:
            ...runtime/lua/vim/diagnostic.lua:670: in function &#39;get_logical_pos&#39;
            ...runtime/lua/vim/diagnostic.lua:687: in function &#39;diagnostic_lines&#39;
            ...runtime/lua/vim/diagnostic.lua:1122: in function &#39;next_diagnostic&#39;
            ...runtime/lua/vim/diagnostic.lua:1665: in function &#39;jump&#39;

Solution:
Fallback to diagnostic location. That&#39;s better than the failure.
</content>
</entry>
<entry>
<id>4ef217e272c463896b73ba726b0a498c497413a0</id>
<published>2026-02-25T18:21:30Z</published>
<updated>2026-02-25T18:21:30Z</updated>
<title>fix(ui2): leftover empty lines in msg window #38059</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/4ef217e272c463896b73ba726b0a498c497413a0.html" />
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<content>commit 4ef217e272c463896b73ba726b0a498c497413a0
parent c0f8b3fb668b734555c796e846ec764a132d2bff
Author: luukvbaal &lt;luukvbaal@gmail.com&gt;
Date:   Wed, 25 Feb 2026 19:21:30 +0100

fix(ui2): leftover empty lines in msg window #38059

Problem:  Timer removing a message from the msg buffer does not remove
          empty lines if window is closed (col([ui.wins.msg]) fails).
Solution: Use nvim_buf_get_text() to check if line is empty.
</content>
</entry>
<entry>
<id>c0f8b3fb668b734555c796e846ec764a132d2bff</id>
<published>2026-02-25T18:06:53Z</published>
<updated>2026-02-25T18:06:53Z</updated>
<title>refactor(test): simplify v:argf tests #38055</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/c0f8b3fb668b734555c796e846ec764a132d2bff.html" />
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<content>commit c0f8b3fb668b734555c796e846ec764a132d2bff
parent 1983c70d109eaaff97c998035b8f5ed19e2fcff9
Author: Justin M. Keyes &lt;justinkz@gmail.com&gt;
Date:   Wed, 25 Feb 2026 13:06:53 -0500

refactor(test): simplify v:argf tests #38055


</content>
</entry>
<entry>
<id>1983c70d109eaaff97c998035b8f5ed19e2fcff9</id>
<published>2026-02-25T18:04:31Z</published>
<updated>2026-02-25T18:04:31Z</updated>
<title>test(lsp): flaky lsp/semantic_tokens_spec #38063</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/1983c70d109eaaff97c998035b8f5ed19e2fcff9.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 1983c70d109eaaff97c998035b8f5ed19e2fcff9
parent 44429b4d96503d13f0663806d84d14209f33b7c8
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Thu, 26 Feb 2026 02:04:31 +0800

test(lsp): flaky lsp/semantic_tokens_spec #38063

The wait added in #37853 doesn&#39;t seem to do anything as request is sent
immediately on InsertLeave, and the number 4 also seems wrong. Instead,
the actual cause for the flakiness that the feed() (and hence the buffer
change) may arrive before the scheduled initialization of capabilities,
causing there be only only one textDocument/semanticTokens/full request
instead of two.
</content>
</entry>
<entry>
<id>44429b4d96503d13f0663806d84d14209f33b7c8</id>
<published>2026-02-25T17:13:14Z</published>
<updated>2026-02-25T17:32:39Z</updated>
<title>build(deps): bump wasmtime to v36.0.6</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/44429b4d96503d13f0663806d84d14209f33b7c8.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit 44429b4d96503d13f0663806d84d14209f33b7c8
parent 88ff4f1ac3de97b5f6f9efd748a2dd38c7331ea4
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Wed, 25 Feb 2026 18:13:14 +0100

build(deps): bump wasmtime to v36.0.6

</content>
</entry>
<entry>
<id>88ff4f1ac3de97b5f6f9efd748a2dd38c7331ea4</id>
<published>2026-02-25T17:07:34Z</published>
<updated>2026-02-25T17:32:39Z</updated>
<title>build(deps): bump tree-sitter to v0.26.6</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/88ff4f1ac3de97b5f6f9efd748a2dd38c7331ea4.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit 88ff4f1ac3de97b5f6f9efd748a2dd38c7331ea4
parent 39769b4ac2e88690e9be0f817f8e60e55bd6c461
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Wed, 25 Feb 2026 18:07:34 +0100

build(deps): bump tree-sitter to v0.26.6

</content>
</entry>
<entry>
<id>39769b4ac2e88690e9be0f817f8e60e55bd6c461</id>
<published>2026-02-25T09:23:55Z</published>
<updated>2026-02-25T10:04:51Z</updated>
<title>build(deps): bump luajit to fc3d17eb4</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/39769b4ac2e88690e9be0f817f8e60e55bd6c461.html" />
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<content>commit 39769b4ac2e88690e9be0f817f8e60e55bd6c461
parent cf874cee330db7996e879891b7be0ffa3bd6a535
Author: Christian Clason &lt;c.clason@uni-graz.at&gt;
Date:   Wed, 25 Feb 2026 10:23:55 +0100

build(deps): bump luajit to fc3d17eb4

</content>
</entry>
<entry>
<id>3aa04f7ee4b016924b6b178c74667b9c6bb48a81</id>
<published>2026-02-04T10:34:40Z</published>
<updated>2026-02-25T08:39:54Z</updated>
<title>perf(runtime): hardware accelerated &quot;packadd opt_package&quot;</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/3aa04f7ee4b016924b6b178c74667b9c6bb48a81.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 3aa04f7ee4b016924b6b178c74667b9c6bb48a81
parent cf874cee330db7996e879891b7be0ffa3bd6a535
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Wed,  4 Feb 2026 11:34:40 +0100

perf(runtime): hardware accelerated &quot;packadd opt_package&quot;

fixes #37586

when doing `packadd mypackage` up to two exact paths are added
to &amp;rtp. Instead of recalculating runtime_search_path from scratch,
we can &quot;just&quot; splice these two paths in

This is simple in theory, but get complicated in practice as
&quot;after&quot; dirs do exist and need some wrangling.

Echasnovski did some benchmarking, to show that this reduces overhead
of a init.lua configuration style where separate `packadd!` calls are
used spread out during the config. In addition, &quot;batched&quot; addition
(either using &quot;start&quot; packages or packadd! a lot of opt packages at
once) does not regress.

A theoretical simplification could be to NEVER explicitly add &quot;after&quot;
dirs to &amp;rtp, but implicitly add all existing &quot;after&quot; dirs in reverse
order when calculating the effective run time path. This might be tricky
to do without breaking 12 tpope plugins again tho.

We might also instead consider solutions where &amp;rtp remains fully expanded but no longer is the main source of truth. But this is all post 0.12 work. This PR is an alright stopgap to make 0.12 fully support intended use cases of vim.pack.add() .

</content>
</entry>
<entry>
<id>cf874cee330db7996e879891b7be0ffa3bd6a535</id>
<published>2026-02-25T08:38:08Z</published>
<updated>2026-02-25T08:38:08Z</updated>
<title>feat(startup): provide v:argf for file arguments #35889</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/cf874cee330db7996e879891b7be0ffa3bd6a535.html" />
<author>
<name>Sanzhar Kuandyk</name>
<email>92693103+SanzharKuandyk@users.noreply.github.com</email>
</author>
<content>commit cf874cee330db7996e879891b7be0ffa3bd6a535
parent 6d73bf48861c13d190f3085eb54380fa76cb1a11
Author: Sanzhar Kuandyk &lt;92693103+SanzharKuandyk@users.noreply.github.com&gt;
Date:   Wed, 25 Feb 2026 13:38:08 +0500

feat(startup): provide v:argf for file arguments #35889

Problem:
- `:args` and `argv()` can change after startup.
- `v:arg` includes options/commands, not just files.
- Plugins (e.g. Oil) may rewrite directory args.

Solution:
- New read-only var `v:argf`: snapshot of file/dir args at startup.
- Unaffected by `:args` or plugins.
- Unlike `v:argv`, excludes options/commands.
- Paths are resolved to absolute paths when possible

Example:

    nvim file1.txt dir1 file2.txt
    :echo v:argf
    &quot; [&#39;/home/user/project/file1.txt&#39;, &#39;/home/user/project/dir1&#39;, &#39;/home/user/project/file2.txt&#39;]
</content>
</entry>
<entry>
<id>6d73bf48861c13d190f3085eb54380fa76cb1a11</id>
<published>2026-02-25T00:09:09Z</published>
<updated>2026-02-25T00:09:09Z</updated>
<title>vim-patch:29b5938: runtime(sshconfig): Add 3 additional keywords to syntax script (#38050)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/6d73bf48861c13d190f3085eb54380fa76cb1a11.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 6d73bf48861c13d190f3085eb54380fa76cb1a11
parent 327dcb897024159bdb201caf23d8d5673d7a0567
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Wed, 25 Feb 2026 08:09:09 +0800

vim-patch:29b5938: runtime(sshconfig): Add 3 additional keywords to syntax script (#38050)

closes: vim/vim#19488

https://github.com/vim/vim/commit/29b5938d7917bdb97e22953e7daddb14049257c9

Co-authored-by: James Roberts-Thomson &lt;jamesrt@gmail.com&gt;
</content>
</entry>
<entry>
<id>327dcb897024159bdb201caf23d8d5673d7a0567</id>
<published>2026-02-24T23:53:43Z</published>
<updated>2026-02-24T23:53:43Z</updated>
<title>vim-patch:9.2.0046: filetype: neon files are not recoginzed (#38049)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/327dcb897024159bdb201caf23d8d5673d7a0567.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 327dcb897024159bdb201caf23d8d5673d7a0567
parent 844caca881f85fa4e143fbfa982fba48590e8a60
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Wed, 25 Feb 2026 07:53:43 +0800

vim-patch:9.2.0046: filetype: neon files are not recoginzed (#38049)

Problem:  filetype: neon files are not recoginzed
Solution: Detect *.neon files as neon filetype
          (przepompownia)

Reference:
https://doc.nette.org/en/neon/format
https://github.com/fpob/nette.vim

closes: vim/vim#19496

https://github.com/vim/vim/commit/ddd90672f2ddc170cb8f035e42302468f02d341a

Co-authored-by: przepompownia &lt;przepompownia@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<id>844caca881f85fa4e143fbfa982fba48590e8a60</id>
<published>2026-02-24T22:05:38Z</published>
<updated>2026-02-24T22:05:38Z</updated>
<title>fix(ui2): multiline/color replaced message, expanded cmdline, error messages #38044</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/844caca881f85fa4e143fbfa982fba48590e8a60.html" />
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<content>commit 844caca881f85fa4e143fbfa982fba48590e8a60
parent 16aab4cb48e19c8236eda788c50b6b475ebfa1b0
Author: luukvbaal &lt;luukvbaal@gmail.com&gt;
Date:   Tue, 24 Feb 2026 23:05:38 +0100

fix(ui2): multiline/color replaced message, expanded cmdline, error messages #38044

Problem:  - Unintentionally inserting lines for a replaced multiline
          message that also has multiple highlights.
          - Scheduled check to see if the expanded cmdline window was
          entered makes it difficult to keep track of what happens when
          the key pressed to dismiss it results in a message.
          - Reading the first line of an error message should be enough
          notice for something going wrong.
          - &quot;search_cmd&quot; messages should not be shown with 0 &#39;cmdheight&#39;.
          - Unable to configure dynamically changed pager height.
          - Enabling UI2 doesn&#39;t make sense with no UIs attached.

Solution: - Only insert a line for the first chunk after a newline.
          - Use getmousepos() to check if the expanded cmdline was
          clicked to enter the pager.
          entering the pager to serve as a configuration interface.
          - Don&#39;t expand the cmdline for error messages; user can press g&lt;.
          - Don&#39;t show &quot;search_cmd&quot; messages with &#39;cmdheight&#39; set to 0.
          - Change &#39;eventignorewin&#39; to ensure WinEnter is fired when
          - Have enable() return early when no UIs are attached.
</content>
</entry>
<entry>
<id>16aab4cb48e19c8236eda788c50b6b475ebfa1b0</id>
<published>2026-02-24T21:22:30Z</published>
<updated>2026-02-24T21:22:30Z</updated>
<title>fix(treesitter): InspectTree only show the largest injection #37906</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/16aab4cb48e19c8236eda788c50b6b475ebfa1b0.html" />
<author>
<name>phanium</name>
<email>91544758+phanen@users.noreply.github.com</email>
</author>
<content>commit 16aab4cb48e19c8236eda788c50b6b475ebfa1b0
parent 39c4e0f33667e8f4eae3229eb807694aad15347e
Author: phanium &lt;91544758+phanen@users.noreply.github.com&gt;
Date:   Wed, 25 Feb 2026 05:22:30 +0800

fix(treesitter): InspectTree only show the largest injection #37906

Problem:
:InspectTree don&#39;t show luadoc injection lua file. Since luadoc share
the same &quot;root&quot; with comment in their common primary (lua) tree.
Current logic simply show the largest (comment injection) and ignore all
smaller one (luadoc injection).

Solution:
Handle different lang injections separately. Then sort them by
byte_length to ensure the draw tree consistent.
</content>
</entry>
<entry>
<id>39c4e0f33667e8f4eae3229eb807694aad15347e</id>
<published>2026-02-24T18:01:31Z</published>
<updated>2026-02-24T18:01:31Z</updated>
<title>fix(messages): unwanted ext_messages newlines for confirm() #38045</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/39c4e0f33667e8f4eae3229eb807694aad15347e.html" />
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<content>commit 39c4e0f33667e8f4eae3229eb807694aad15347e
parent 3115a18a800ac47b81233395cc83582521fdedce
Author: luukvbaal &lt;luukvbaal@gmail.com&gt;
Date:   Tue, 24 Feb 2026 19:01:31 +0100

fix(messages): unwanted ext_messages newlines for confirm() #38045

Problem:  Newlines emitted with ext_messages intended to position
          the message/prompt on the message grid.
Solution: Don&#39;t emit these newlines with ext_messages, followup to 4260f73e.
</content>
</entry>
<entry>
<id>3115a18a800ac47b81233395cc83582521fdedce</id>
<published>2026-02-24T14:20:58Z</published>
<updated>2026-02-24T14:20:58Z</updated>
<title>refactor(test): lsp completion spec cleanup #38041</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/3115a18a800ac47b81233395cc83582521fdedce.html" />
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<content>commit 3115a18a800ac47b81233395cc83582521fdedce
parent 5eb1c4df54e296579f86f675d7efe04a66106799
Author: glepnir &lt;glephunter@gmail.com&gt;
Date:   Tue, 24 Feb 2026 22:20:58 +0800

refactor(test): lsp completion spec cleanup #38041

Problem: retry/feed/tbl_map patterns duplicated everywhere, detach check was a false negative

Solution: extract wait_for_pum/extract_word_abbr/word_sorter helpers,
fix assert_cleanup_after_detach with positive+negative pum confirmation
</content>
</entry>
<entry>
<id>5eb1c4df54e296579f86f675d7efe04a66106799</id>
<published>2026-02-24T12:15:24Z</published>
<updated>2026-02-24T12:15:24Z</updated>
<title>refactor(test): avoid deprecated functions #37017</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/5eb1c4df54e296579f86f675d7efe04a66106799.html" />
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<content>commit 5eb1c4df54e296579f86f675d7efe04a66106799
parent 5d6846c389a0ec3ba236537d82853277269268a6
Author: glepnir &lt;glephunter@gmail.com&gt;
Date:   Tue, 24 Feb 2026 20:15:24 +0800

refactor(test): avoid deprecated functions #37017

Problem:
Tests are using some deprecated functions.

Solution:
Replace with command, pcall_err, etc.
</content>
</entry>
<entry>
<id>5d6846c389a0ec3ba236537d82853277269268a6</id>
<published>2026-02-24T08:40:03Z</published>
<updated>2026-02-24T08:40:03Z</updated>
<title>docs: update version.c #37962</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/5d6846c389a0ec3ba236537d82853277269268a6.html" />
<author>
<name>github-actions[bot]</name>
<email>41898282+github-actions[bot]@users.noreply.github.com</email>
</author>
<content>commit 5d6846c389a0ec3ba236537d82853277269268a6
parent d9d8c660fd5559d928c8870a21970a375674e310
Author: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Date:   Tue, 24 Feb 2026 03:40:03 -0500

docs: update version.c #37962

vim-patch:9.1.0001: tests: Test_popup_setbuf() fails
vim-patch:9.2.0018: high cpu usage with Wayland compositor
vim-patch:472f46e23 README.md: mention r/vim and #vim libera
vim-patch:dbd924f6a runtime(syntax-tests): Fail when executable syntax tests are found
vim-patch:70a9273dc Filelist: Fix CI error caused by xdg.vim missing in Filelist
vim-patch:405ba5010 runtime(doctags): remove unused header include file
vim-patch:47eb32fc9 translation(zh): Update menu translation for changed &quot;Sponsor&quot; entry
vim-patch:9.2.0038: Wayland: Not using bool type
vim-patch:a99dcca17 Maintainers: Update MAINTAINERS file
vim-patch:7b7a6f941 Add information for runtime files in the bug template.
vim-patch:9b16aa34b CI: Avoid referencing the unstable ddebs.ubuntu.com/noble-proposed mirror
vim-patch:9.2.0044: Wayland: still performance issues

Co-authored-by: marvim &lt;marvim@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<id>d9d8c660fd5559d928c8870a21970a375674e310</id>
<published>2026-02-23T22:33:13Z</published>
<updated>2026-02-23T22:33:13Z</updated>
<title>fix(watch): invalid joined path #37973</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/d9d8c660fd5559d928c8870a21970a375674e310.html" />
<author>
<name>Oleksandr Chekhovskyi</name>
<email>oleksandr.chekhovskyi@gmail.com</email>
</author>
<content>commit d9d8c660fd5559d928c8870a21970a375674e310
parent b57ed5e94052252207eb524b8cda2ee561b98159
Author: Oleksandr Chekhovskyi &lt;oleksandr.chekhovskyi@gmail.com&gt;
Date:   Tue, 24 Feb 2026 00:33:13 +0200

fix(watch): invalid joined path #37973

Problem:
When vim._watch.watch() is used to watch a single file, libuv returns
the basename as the filename argument in the callback. The code joins
this with the watched path, producing a nonsensical path like
&quot;/path/to/file.lua/file.lua&quot;, which causes ENOTDIR errors on
subsequent fs_stat calls.

Solution:
Check whether the watched path is a directory before joining the
filename. When watching a file, ignore the filename from libuv and
use the watched path directly.
</content>
</entry>
<entry>
<id>b57ed5e94052252207eb524b8cda2ee561b98159</id>
<published>2026-02-23T22:26:27Z</published>
<updated>2026-02-23T22:26:27Z</updated>
<title>refactor(gen): let Hugo build html docs #37972</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/b57ed5e94052252207eb524b8cda2ee561b98159.html" />
<author>
<name>Yochem van Rosmalen</name>
<email>git@yochem.nl</email>
</author>
<content>commit b57ed5e94052252207eb524b8cda2ee561b98159
parent eb90f5d9e3a6615870f9bf0b28e30f6e84ccd6f4
Author: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Date:   Mon, 23 Feb 2026 23:26:27 +0100

refactor(gen): let Hugo build html docs #37972

Problem:
The html and css of the website&#39;s documentation pages are defined in
long strings in gen_help_html.lua, making it hard to maintain and
improve them. E.g. adding in headers that state the documentation is for
nightly Nvim has been a long standing feature request.

Solution:
Move the inlined css and html (e.g. the &lt;head&gt;, &lt;nav&gt;, etc.) to Hugo.

Now that the website is build with Hugo, we can use its templating
system to generate the full html/css from the Tree-sitter tree:
https://github.com/neovim/neovim.github.io/pull/437
</content>
</entry>
<entry>
<id>eb90f5d9e3a6615870f9bf0b28e30f6e84ccd6f4</id>
<published>2026-02-23T19:15:53Z</published>
<updated>2026-02-23T19:15:53Z</updated>
<title>fix(lsp): only resolve LSP configs once (#38007)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/eb90f5d9e3a6615870f9bf0b28e30f6e84ccd6f4.html" />
<author>
<name>Andrew Braxton</name>
<email>andrewcbraxton@gmail.com</email>
</author>
<content>commit eb90f5d9e3a6615870f9bf0b28e30f6e84ccd6f4
parent 4d754d270456673f5fc4a1ece1cd5299cbffb6f0
Author: Andrew Braxton &lt;andrewcbraxton@gmail.com&gt;
Date:   Mon, 23 Feb 2026 14:15:53 -0500

fix(lsp): only resolve LSP configs once (#38007)

`lsp.config[]` resolves an LSP config the first time it is called, and
returns the cached result on subsequent calls.

The change in #37571 added an extra call to `lsp.config[]` which will
resolve the config *before* the server is added to `_enabled_configs`,
meaning the result is discarded. That means configs will be needlessly
resolved again once `lsp_enable_callback` fires for the first time. That
includes an additional `loadfile()` call which is relatively expensive
and can have unexpected side effects.

Avoid this by storing the result of the initial call to `lsp.config[]`
in `_enabled_configs` so the config is not resolved a second time once
`lsp_enable_callback` is called for the first time.
</content>
</entry>
<entry>
<id>4d754d270456673f5fc4a1ece1cd5299cbffb6f0</id>
<published>2026-02-23T17:43:28Z</published>
<updated>2026-02-23T17:43:28Z</updated>
<title>Merge pull request #37265 from bfredl/zigluajit</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/4d754d270456673f5fc4a1ece1cd5299cbffb6f0.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 4d754d270456673f5fc4a1ece1cd5299cbffb6f0
parent 1ec74fa7b1ba6822883a0da921f30f42b63b53cc
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Mon, 23 Feb 2026 18:43:28 +0100

Merge pull request #37265 from bfredl/zigluajit

fix(build): build.zig: use luajit also on windows
</content>
</entry>
<entry>
<id>1ec74fa7b1ba6822883a0da921f30f42b63b53cc</id>
<published>2026-02-23T16:23:46Z</published>
<updated>2026-02-23T16:23:46Z</updated>
<title>fix(api): win_config `border` type #38030</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/1ec74fa7b1ba6822883a0da921f30f42b63b53cc.html" />
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<content>commit 1ec74fa7b1ba6822883a0da921f30f42b63b53cc
parent 32d3dd06504eeb4391e255bb29e38089ed803da9
Author: glepnir &lt;glephunter@gmail.com&gt;
Date:   Tue, 24 Feb 2026 00:23:46 +0800

fix(api): win_config `border` type #38030

Problem: ArrayOf(String) doesn&#39;t cover mixed string/array border chars.

Solution: use Union(Array, Enum(...)) to match parse_border_style behavior.
</content>
</entry>
<entry>
<id>32d3dd06504eeb4391e255bb29e38089ed803da9</id>
<published>2026-02-23T16:22:13Z</published>
<updated>2026-02-23T16:22:13Z</updated>
<title>fix(statusline): broken statusline on error #38000</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/32d3dd06504eeb4391e255bb29e38089ed803da9.html" />
<author>
<name>Sean Dewar</name>
<email>6256228+seandewar@users.noreply.github.com</email>
</author>
<content>commit 32d3dd06504eeb4391e255bb29e38089ed803da9
parent 2478a7fbbdcf2fe971e5a606b0a6b0ba45dee0f7
Author: Sean Dewar &lt;6256228+seandewar@users.noreply.github.com&gt;
Date:   Mon, 23 Feb 2026 16:22:13 +0000

fix(statusline): broken statusline on error #38000

Problem: after #33036, an error from evaluating &#39;statusline&#39; clears it and
doesn&#39;t draw the statusline. (causing glitchy redraws)

Solution: use the default value instead. If &#39;stl&#39; is somehow ever empty, still
call redraw_custom_statusline to at least draw an empty statusline.

Ideally our default &#39;stl&#39; shouldn&#39;t itself error too! :-)
Also adjust some prior screen:expect()s to avoid immediate success warnings.
</content>
</entry>
<entry>
<id>2478a7fbbdcf2fe971e5a606b0a6b0ba45dee0f7</id>
<published>2026-02-23T15:10:20Z</published>
<updated>2026-02-23T15:10:20Z</updated>
<title>docs(api): nvim_open_win &quot;split&quot; with negative &quot;win&quot; #38032</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/2478a7fbbdcf2fe971e5a606b0a6b0ba45dee0f7.html" />
<author>
<name>Sean Dewar</name>
<email>6256228+seandewar@users.noreply.github.com</email>
</author>
<content>commit 2478a7fbbdcf2fe971e5a606b0a6b0ba45dee0f7
parent 374e869504edf4f3f15c06219a78a35365d9c8ae
Author: Sean Dewar &lt;6256228+seandewar@users.noreply.github.com&gt;
Date:   Mon, 23 Feb 2026 15:10:20 +0000

docs(api): nvim_open_win &quot;split&quot; with negative &quot;win&quot; #38032

Acts like :topleft/botright.
</content>
</entry>
<entry>
<id>374e869504edf4f3f15c06219a78a35365d9c8ae</id>
<published>2026-02-23T14:56:41Z</published>
<updated>2026-02-23T14:56:41Z</updated>
<title>build: distclean: remove zig-related dirs #38013</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/374e869504edf4f3f15c06219a78a35365d9c8ae.html" />
<author>
<name>GX</name>
<email>59413576+gx089@users.noreply.github.com</email>
</author>
<content>commit 374e869504edf4f3f15c06219a78a35365d9c8ae
parent 0d13945bbb0e184daa57d12c2c2e9ae624b90db5
Author: GX &lt;59413576+gx089@users.noreply.github.com&gt;
Date:   Mon, 23 Feb 2026 15:56:41 +0100

build: distclean: remove zig-related dirs #38013


</content>
</entry>
<entry>
<id>0d13945bbb0e184daa57d12c2c2e9ae624b90db5</id>
<published>2026-02-23T14:54:35Z</published>
<updated>2026-02-23T14:54:35Z</updated>
<title>feat(messages): drop hardcoded &#39;showmode&#39; delay #38029</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/0d13945bbb0e184daa57d12c2c2e9ae624b90db5.html" />
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<content>commit 0d13945bbb0e184daa57d12c2c2e9ae624b90db5
parent f1490b5fe9fcfec083ddca6fcf16f6df2df107e7
Author: Justin M. Keyes &lt;justinkz@gmail.com&gt;
Date:   Mon, 23 Feb 2026 09:54:35 -0500

feat(messages): drop hardcoded &#39;showmode&#39; delay #38029

Problem:
- Editing a &#39;readonly&#39; file forces a 3-second delay.
- nvim_get_mode waits 3 secs with &#39;showmode&#39; enabled or when there are error messages.

Solution:
Remove the delay for &quot;ui2&quot;, by using `msg_delay`.
</content>
</entry>
<entry>
<id>f1490b5fe9fcfec083ddca6fcf16f6df2df107e7</id>
<published>2026-02-23T13:43:44Z</published>
<updated>2026-02-23T13:43:44Z</updated>
<title>test: don&#39;t test overriding argv[0] using FFI (#38012)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/f1490b5fe9fcfec083ddca6fcf16f6df2df107e7.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit f1490b5fe9fcfec083ddca6fcf16f6df2df107e7
parent c5b8ed870b8ec5c7b1199bce7a31abbda2edbf92
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon, 23 Feb 2026 21:43:44 +0800

test: don&#39;t test overriding argv[0] using FFI (#38012)

Instead, test this by adding a new functionality to shell-test, allowing
reuse in other future tests.
</content>
</entry>
<entry>
<id>8069df2661509f0b0bdf89b293385ea5b4cef7ec</id>
<published>2026-01-06T09:46:42Z</published>
<updated>2026-02-23T09:33:06Z</updated>
<title>fix(build): build.zig: use luajit for windows</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/8069df2661509f0b0bdf89b293385ea5b4cef7ec.html" />
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<content>commit 8069df2661509f0b0bdf89b293385ea5b4cef7ec
parent ce5c7111f4050f168ddf4806287b4c384264b0fa
Author: bfredl &lt;bjorn.linse@gmail.com&gt;
Date:   Tue,  6 Jan 2026 10:46:42 +0100

fix(build): build.zig: use luajit for windows

These were disabled as they failed when tested with cross-compiling,
but it works fine for windows natively on ci, so let&#39;s use that.

mac os builds after disabling debug info, which currently
triggers a bug in zig&#39;s MachO linker: natecraddock/ziglua#191
Tracking issue: https://codeberg.org/ziglang/zig/issues/30669
Unfortunately actually using the JIT of luajit still triggers
issues on mac os, so we cannot use it yet.

Also sync luajit version used via ziglua to a recent one
like we use in cmake, see natecraddock/ziglua#196

</content>
</entry>
<entry>
<id>c5b8ed870b8ec5c7b1199bce7a31abbda2edbf92</id>
<published>2026-02-23T09:18:20Z</published>
<updated>2026-02-23T09:18:20Z</updated>
<title>fix(coverity/644326): NULL ptr deref in socket_address_is_tcp #38010</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/c5b8ed870b8ec5c7b1199bce7a31abbda2edbf92.html" />
<author>
<name>Sathya Pramodh</name>
<email>94102031+sathya-pramodh@users.noreply.github.com</email>
</author>
<content>commit c5b8ed870b8ec5c7b1199bce7a31abbda2edbf92
parent ce5c7111f4050f168ddf4806287b4c384264b0fa
Author: Sathya Pramodh &lt;94102031+sathya-pramodh@users.noreply.github.com&gt;
Date:   Mon, 23 Feb 2026 14:48:20 +0530

fix(coverity/644326): NULL ptr deref in socket_address_is_tcp #38010


</content>
</entry>
<entry>
<id>ce5c7111f4050f168ddf4806287b4c384264b0fa</id>
<published>2026-02-23T08:24:14Z</published>
<updated>2026-02-23T08:24:14Z</updated>
<title>refactor: defer_fn return type #37999</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/ce5c7111f4050f168ddf4806287b4c384264b0fa.html" />
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<content>commit ce5c7111f4050f168ddf4806287b4c384264b0fa
parent 61678811d8d3a26881b455d26acaa50378a659bf
Author: Justin M. Keyes &lt;justinkz@gmail.com&gt;
Date:   Mon, 23 Feb 2026 03:24:14 -0500

refactor: defer_fn return type #37999


</content>
</entry>
<entry>
<id>61678811d8d3a26881b455d26acaa50378a659bf</id>
<published>2026-02-23T08:20:37Z</published>
<updated>2026-02-23T08:20:37Z</updated>
<title>fix(health): check more &quot;old&quot; files #38028</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/61678811d8d3a26881b455d26acaa50378a659bf.html" />
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<content>commit 61678811d8d3a26881b455d26acaa50378a659bf
parent 250d77cce713a55840175a93dfe63ba24b5b15f5
Author: Justin M. Keyes &lt;justinkz@gmail.com&gt;
Date:   Mon, 23 Feb 2026 03:20:37 -0500

fix(health): check more &quot;old&quot; files #38028


</content>
</entry>
<entry>
<id>250d77cce713a55840175a93dfe63ba24b5b15f5</id>
<published>2026-02-23T05:51:37Z</published>
<updated>2026-02-23T05:51:37Z</updated>
<title>test(terminal/scrollback_spec): fix flaky test (#38026)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/250d77cce713a55840175a93dfe63ba24b5b15f5.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 250d77cce713a55840175a93dfe63ba24b5b15f5
parent 97509aa2be00b366f10fa4e97506e7b96d514345
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon, 23 Feb 2026 13:51:37 +0800

test(terminal/scrollback_spec): fix flaky test (#38026)

When using feed_data() with hidden buffer, terminal refresh may arrive
during may_restore_curbuf(), causing &quot;last cursor&quot; positions to change.
Get the two &quot;last cursor&quot; positions in the same RPC call.
</content>
</entry>
<entry>
<id>97509aa2be00b366f10fa4e97506e7b96d514345</id>
<published>2026-02-23T04:28:17Z</published>
<updated>2026-02-23T04:28:17Z</updated>
<title>fix(process): handle poll() interrupted by a signal (#38024)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/97509aa2be00b366f10fa4e97506e7b96d514345.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 97509aa2be00b366f10fa4e97506e7b96d514345
parent ec24746406c4f02a6933e046a87b72d5129042a9
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon, 23 Feb 2026 12:28:17 +0800

fix(process): handle poll() interrupted by a signal (#38024)

It is indeed possible that a signal may arrive during flush_stream()
(e.g. SIGCHLD from another child process), so poll() again on EINTR.

Fixes the following Coverity warning:
_____________________________________________________________________________________________
*** CID 644345:         Error handling issues  (CHECKED_RETURN)
/src/nvim/event/proc.c: 405             in flush_stream()
399
400     #ifdef __linux__
401         // On Linux, libuv&#39;s polling (which uses epoll) doesn&#39;t flush PTY master&#39;s pending
402         // work on kernel workqueue, so use an explcit poll() before that. #37982
403         if (proc-&gt;type == kProcTypePty &amp;&amp; !stream-&gt;did_eof) {
404           struct pollfd pollfd = { .fd = ((PtyProc *)proc)-&gt;tty_fd, .events = POLLIN };
&gt;&gt;&gt;     CID 644345:         Error handling issues  (CHECKED_RETURN)
&gt;&gt;&gt;     Calling &quot;poll(&amp;pollfd, 1UL, 0)&quot; without checking return value. This library function may fail and return an error code.
405           poll(&amp;pollfd, 1, 0);
406         }
407     #endif
408         // Poll for data and process the generated events.
409         loop_poll_events(proc-&gt;loop, 0);
410         if (stream-&gt;s.events) {

Another possible error is ENOMEM, which is probably not worth handling.
For reference, #23308 previously removed a case of ENOMEM handling, and
this PR also removes an outdated mention of that.

Also reduce the number of #ifdefs in non-OS-specific files.
</content>
</entry>
<entry>
<id>ec24746406c4f02a6933e046a87b72d5129042a9</id>
<published>2026-02-23T04:26:38Z</published>
<updated>2026-02-23T04:26:38Z</updated>
<title>test(core/channels_spec): fix flaky test (#38025)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/ec24746406c4f02a6933e046a87b72d5129042a9.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit ec24746406c4f02a6933e046a87b72d5129042a9
parent 1b013adff3e01c87ff1e165a9e9380fc9ee47d40
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon, 23 Feb 2026 12:26:38 +0800

test(core/channels_spec): fix flaky test (#38025)

If the last nvim_eval arrives on RPC channel before rpc_close_event() is
processed, it will be scheduled immediately after rpc_close_event() and
before free_channel_event(), causing the test to fail.
</content>
</entry>
<entry>
<id>1b013adff3e01c87ff1e165a9e9380fc9ee47d40</id>
<published>2026-02-23T01:48:15Z</published>
<updated>2026-02-23T01:48:15Z</updated>
<title>test(terminal/channel_spec): fix flaky test (#38023)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/1b013adff3e01c87ff1e165a9e9380fc9ee47d40.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 1b013adff3e01c87ff1e165a9e9380fc9ee47d40
parent 14fe370564367ef4d600d3179e15fc269b0183c5
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon, 23 Feb 2026 09:48:15 +0800

test(terminal/channel_spec): fix flaky test (#38023)

Adding input doesn&#39;t help here, as the important part here is processing
main_loop.events, not running the main loop. Instead, use a non-fast API
request to ensure that previously queued events are processed.
</content>
</entry>
<entry>
<id>14fe370564367ef4d600d3179e15fc269b0183c5</id>
<published>2026-02-23T00:00:26Z</published>
<updated>2026-02-23T00:00:26Z</updated>
<title>fix(logging): don&#39;t overwrite NameBuff (#38004)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/14fe370564367ef4d600d3179e15fc269b0183c5.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 14fe370564367ef4d600d3179e15fc269b0183c5
parent 8a4719e117445eadab24bb1a0b1811445a5f79c2
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon, 23 Feb 2026 08:00:26 +0800

fix(logging): don&#39;t overwrite NameBuff (#38004)


</content>
</entry>
<entry>
<id>8a4719e117445eadab24bb1a0b1811445a5f79c2</id>
<published>2026-02-22T23:15:38Z</published>
<updated>2026-02-22T23:15:38Z</updated>
<title>fix(process): use poll() to drain PTY master on Linux (#38005)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/8a4719e117445eadab24bb1a0b1811445a5f79c2.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 8a4719e117445eadab24bb1a0b1811445a5f79c2
parent f90cd620c56b7e03337ec166fe5dfe298f1d2e11
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Mon, 23 Feb 2026 07:15:38 +0800

fix(process): use poll() to drain PTY master on Linux (#38005)

On Linux, libuv&#39;s polling (which uses epoll) doesn&#39;t flush PTY master&#39;s
pending work on kernel workqueue, so use an explicit poll() before that.
</content>
</entry>
<entry>
<id>f90cd620c56b7e03337ec166fe5dfe298f1d2e11</id>
<published>2026-02-22T19:43:32Z</published>
<updated>2026-02-22T19:43:32Z</updated>
<title>fix(lsp): vim.lsp.completion clean up triggers on client detach (#38009)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/f90cd620c56b7e03337ec166fe5dfe298f1d2e11.html" />
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<content>commit f90cd620c56b7e03337ec166fe5dfe298f1d2e11
parent 3f4ef487da80da73f4943d81fb8549c9de70f55f
Author: glepnir &lt;glephunter@gmail.com&gt;
Date:   Mon, 23 Feb 2026 03:43:32 +0800

fix(lsp): vim.lsp.completion clean up triggers on client detach (#38009)

Problem: LspDetach didn&#39;t clean up stale client refs in triggers table.

Solution: create LspDetach autocmd and call disable_completion.
</content>
</entry>
<entry>
<id>3f4ef487da80da73f4943d81fb8549c9de70f55f</id>
<published>2026-02-22T00:13:15Z</published>
<updated>2026-02-22T00:13:15Z</updated>
<title>vim-patch:9.2.0040: completion: preinsert wrong with register completion (#38003)</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/3f4ef487da80da73f4943d81fb8549c9de70f55f.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 3f4ef487da80da73f4943d81fb8549c9de70f55f
parent 940d5c239b088fe0e994a220b4d524ddb44760e9
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sun, 22 Feb 2026 08:13:15 +0800

vim-patch:9.2.0040: completion: preinsert wrong with register completion (#38003)

Problem:  completion: preinsert wrong with register completion
Solution: Remove preinserted text during register content insertion
          (Girish Palya).

fixes:  vim/vim#19329
closes: vim/vim#19474

https://github.com/vim/vim/commit/3684ad83d16514c98ef379f76b55815db43bed8b

Co-authored-by: Girish Palya &lt;girishji@gmail.com&gt;
</content>
</entry>
<entry>
<id>940d5c239b088fe0e994a220b4d524ddb44760e9</id>
<published>2026-02-21T23:43:59Z</published>
<updated>2026-02-21T23:43:59Z</updated>
<title>Merge pull request #37991 from zeertzjq/vim-9.2.0031</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/940d5c239b088fe0e994a220b4d524ddb44760e9.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit 940d5c239b088fe0e994a220b4d524ddb44760e9
parent 9aa936d8929161cba360788c2f9d67b263c8d0b6
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sun, 22 Feb 2026 07:43:59 +0800

Merge pull request #37991 from zeertzjq/vim-9.2.0031

vim-patch:9.2.{0031,0041}: Inefficient use of ga_concat()
</content>
</entry>
<entry>
<id>b775c722dd4f50fd0dae32cd4cbf1af7b02ecf27</id>
<published>2026-02-21T23:03:29Z</published>
<updated>2026-02-21T23:10:58Z</updated>
<title>vim-patch:9.2.0041: Not always using GA_CONCAT_LITERAL</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/b775c722dd4f50fd0dae32cd4cbf1af7b02ecf27.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit b775c722dd4f50fd0dae32cd4cbf1af7b02ecf27
parent b3a3028fd9bb32ba398680673fee0770564dcd05
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sun, 22 Feb 2026 07:03:29 +0800

vim-patch:9.2.0041: Not always using GA_CONCAT_LITERAL

Problem:  Not always using GA_CONCAT_LITERAL with string literals.
          (after: v9.2.0031)
Solution: Use the GA_CONCAT_LITERAL, instead of ga_concat_len.
          (John Marriott)

closes: vim/vim#19468

https://github.com/vim/vim/commit/fc90d8087adc607ee92262f43b8c8c0ec17dbb86

Co-authored-by: John Marriott &lt;basilisk@internode.on.net&gt;

</content>
</entry>
<entry>
<id>b3a3028fd9bb32ba398680673fee0770564dcd05</id>
<published>2026-02-20T22:32:20Z</published>
<updated>2026-02-21T23:02:47Z</updated>
<title>vim-patch:9.2.0031: Inefficient use of ga_concat()</title>
<link rel="alternate" type="text/html" href="https://git.dasho.dev/neovim/commit/b3a3028fd9bb32ba398680673fee0770564dcd05.html" />
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<content>commit b3a3028fd9bb32ba398680673fee0770564dcd05
parent 9aa936d8929161cba360788c2f9d67b263c8d0b6
Author: zeertzjq &lt;zeertzjq@outlook.com&gt;
Date:   Sat, 21 Feb 2026 06:32:20 +0800

vim-patch:9.2.0031: Inefficient use of ga_concat()

Problem:  Inefficient use of ga_concat()
Solution: Use ga_concat_len() when the length is already known to avoid
          use of strlen() (John Marriott).

closes: vim/vim#19422

https://github.com/vim/vim/commit/ed202035b1904c84d92adb76d7e1a95b7540e048

Co-authored-by: John Marriott &lt;basilisk@internode.on.net&gt;
Co-authored-by: Hirohito Higashi &lt;h.east.727@gmail.com&gt;

</content>
</entry>
</feed>
