<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime/lua/vim/_extui/cmdline.lua, branch master</title>
<subtitle>Vim-fork focused on extensibility and usability</subtitle>
<id>http://git.waynecole.info/neovim/atom?h=master</id>
<link rel='self' href='http://git.waynecole.info/neovim/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/'/>
<updated>2026-02-05T12:45:45Z</updated>
<entry>
<title>refactor: rename _extui =&gt; _core.ui2 #37692</title>
<updated>2026-02-05T12:45:45Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2026-02-05T12:45:45Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=bf68ba40a03a19c97454ede293ed289c547b5aaa'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>fix(ui2): don't adjust dialog pos for pum wildmenu (#37695)</title>
<updated>2026-02-04T12:15:34Z</updated>
<author>
<name>Sean Dewar</name>
<email>6256228+seandewar@users.noreply.github.com</email>
</author>
<published>2026-02-04T12:15:34Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=9655bd560f6cce646e77e6ba1f75e7c08462fdf3'/>
<id>urn:sha1:9655bd560f6cce646e77e6ba1f75e7c08462fdf3</id>
<content type='text'>
Problem:  Dialog position unnecessarily adjusted for pum wildmenu.
Solution: Apply no offset if the pum is visible.</content>
</entry>
<entry>
<title>fix(ui2): wildmenu hidden behind dialog window #37684</title>
<updated>2026-02-03T13:17:33Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2026-02-03T13:17:33Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=3038f0191e9d7d681a1b6a936ed452b85815a247'/>
<id>urn:sha1:3038f0191e9d7d681a1b6a936ed452b85815a247</id>
<content type='text'>
Problem:  The wildmenu is hidden behind the dialog window with "list" in 'wildmode'.
          Global ('laststatus' set to 3) statusline is hidden behind the
          pager window.
Solution: Check wildmenumode() to adjust the dialog position when necessary.
          Ensure pager is positioned above the global statusline with 'laststus' set to 3.</content>
</entry>
<entry>
<title>fix(ui2): start treesitter after deleting cmdline buffer (#36274)</title>
<updated>2025-10-22T14:16:36Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-10-22T14:16:36Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=c94b7b93c0d9f843be6b68db9dee0a0297060af4'/>
<id>urn:sha1:c94b7b93c0d9f843be6b68db9dee0a0297060af4</id>
<content type='text'>
Problem:  Treesitter is not started in new cmdline buffer after deletion.
Solution: Start treesitter when highlighter buffer no longer matches.</content>
</entry>
<entry>
<title>fix(extui): error on :call input('') (#35515)</title>
<updated>2025-08-27T15:12:17Z</updated>
<author>
<name>phanium</name>
<email>91544758+phanen@users.noreply.github.com</email>
</author>
<published>2025-08-27T15:12:17Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=cd7cf4bd16e79f3b8b28a8a86580d45b3cd151d4'/>
<id>urn:sha1:cd7cf4bd16e79f3b8b28a8a86580d45b3cd151d4</id>
<content type='text'>
Problem:  Error on empty string prompt.
Solution: (prompt .. '\n'):gmatch('(.-)\n').</content>
</entry>
<entry>
<title>feat(extui): support paging in the dialog window (#35310)</title>
<updated>2025-08-21T12:56:59Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-08-21T12:56:59Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=94677318655eb803fccef4409834b6b77e11282a'/>
<id>urn:sha1:94677318655eb803fccef4409834b6b77e11282a</id>
<content type='text'>
Problem:  Unable to see e.g. `inputlist()` prompts that exceed the dialog
          window height.
          Multi-line prompts are not handled properly, and tracking
          is insufficient for messages in cmdline_block mode.
Solution: Add vim.on_key handler while the dialog window is open that
          forwards paging keys to the window.
          Properly render multi-line prompts. Keep track of both the start
          and end of the current cmdline prompt. Append messages after the
          current prompt in cmdline_block mode.</content>
</entry>
<entry>
<title>feat(extui): don't enter pager for routed message #34679</title>
<updated>2025-06-27T19:13:01Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-06-27T19:13:01Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=f2988e05db451099645e32a427d5aaf4cae53bb4'/>
<id>urn:sha1:f2988e05db451099645e32a427d5aaf4cae53bb4</id>
<content type='text'>
Problem:  Messages routed to the pager to be shown in full, enter the
          pager automatically, yielding another "press-q-prompt".

Solution: Only enter the pager when requested explicitly. Otherwise,
          close the pager on the next typed mapping, unless that mapping
          entered the pager.</content>
</entry>
<entry>
<title>perf(extui): delay creating windows, buffers and parser (#34665)</title>
<updated>2025-06-27T13:54:32Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-06-27T13:54:32Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=bfe42c84de053abe125f7a61116bc8a97ec32cde'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>feat(ui): emit "msg_clear" event after clearing the screen (#34035)</title>
<updated>2025-06-26T22:27:21Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-06-26T22:27:21Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=2b4c1127ad1c8cff38f562d71f411c35ec6ba8d6'/>
<id>urn:sha1:2b4c1127ad1c8cff38f562d71f411c35ec6ba8d6</id>
<content type='text'>
Problem:  ext_messages cannot tell when the screen was cleared, which is
          needed to clear visible messages. An empty message is also
          never emitted, but clears messages from the message grid.
Solution: Repurpose the "msg_clear" event to be emitted when the screen
          was cleared. Emit an empty message with the `empty` kind to
          hint to a UI to clear the cmdline area.</content>
</entry>
<entry>
<title>fix(extui): clear cmdline buffer for first message (#34490)</title>
<updated>2025-06-15T10:55:01Z</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-06-15T10:55:01Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=5046ef4c8f8d738d90b220cf9a2e2a692bd266ba'/>
<id>urn:sha1: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>
</entry>
</feed>
