<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/nvim/event, branch userregs_2</title>
<subtitle>Neovim fork with Rahm's personal hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/'/>
<entry>
<title>fix(mswin): UI may hang on exit</title>
<updated>2025-03-25T14:14:28+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-03-24T17:24:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=d32780de4daff2351d7c2605ea6ba318f88fac2f'/>
<id>d32780de4daff2351d7c2605ea6ba318f88fac2f</id>
<content type='text'>
Problem:
On Windows, since b360c0608556, UI may hang on exit. #33019

Solution:
Restore the hack in on_proc_exit, until we can figure out why rpc_close
is not called in the UI client when the server closes the channel.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
On Windows, since b360c0608556, UI may hang on exit. #33019

Solution:
Restore the hack in on_proc_exit, until we can figure out why rpc_close
is not called in the UI client when the server closes the channel.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(channel): redundant channel_close()</title>
<updated>2025-03-24T16:38:34+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-03-24T16:38:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e73a3f1edc3ea9fe990a58f4269269c2d51fcff8'/>
<id>e73a3f1edc3ea9fe990a58f4269269c2d51fcff8</id>
<content type='text'>
Problem:
`receive_msgpack()` calls `channel_close()` just before calling
`chan_close_on_err()`, even though `chan_close_on_err()` always calls
`channel_close()`.

Solution:
Remove the redunant `channel_close()` in `receive_msgpack()`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
`receive_msgpack()` calls `channel_close()` just before calling
`chan_close_on_err()`, even though `chan_close_on_err()` always calls
`channel_close()`.

Solution:
Remove the redunant `channel_close()` in `receive_msgpack()`.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(multiqueue): rename multiqueue_new_parent #32767</title>
<updated>2025-03-08T20:28:15+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-03-08T20:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=05b9daa1e6e8d045f691b74441ebbc01f69a56aa'/>
<id>05b9daa1e6e8d045f691b74441ebbc01f69a56aa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(terminal): avoid rescheduling events onto the same queue (#32755)</title>
<updated>2025-03-07T18:16:39+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2025-03-07T18:16:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=3d49c55d3c33a243f4236cf57b179608c288b145'/>
<id>3d49c55d3c33a243f4236cf57b179608c288b145</id>
<content type='text'>
Problem:

When a function like vim.wait() is used, we continuously drain the main
event queue until it is empty, never stopping for user input. This means
the libuv timer never runs and the terminal never gets refreshed, so
emit_termrequest continously reschedules itself onto the same event
queue, causing an infinite loop.

Solution:

Use a separate "pending" event queue, where events that require a
terminal refresh are temporarily placed. Drain this queue after a
terminal refresh and events are copied back onto the main queue. This
prevents infinite loops since the main event queue will always be able
to properly drain.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:

When a function like vim.wait() is used, we continuously drain the main
event queue until it is empty, never stopping for user input. This means
the libuv timer never runs and the terminal never gets refreshed, so
emit_termrequest continously reschedules itself onto the same event
queue, causing an infinite loop.

Solution:

Use a separate "pending" event queue, where events that require a
terminal refresh are temporarily placed. Drain this queue after a
terminal refresh and events are copied back onto the main queue. This
prevents infinite loops since the main event queue will always be able
to properly drain.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(channel): eliminate special case in on_proc_exit() #32485</title>
<updated>2025-02-17T10:26:19+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-02-17T10:26:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b360c0608556232c8ddb7ecc9cd26e68584bee76'/>
<id>b360c0608556232c8ddb7ecc9cd26e68584bee76</id>
<content type='text'>
Problem:
on_proc_exit() has a special-case that assumes that the UI client will
never spawn more than 1 child process.

Solution:
If the Nvim server exits, the stream EOF will trigger `rpc_close()` in
the UI client, so we don't need the special case in `on_proc_exit`.
Pass `Channel.exit_status` from `rpc_close()` so that the correct exit
code is reflected.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
on_proc_exit() has a special-case that assumes that the UI client will
never spawn more than 1 child process.

Solution:
If the Nvim server exits, the stream EOF will trigger `rpc_close()` in
the UI client, so we don't need the special case in `on_proc_exit`.
Pass `Channel.exit_status` from `rpc_close()` so that the correct exit
code is reflected.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ui): Windows :detach is opt-in</title>
<updated>2025-02-10T17:56:11+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-02-10T10:55:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a1906c23ddab6fa4d15bc5ceddee97df8034d8cb'/>
<id>a1906c23ddab6fa4d15bc5ceddee97df8034d8cb</id>
<content type='text'>
Problem:
On Windows, spawning the `nvim --embed` server with `detach=true` breaks
various `tt.setup_child_nvim` tests.

Solution:
Make this behavior opt-in with an env var, temporarily.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
On Windows, spawning the `nvim --embed` server with `detach=true` breaks
various `tt.setup_child_nvim` tests.

Solution:
Make this behavior opt-in with an env var, temporarily.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(ui): UI :detach command</title>
<updated>2025-02-10T17:56:11+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-02-09T21:04:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4b0e2605eaf90268195029a29f10903dc82729e7'/>
<id>4b0e2605eaf90268195029a29f10903dc82729e7</id>
<content type='text'>
Problem:
Cannot detach the current UI.

Solution:
- Introduce `:detach`.
- Introduce `Channel.detach`.

Co-authored-by: bfredl &lt;bjorn.linse@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Cannot detach the current UI.

Solution:
- Introduce `:detach`.
- Introduce `Channel.detach`.

Co-authored-by: bfredl &lt;bjorn.linse@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: misc</title>
<updated>2025-01-30T12:46:06+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2025-01-13T14:48:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e71d2c817d1a2475551f58a98e411f6b39a5be3f'/>
<id>e71d2c817d1a2475551f58a98e411f6b39a5be3f</id>
<content type='text'>
Co-authored-by: Dustin S. &lt;dstackmasta27@gmail.com&gt;
Co-authored-by: Ferenc Fejes &lt;fejes@inf.elte.hu&gt;
Co-authored-by: Maria José Solano &lt;majosolano99@gmail.com&gt;
Co-authored-by: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Co-authored-by: brianhuster &lt;phambinhanctb2004@gmail.com&gt;
Co-authored-by: zeertzjq &lt;zeertzjq@outlook.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Dustin S. &lt;dstackmasta27@gmail.com&gt;
Co-authored-by: Ferenc Fejes &lt;fejes@inf.elte.hu&gt;
Co-authored-by: Maria José Solano &lt;majosolano99@gmail.com&gt;
Co-authored-by: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Co-authored-by: brianhuster &lt;phambinhanctb2004@gmail.com&gt;
Co-authored-by: zeertzjq &lt;zeertzjq@outlook.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: fix lint error on macos</title>
<updated>2025-01-15T17:54:08+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2025-01-15T17:18:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=7c652242579b6f734b57de106afbe1d5c32ed2fd'/>
<id>7c652242579b6f734b57de106afbe1d5c32ed2fd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(messages): add :!cmd shell message kinds</title>
<updated>2025-01-15T09:51:52+00:00</updated>
<author>
<name>Luuk van Baal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-01-14T11:05:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=5bae80899d9d29d80c129ca92cde75a1583b5efe'/>
<id>5bae80899d9d29d80c129ca92cde75a1583b5efe</id>
<content type='text'>
Also print stderr error messages with ErrorMsg highlight group.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also print stderr error messages with ErrorMsg highlight group.
</pre>
</div>
</content>
</entry>
</feed>
