<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime/lua/vim/_core/ex_cmd.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-23T21:11:59Z</updated>
<entry>
<title>feat(excmd): add :uptime command #39331</title>
<updated>2026-04-23T21:11:59Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-04-23T21:11:59Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=645a588aa60f4e816a704c97685e2036958af176'/>
<id>urn:sha1:645a588aa60f4e816a704c97685e2036958af176</id>
<content type='text'>
Problem
Nvim marks its v:starttime, but there is no user-friendly way to get Nvim's uptime.

Solution
Add :uptime (based loosely on uptime(1)).</content>
</entry>
<entry>
<title>refactor(excmd): migrate ex_terminal to Lua</title>
<updated>2026-04-20T00:31:09Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-18T15:17:54Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=919a1099510a6998bd7edeaaa0522719687242b7'/>
<id>urn:sha1:919a1099510a6998bd7edeaaa0522719687242b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(excmd): add EXX error codes for :lsp, :log #39135</title>
<updated>2026-04-19T14:40:49Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-04-19T14:40:49Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=c6209e5542ff11f45be59f645a7d5317237f9f79'/>
<id>urn:sha1:c6209e5542ff11f45be59f645a7d5317237f9f79</id>
<content type='text'>
Also remove the `--add-comments` flag from `xgettext` because
it dumped a bunch of comments from Lua files into the `.pot` files.</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>feat(ex): add `:log` command</title>
<updated>2026-04-10T16:08:26Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-03-29T03:07:04Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=8715877417b5c5fee98e6cac9e4e60ca08050048'/>
<id>urn:sha1:8715877417b5c5fee98e6cac9e4e60ca08050048</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(lsp): vim.lsp.get_configs() #37237</title>
<updated>2026-03-19T11:33:34Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-03-19T11:33:34Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=e406c4efd6209e093d2d2caff7e3c9a0847ee030'/>
<id>urn:sha1:e406c4efd6209e093d2d2caff7e3c9a0847ee030</id>
<content type='text'>
Problem:
No way to iterate configs. Users need to reach
for `vim.lsp.config._configs`, an internal interface.

Solution:
Provide vim.lsp.get_configs().
Also indirectly improves :lsp enable/disable completion
by discarding invalid configs from completion.</content>
</entry>
<entry>
<title>feat(lua): add `Iter:unique()` (#37592)</title>
<updated>2026-02-10T17:43:47Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-02-10T17:43:47Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=0c46ea7d38dcdadaf217c1d8fd9178744f9bcf1f'/>
<id>urn:sha1:0c46ea7d38dcdadaf217c1d8fd9178744f9bcf1f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(lsp): raise error when lsp config is invalid type (#37508)</title>
<updated>2026-01-22T23:44:04Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-01-22T23:44:04Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=c39d18ee939cba5f905416fcc97661b1836f4de4'/>
<id>urn:sha1:c39d18ee939cba5f905416fcc97661b1836f4de4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(lsp): fix nil-index error for `:lsp enable` (#37411)</title>
<updated>2026-01-22T20:27:03Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-01-22T20:27:03Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=34116bbd9b61ec78233b86dcadec6eb5eaf1571d'/>
<id>urn:sha1:34116bbd9b61ec78233b86dcadec6eb5eaf1571d</id>
<content type='text'>
Problem:
`:lsp enable` with no arguments will fail if there is a invalid config
in `lsp/`, or if `vim.lsp.config[...]` returns nil for any other reason.

Solution:
Add a nil-check to `:lsp enable`.</content>
</entry>
<entry>
<title>fix(lsp): `:lsp restart` restarts on client exit #37125</title>
<updated>2026-01-02T06:58:10Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-01-02T06:58:10Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=a03ab03a10ada68b74e292a16493047da414e3ee'/>
<id>urn:sha1:a03ab03a10ada68b74e292a16493047da414e3ee</id>
<content type='text'>
Problem:
`:lsp restart` detects when a client has exited by using the `LspDetach`
autocommand. This works correctly in common cases, but breaks when
restarting a client which is not attached to any buffer. It also breaks
if a client is detached in between `:lsp restart` and the actual
stopping of the client.

Solution:
Move restart logic into `vim/lsp/client.lua`, so it can hook in to
`_on_exit()`. The public `on_exit` callback cannot be used for this, as
`:lsp restart` needs to ensure the restart only happens once, even if
the command is run multiple times on the same client.</content>
</entry>
</feed>
