<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/runtime/lua/vim/_extui.lua, branch master</title>
<subtitle>Neovim fork with Rahm's personal hacks.</subtitle>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/'/>
<entry>
<title>refactor: rename _extui =&gt; _core.ui2 #37692</title>
<updated>2026-02-05T12:45:45+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2026-02-05T12:45:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=bf68ba40a03a19c97454ede293ed289c547b5aaa'/>
<id>bf68ba40a03a19c97454ede293ed289c547b5aaa</id>
<content type='text'>
Problem:
_extui module name is confusing and should eventually end up in _core/.

Solution:
Move it there and name it ui2.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
_extui module name is confusing and should eventually end up in _core/.

Solution:
Move it there and name it ui2.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ui): only internal messages are unsafe #37462</title>
<updated>2026-01-26T23:18:51+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2026-01-26T23:18:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d30d91f3a49e19e61473b74e42adf68e9215220d'/>
<id>d30d91f3a49e19e61473b74e42adf68e9215220d</id>
<content type='text'>
Problem:  Fast context for msg_show event inhibits vim.ui_attach from
          displaying a stream of messages from a single command.

Solution: Remove fast context from msg_show events emitted as a result
          of explicit API/command calls. The fast context was originally
          introduced to prevent issues with internal messages.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Fast context for msg_show event inhibits vim.ui_attach from
          displaying a stream of messages from a single command.

Solution: Remove fast context from msg_show events emitted as a result
          of explicit API/command calls. The fast context was originally
          introduced to prevent issues with internal messages.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ui2): only redraw when necessary #36457</title>
<updated>2025-11-17T18:34:02+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-11-17T18:34:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=c4ac36bfd9bc9826dde01839d10d0e65a7b3c9e2'/>
<id>c4ac36bfd9bc9826dde01839d10d0e65a7b3c9e2</id>
<content type='text'>
Problem:  Until now the UI callback called nvim__redraw() liberally.
          It should only be needed when Nvim does not update the screen
          in its own event loop.
Solution: Identify which UI events require immediate redrawing.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Until now the UI callback called nvim__redraw() liberally.
          It should only be needed when Nvim does not update the screen
          in its own event loop.
Solution: Identify which UI events require immediate redrawing.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ui): cmdline_show is not fired after clearing the screen (#36451)</title>
<updated>2025-11-08T10:38:56+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-11-08T10:38:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=8d6963a6a0f083350549d259606c388ae07b266f'/>
<id>8d6963a6a0f083350549d259606c388ae07b266f</id>
<content type='text'>
Problem:  Resize events during startup may clear an active external
          cmdline, which is then not redrawn.
          UI2 VimResized autocommand does not work.
          UI2 message appearance may be altered by inherited window
          options. The message separator uses the wrong fillchar.

Solution: Unset cmdline_was_last_redrawn when clearing the screen, such
          that cmdline_show is re-emitted.
          Ensure set_pos function is called without arguments.
          Ensure such options are unset. Use 'fillchars'-&gt;msgsep.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Resize events during startup may clear an active external
          cmdline, which is then not redrawn.
          UI2 VimResized autocommand does not work.
          UI2 message appearance may be altered by inherited window
          options. The message separator uses the wrong fillchar.

Solution: Unset cmdline_was_last_redrawn when clearing the screen, such
          that cmdline_show is re-emitted.
          Ensure set_pos function is called without arguments.
          Ensure such options are unset. Use 'fillchars'-&gt;msgsep.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(extui): check if buffers/windows exist before deleting (#34886)</title>
<updated>2025-07-11T15:31:30+00:00</updated>
<author>
<name>Tomasz N</name>
<email>przepompownia@users.noreply.github.com</email>
</author>
<published>2025-07-11T15:31:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=9e968635efc47eef09588847914190b4b64f008c'/>
<id>9e968635efc47eef09588847914190b4b64f008c</id>
<content type='text'>
Problem: Disabling vim._extui may try to delete non-existent windows/buffers.
Solution: Check that window/buffer is valid before deleting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Disabling vim._extui may try to delete non-existent windows/buffers.
Solution: Check that window/buffer is valid before deleting.</pre>
</div>
</content>
</entry>
<entry>
<title>test(ui/{cmdline,message}2_spec): reduce flakiness/runtime #34875</title>
<updated>2025-07-11T00:52:50+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-07-11T00:52:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=54cde0674b41ffd84a97b8e8f93167c00ef26c96'/>
<id>54cde0674b41ffd84a97b8e8f93167c00ef26c96</id>
<content type='text'>
Problem:  Storing the configured 'cmdheight' value is scheduled and
          may happen after cmdline2_spec already entered block_mode.
          Excessive wait time for expected screen state due to delayed
          ruler after an error message.
Solution: Only schedule storing the user configured 'cmdheight' if
          v:vim_did_enter is unset. Use regular message instead of error.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Storing the configured 'cmdheight' value is scheduled and
          may happen after cmdline2_spec already entered block_mode.
          Excessive wait time for expected screen state due to delayed
          ruler after an error message.
Solution: Only schedule storing the user configured 'cmdheight' if
          v:vim_did_enter is unset. Use regular message instead of error.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(extui): use winborder for msg window #34859</title>
<updated>2025-07-10T00:42:47+00:00</updated>
<author>
<name>Sebastian Lyng Johansen</name>
<email>sebastian@lyngjohansen.com</email>
</author>
<published>2025-07-10T00:42:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=7526fb449de39afb786a1a68365230996551b5c5'/>
<id>7526fb449de39afb786a1a68365230996551b5c5</id>
<content type='text'>
Problem:  The message window is essentially a regular floating window
          but does not use 'winborder'.
          Still some "scratch" buffer options unset after it was removed
          from its window.
Solution: Do not set the border when opening the window message.
          Forego passing `scratch = true` when opening a buffer,
          set the options manually when necessary.

Co-authored-by: Luuk van Baal &lt;luukvbaal@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  The message window is essentially a regular floating window
          but does not use 'winborder'.
          Still some "scratch" buffer options unset after it was removed
          from its window.
Solution: Do not set the border when opening the window message.
          Forego passing `scratch = true` when opening a buffer,
          set the options manually when necessary.

Co-authored-by: Luuk van Baal &lt;luukvbaal@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>perf(extui): delay creating windows, buffers and parser (#34665)</title>
<updated>2025-06-27T13:54:32+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-06-27T13:54:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=bfe42c84de053abe125f7a61116bc8a97ec32cde'/>
<id>bfe42c84de053abe125f7a61116bc8a97ec32cde</id>
<content type='text'>
Problem:  vim._extui unconditionally creates windows, buffers and the
          Vimscript cmdline highlighter when it is first loaded.
Solution: Schedule first creation of the window so that first redraw
          happens sooner (still need to create at least the cmdline
          window asap as it can have a different highlight through
          hl-MsgArea; thus further delaying until the first event that
          needs a particular target seems redundant). Load the cmdline
          highlighter on the first cmdline_show event.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  vim._extui unconditionally creates windows, buffers and the
          Vimscript cmdline highlighter when it is first loaded.
Solution: Schedule first creation of the window so that first redraw
          happens sooner (still need to create at least the cmdline
          window asap as it can have a different highlight through
          hl-MsgArea; thus further delaying until the first event that
          needs a particular target seems redundant). Load the cmdline
          highlighter on the first cmdline_show event.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(extui): clear cmdline buffer for first message (#34490)</title>
<updated>2025-06-15T10:55:01+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-06-15T10:55:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=5046ef4c8f8d738d90b220cf9a2e2a692bd266ba'/>
<id>5046ef4c8f8d738d90b220cf9a2e2a692bd266ba</id>
<content type='text'>
Problem:  Cmdline buffer is not cleared for a new message (since c973c7ae),
          resulting in an incorrect spill indicator. When the cmdline
          buffer is cleared, "msg_row" is not invalidated, resulting in
          an error. The extui module is untested.
          Return value of `vim.ui_attach()-&gt;callback` is undocumented.
Solution: Clear the cmdline buffer for the first message in an event
          loop iteration. Ensure msg_row passed as end_row does not
          exceed buffer length.
          Add `messages_spec2.lua` to test the extui module, keeping in
          mind that test coverage will greatly increase if this UI is made
          the default. As such, only tests for specific extui functionality
          unlikely to be covered by tests leveraging the current message grid.
          Document the return value of `vim.ui_attach()-&gt;callback`, it seems
          to make sense, and is also used to suppress remote UI events in
          `messages_spec2.lua`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Cmdline buffer is not cleared for a new message (since c973c7ae),
          resulting in an incorrect spill indicator. When the cmdline
          buffer is cleared, "msg_row" is not invalidated, resulting in
          an error. The extui module is untested.
          Return value of `vim.ui_attach()-&gt;callback` is undocumented.
Solution: Clear the cmdline buffer for the first message in an event
          loop iteration. Ensure msg_row passed as end_row does not
          exceed buffer length.
          Add `messages_spec2.lua` to test the extui module, keeping in
          mind that test coverage will greatly increase if this UI is made
          the default. As such, only tests for specific extui functionality
          unlikely to be covered by tests leveraging the current message grid.
          Document the return value of `vim.ui_attach()-&gt;callback`, it seems
          to make sense, and is also used to suppress remote UI events in
          `messages_spec2.lua`.</pre>
</div>
</content>
</entry>
<entry>
<title>docs(extui): rename box-&gt;msg, more-&gt;pager, prompt-&gt;dialog</title>
<updated>2025-06-13T12:28:01+00:00</updated>
<author>
<name>Luuk van Baal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-06-10T15:12:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=9ec6c19c674f959765956b54c8f5ef9a43c07e12'/>
<id>9ec6c19c674f959765956b54c8f5ef9a43c07e12</id>
<content type='text'>
Includes breaking changes to the `opts` layout. "box" doesn't really
describe anything other than a floating window so was an unwanted synonym.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Includes breaking changes to the `opts` layout. "box" doesn't really
describe anything other than a floating window so was an unwanted synonym.
</pre>
</div>
</content>
</entry>
</feed>
