summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_core/ex_cmd.lua
AgeCommit message (Collapse)AuthorFiles
2026-04-23feat(excmd): add :uptime command #39331Olivia Kinnear1
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)).
2026-04-20refactor(excmd): migrate ex_terminal to LuaJustin M. Keyes1
2026-04-19feat(excmd): add EXX error codes for :lsp, :log #39135Olivia Kinnear1
Also remove the `--add-comments` flag from `xgettext` because it dumped a bunch of comments from Lua files into the `.pot` files.
2026-04-18feat(vimfn): use Lua for more excmds/vimfnsJustin M. Keyes1
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
2026-04-10feat(ex): add `:log` commandOlivia Kinnear1
2026-03-19feat(lsp): vim.lsp.get_configs() #37237Olivia Kinnear1
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.
2026-02-10feat(lua): add `Iter:unique()` (#37592)Olivia Kinnear1
2026-01-22fix(lsp): raise error when lsp config is invalid type (#37508)Olivia Kinnear1
2026-01-22fix(lsp): fix nil-index error for `:lsp enable` (#37411)Olivia Kinnear1
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`.
2026-01-02fix(lsp): `:lsp restart` restarts on client exit #37125Olivia Kinnear1
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.
2025-12-30build: ship "_core/*" as bytecode (built-into Nvim binary)Justin M. Keyes1
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/ => _core/ui2/`