<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime/lua/vim/_core/server.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-04-22T17:40:41Z</updated>
<entry>
<title>feat(:restart): v:starttime, v:exitreason #39282</title>
<updated>2026-04-22T17:40:41Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-22T17:40:41Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=28ba06837281e14a7dc5ade143642d11475d2823'/>
<id>urn:sha1:28ba06837281e14a7dc5ade143642d11475d2823</id>
<content type='text'>
Problem:
- The `ZR` feature makes it more obvious that we need some sort of flag so that
  an `ExitPre` / `QuitPre` / `VimLeave` handler can handle restarts differently
  than a normal exit. For example, it's common that users want `:mksession` on
  restart, but perhaps not on a normal exit.
- Nvim has no way to report its "uptime".

Solution:
- Introduce `v:starttime`
- Introduce `v:exitreason`</content>
</entry>
<entry>
<title>fix(:restart): avoid ERR/WRN logging on Windows with --listen (#39287)</title>
<updated>2026-04-22T00:12:55Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-04-22T00:12:55Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=208951cbc0ccf05b78edbaa10cfa00175e84f864'/>
<id>urn:sha1:208951cbc0ccf05b78edbaa10cfa00175e84f864</id>
<content type='text'>
Problem:  :restart leads to ERR/WRN logging on Windows with --listen.
Solution: Add a log_level flag to vim._with() and use it to suppress
          logging from serverstart()/serverstop() during restart.</content>
</entry>
<entry>
<title>fix(:restart): reuse --listen addr on Windows #38539</title>
<updated>2026-04-21T16:49:16Z</updated>
<author>
<name>Sanzhar Kuandyk</name>
<email>92693103+SanzharKuandyk@users.noreply.github.com</email>
</author>
<published>2026-04-21T16:49:16Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=5891f2f3dc41eda44c0072d726cf95e54aba85ad'/>
<id>urn:sha1:5891f2f3dc41eda44c0072d726cf95e54aba85ad</id>
<content type='text'>
Problem:
On Windows, :restart cannot immediately reuse the canonical --listen
address because named pipe release is asynchronous.

Solution:
Start the new Nvim server on a temporary address; in the new Nvim,
retry serverstart() with the original ("canonical") address until it
succeeds.</content>
</entry>
<entry>
<title>feat(vimfn): use Lua for more excmds/vimfns</title>
<updated>2026-04-18T14:57:37Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-17T16:14:14Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=3ebfa2a3cbbed848667fe26c16973ce7e43a04e4'/>
<id>urn:sha1:3ebfa2a3cbbed848667fe26c16973ce7e43a04e4</id>
<content type='text'>
Problem:
Too much boilerplate needed to use Lua to impl an excmd or f_xx
function.

Solution:
- Add `nlua_call_vimfn` which takes the args typval, executes
  Lua, and returns a typval.
- refactor(excmd): lua impl for :log, :lsp
</content>
</entry>
<entry>
<title>build: ship "_core/*" as bytecode (built-into Nvim binary)</title>
<updated>2025-12-30T06:44:24Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-08-29T03:43:10Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=20e77c5d886af54d1f7b6844cffc11129f579ad9'/>
<id>urn:sha1:20e77c5d886af54d1f7b6844cffc11129f579ad9</id>
<content type='text'>
Problem:
We want to encourage implementing core features in Lua instead of C, but
it's clumsy because:
- Core Lua code (built into `nvim` so it is available even if VIMRUNTIME
  is missing/invalid) requires manually updating CMakeLists.txt, or
  stuffing it into `_editor.lua`.
- Core Lua modules are not organized similar to C modules, `_editor.lua`
  is getting too big.

Solution:
- Introduce `_core/` where core Lua code can live. All Lua modules added
  there will automatically be included as bytecode in the `nvim` binary.
- Move these core modules into `_core/*`:
  ```
  _defaults.lua
  _editor.lua
  _options.lua
  _system.lua
  shared.lua
  ```

TODO:
- Move `_extui/ =&gt; _core/ui2/`
</content>
</entry>
<entry>
<title>fix(server): serverlist({peer=true}) does not find peer servers #35506</title>
<updated>2025-08-28T13:41:31Z</updated>
<author>
<name>Siddhant Agarwal</name>
<email>68201519+siddhantdev@users.noreply.github.com</email>
</author>
<published>2025-08-28T13:41:31Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=7a71235399066e722d54036742d3c5550f3dfd21'/>
<id>urn:sha1:7a71235399066e722d54036742d3c5550f3dfd21</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: lsp, ui events, dev guidance, osc7</title>
<updated>2025-07-29T02:00:25Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-07-11T12:33:29Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=56a4ef3c213d87bfba5f361376bd23eefdf6c6ec'/>
<id>urn:sha1:56a4ef3c213d87bfba5f361376bd23eefdf6c6ec</id>
<content type='text'>
fix #34981
</content>
</entry>
<entry>
<title>feat: serverlist({peer=true}) returns peer addresses #34806</title>
<updated>2025-07-28T04:40:04Z</updated>
<author>
<name>Siddhant Agarwal</name>
<email>68201519+siddhantdev@users.noreply.github.com</email>
</author>
<published>2025-07-28T04:40:04Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=5151f635ca299dcb7aeb7e34d7c01fba07108b88'/>
<id>urn:sha1:5151f635ca299dcb7aeb7e34d7c01fba07108b88</id>
<content type='text'>
Problem:
serverlist() only lists servers that were started by the current Nvim.

Solution:
Look for other Nvim servers in stdpath("run").</content>
</entry>
</feed>
