Op 29 maart 2026 vond plaats release teksteditor Neovim versie 0.12, en op 6 april verscheen er een corrigerende uitgave 0.12.1. Dit is een van de grootste releases in de laatste tijd: meer dan 340 taken zijn afgesloten, een ingebouwde pluginmanager, HTTP-client, herstartcommando, aanzienlijk uitgebreide ingebouwde LSP-client en experimenteel hervormde berichten subsysteem zijn toegevoegd.
Incompatibele wijzigingen:
- verwijderd verouderde API vim.diagnostic;
- Ctrl-R in de invoegmodus werkt nu vergelijkbaar met invoegen;
- ondersteuning voor Python 3.7 en 3.8 in de providers is afgeschaft;
- plugin shellmenu verwijderd, tohtml is verplaatst naar pack/dist/opt/;
- Treesitter: de richtlijn offset! wordt toegepast op alle captures, get_parser geeft nil terug bij een fout, de optie "all" in Query:iter_matches is verwijderd;
- LSP: textDocument/codeLens is herschreven als decoration provider;
- UI: ext_messages is losgekoppeld van het berichtenrooster;
- Ondersteuning voor RFC 3986 in path_with_url.
De ingebouwde pluginmanager (vim.pack):
Toegevoegd is een experimentele ingebouwde pluginmanager vim.pack. Het ondersteunt lockfile voor versiefixatie, offline-updates, doelversiespecificatie, bevestigingsbuffer met navigatie via [[[\/]] en code actions. Informatie over VCS is beschikbaar via vim.pack.get. De voortgang van de bewerkingen wordt weergegeven via nvim_echo met kind=progress. Geïntegreerd met checkhealth.
LSP:
De ingebouwde LSP-client heeft een grootschalige update gekregen:
- nieuwe commando :lsp voor interactieve clientbeheer;
- vim.lsp.enable en vim.lsp.is_enabled voor het beheren van LSP-servers indien nodig;
- ingebouwde autocompletion in de invoegmodus met ondersteuning voor completionItem/resolve (bij completeopt=popup), voorbeeld van snippets en kleuren, ondersteuning voor CompletionItem.labelDetails;
- inkrementale selectie via textDocument/selectionRange, inclusief in operator-pending modus;
- textDocument/documentColor is standaard ingeschakeld, toegevoegd ondersteuning voor colorPresentation;
- ondersteuning voor textDocument/documentLink, textDocument/inlineCompletion, textDocument/onTypeFormatting;
- codeLens wordt weergegeven via virtuele regels via decoration provider;
- verbeteringen van semantische tokens: multiline tokens, aanvragen range en full;
- ondersteuning voor workspace-diagnoses, dynamische registratie, aanvraag diagnostic/refresh;
- markeren van hernoembare symbolen, ondersteuning voor geannoteerde tekstbewerkingen en gelinkte bewerkingsbereiken;
- nieuwe standaardmappings: grt — ga naar type-definitie, grx — start codeLens;
- LSP-clients worden automatisch losgekoppeld bij het veranderen van filetype;
- zijn verouderd verklaard vim.lsp.stop_client en vim.lsp.util.stylize_markdown.
De commando :restart en :detach:
Nieuw commando :restart herstart Nvim en maakt opnieuw verbinding met de huidige UI. Ondersteuning voor :detach en :restart op Windows. Beide werken op alle platforms.
Netwerk (vim.net):
Ingebouwde HTTP-client toegevoegd vim.net.request en :edit url. Variant vim.net.request met de argument outbuf schrijft het serverantwoord rechtstreeks naar de opgegeven buffer.
UI en berichten:
- ui2 — experimentele herwerking van het berichten- en opdrachtregel subsystem, ext_cmdline/messages voor TUI;
- nieuwe highlightgroepen hl-StderrMsg en hl-StdoutMsg;
- nvim_echo ondersteunt voortgangs-evenementen met kind=progress;
- standaard statusbalk toont diagnostische tellers, voortgang en LSP-status, beschikbaarheidsstatus buffer;
- popupmenu-frame pumborder met scrollbalk.
Lua API:
- nieuwe types vim.Pos en vim.Range voor het werken met posities en bereiken, conversie tussen positieformaten cursor, extmark, Vim en LSP;
- vim.list.bisect, vim.list.unique;
- Iter:unique, Iter:peek en Iter:skip voor non-list iterators;
- vim.wait geeft resultaten callback terug;
- vim.json.encode ondersteunt pretty-print en sort_keys;
- parameter gedrag als functie voor tbl_extend en tbl_deep_extend;
- nieuwe module vim._async.
Diagnostiek:
- diagnostic.status met gebruikersdefiniërde opmaak en highlighting;
- filter ingeschakeld, optie format voor setloclist/setqflist;
- Callback on_jump;
- overgang naar gerelateerde informatie uit open_float;
- overlapping highlights DiagnosticUnnecessary en DiagnosticDeprecated.
Treesitter:
- highlighting van Markdown is standaard ingeschakeld;
- incrementele selectie gebaseerd op Treesitter.
Overige wijzigingen:
- :wall ++p maakt ouderdirectory's aan voor elke buffer;
- exrc zoekt naar configuratiebestanden in ouderdirectory's met met verplichte bevestiging via :trust;
- :source kan Lua-blokken en Treesitter-injecties uitvoeren;
- nvim_open_tabpage — API voor het programmatisch maken van tabbladen;
- nvim_set_hl met parameter update werkt afzonderlijke highlights bij zonder andere te overschrijven;
- stijl vet en gebruikersdefiniërde symbolen in winborder;
- ondersteuning voor statusline in drijvende vensters;
- hernoeming .nvimlog naar nvim.log;
- highlighting van actieve tabstop in snippets;
- Ingebouwde runtime voor undotree;
- shelltemp=false standaard;
- Spellfile opgeslagen in stdpath data;
- maximaal aantal zoekresultaten verhoogd naar 999;
- SSH configuratie parser;
- gesynchroniseerde uitvoer in de terminal (modus 2026);
- terminal toont exit code via virtuele tekst.
Neovim 0.12.1:
Corrigerende release van 6 april 2026 met 26 bugfixes en één nieuwe functie — :restart herverbinding maken met alle UI. Belangrijke fixes:
- :restart: erfgoed stderr op Unix, juiste afhandeling —headless;
- LSP: herhaalde aanvragen voor codeLens refresh, voorbeeld van snippets, reset versie documentkleur;
- ui2: knipperen bij het binnenkomen van pager, onjuiste verwijzingen naar buffer, update spill indicator;
- Treesitter: marking with unicode characters at the end of the node;
- vim.net: handling archive URLs via tar/zip;
- vim.pack: using uv.available_parallelism to calculate the number of threads;
- Vim security patches: bypassing security model via modeline, bypassing path in zip.vim;
- Optimizing vim.pos: using nvim_buf_line_count instead of loading all lines.
Bron: linux.org.ru
