Roadmap
The roadmap is an overview of the project direction. Detailed plans and priorities are tracked in milestones:
- Version numbers (
0.1
, 0.2
, …) track production releases. The next upcoming version has a (estimated) target date.
-
backlog
holds low-priority items.
-
needs-owner
holds zero-priority items (no feasible path to completion).
Note these are tentative and can be changed, moved, or dropped at any time.
Next
Concrete high-level feature areas and changes.
0.12+: "The year of the Nvim OOTB"
- Prepare for 1.0
- No more "Press Enter"
- Plugin manager
- packspec /
pkg.json
- Redesign
--remote
- File-change detection
- multicursor, super-macros
- Task abstraction, structured concurrency:
vim.async
- Unified event interface,
nvim_on()
- LSP "config" concept:
{runtimepath}/lsp/*
, vim.lsp.config
#31031
- LSP: multiclient support
- TUI: URL highlight, theme event
- UI detach,
:connect
: #5035
- stdlib: image API
- Redesign (simplify) remote plugin concept, eliminate
:UpdateRemotePlugins
- Externalized UI: window layout events, messages
- LSP:
vim.lsp.server()
- LSP: auto-completion (on_attach config)
Completed
Here are the headline features of the previous releases; for details see the corresponding release notes.
- Default colorscheme
- LSP inlay hints
- TermRequest, TermResponse
- treesitter: builtin parsers for bash, markdown, python
vim.snippet
vim.iter
-
vim.lpeg
, vim.re
, vim.glob
, vim.base64
- LSP improvements (v3.16 spec coverage, configuration,
LspAttach
)
- Lua API:
vim.fs
, vim.cmd{}
, measure require() in --startuptime
, :map
/:command
/:au
can print Lua source location
- treesitter API: use queries to define spellcheck regions (aka "spellsitter")
vim.ui_attach()
- UI and RPC performance
- user-defined command preview
cmdheight=0
- clickable statusline
- Tree-sitter integration (highlighting, folds)
- TUI: extended keys (CTRL-i vs TAB, SHIFT modifier, …!)
- Global statusline:
laststatus=3
- Unified diagnostics API
- Updated defaults
- Lua "stdlib"
- Externalized UI: multigrid
- Externalized UI: floating windows
- Externalized UI: messages
- API: buffer update events
- Vimscript expression parser:
nvim_parse_expression()
- Windows: MSVC support
-
0.2.1 Built-in Lua:
vim.api
, :lua
,
nvim_execute_lua()
, …
-
0.2.1 Externalize UI components: cmdline, wildmenu
-
0.2.1 Windows
:terminal
-
0.2.1 Pre-packaged "universal" binary for Linux
- Windows support
- Externalized UI: popumenu
- Externalized UI: tabline
- Pre-packaged builds for Windows and macOS
- First public release
- Publish a stable product that can be used as a benchmark for progress