Roadmap
The roadmap is an overview of the project direction. Detailed plans and priorities are tracked in milestones (these are tentative and may be changed or dropped at any time):
- 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).
Next
Concrete high-level feature areas and changes.
- Prepare for 1.0
- Multicursor, super-macros
- Multibuffer #30463
- packspec /
pkg.json - File-change detection
- Externalized UI: window layout events, messages
0.13: “The year of Batteries Included” (visibility, stdlib features, UI elements)
- UI “block-level elements” so plugins can reason about regions
- UI “affordance” indicator so users know which elements they can interact with
- Unified event interface,
nvim_on() - stdlib: image API
- Task abstraction, structured concurrency:
vim.async - Redesign
--remote - LSP:
vim.lsp.server()
0.12: “The year of Nvim OOTB”
- ✅ Plugin manager (
vim.pack) #34009 - ✅ No more “Press ENTER” #27855
- UI
:connect, :restart#5035 - Lua remote plugin host
- Redesign (simplify) remote plugin concept, eliminate
:UpdateRemotePlugins
Completed
Here are the headline features of the previous releases; for details see the release notes.
- Default colorscheme
- LSP inlay hints
- TermRequest, TermResponse
- treesitter: builtin parsers for bash, markdown, python
vim.snippetvim.itervim.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
- 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