Pe 29 martie 2026 a avut loc lansare editorul de text Neovim versiunea 0.12, iar pe 6 aprilie a fost lansată o revizuire versiunea 0.12.1. Aceasta este una dintre cele mai mari lansări din ultima vreme: au fost rezolvate peste 340 de probleme, s-a adăugat un manager de pluginuri integrat, un client HTTP, o comandă de repornire, s-a extins considerabil clientul LSP integrat și s-a refăcut experimental subsistemul de mesaje.
Modificări incompatibile:
- au fost eliminate API-ul depășit vim.diagnostic;
- Ctrl-R în modul de inserare acum funcționează similar cu inserarea;
- sprijină Python 3.7 și 3.8 în furnizorii;
- pluginul shellmenu eliminată, tohtml a fost mutat în pack/dist/opt/;
- Treesitter: directiva offset! se aplică tuturor captures, get_parser returnează nil la eroare, opțiunea „all” a fost eliminată în Query:iter_matches;
- LSP: textDocument/codeLens a fost rescris ca provider de decorare;
- UI: ext_messages a fost detasat de rețeaua de mesaje;
- Suport pentru RFC 3986 în path_with_url.
Managerul de pluginuri integrat (vim.pack):
Adăugat manager de pluginuri integrat experimentale vim.pack. Suportă lockfile pentru blocarea versiunilor, actualizări offline, indicare a versiunilor țintă, buffer de confirmare cu navigarea prin [[[\/]] și acțiuni de cod. Informațiile despre VCS sunt disponibile prin vim.pack.get. Progresul operațiunilor afișat prin nvim_echo cu kind=progress. Integrat cu checkhealth.
LSP:
Clientul LSP integrat a primit o actualizare majoră:
- noua comandă :lsp pentru gestionarea interactivă a clienților;
- vim.lsp.enable și vim.lsp.is_enabled pentru a gestiona serverele LSP după necesitate;
- autocompletare integrată în modul de inserare cu suport pentru completionItem/resolve (la completeopt=popup), previzualizarea snippet-urilor și culori, suport pentru CompletionItem.labelDetails;
- evidențiere incrementală prin textDocument/selectionRange, inclusiv în modul operator-pending;
- textDocument/documentColor este activat implicit, a fost adăugat suport pentru colorPresentation;
- suport pentru textDocument/documentLink, textDocument/inlineCompletion, textDocument/onTypeFormatting;
- codeLens este afișat ca linii virtuale prin provider de decorare;
- îmbunătățiri ale token-urilor semantice: token-uri pe mai multe linii, cereri range și full;
- suport pentru diagnoze de workspace, înscriere dinamică, cererea diagnostic/refresh;
- evidențierea simbolului redenumit, suport pentru editări de text annotate și intervale de editare legate;
- noile mapări implicite: grt — trecere la definiția tipului, grx — lansare codeLens;
- Clienții LSP se deconectează automat la schimbarea filetype;
- au fost declarate depășite vim.lsp.stop_client și vim.lsp.util.stylize_markdown.
Comanda :restart și :detach:
Noua comandă :restart reporneste Nvim și reconectează UI curent. Suport pentru :detach și :restart pe Windows. Ambele funcționează pe toate platformele.
Rețea (vim.net):
Client HTTP încorporat adăugat vim.net.request și :edit url. Variantă vim.net.request cu argumentul outbuf scrie răspunsul serverului direct în bufferul specificat.
UI și mesaje:
- ui2 — refacere experimentală a subsistemului de mesaje și linie de comandă, ext_cmdline/messages pentru TUI;
- grupuri noi de evidențiere hl-StderrMsg și hl-StdoutMsg;
- nvim_echo suportă evenimente de progres cu kind=progress;
- bara de stare implicită arată contoarele de diagnostic, progresul și starea LSP, starea de ocupare bufferelor;
- cadre de meniu derulant pumborder cu bara de derulare.
API Lua:
- tipuri noi vim.Pos și vim.Range pentru lucrul cu poziții și intervale, conversia între formatele pozițiilor cursor, extmark, Vim și LSP;
- vim.list.bisect, vim.list.unique;
- Iter:unique, Iter:peek și Iter:skip pentru iteratori non-list;
- vim.wait returnează rezultatele callback;
- vim.json.encode suportă pretty-print și sort_keys;
- parameter comportament sub formă de funcție pentru tbl_extend și tbl_deep_extend;
- modul nou vim._async.
Diagnostica:
- diagnostic.status de format personalizat și evidențiere;
- opțiune de filtrare activată, opțiune format pentru setloclist/setqflist;
- Callback on_jump;
- trecerea la informații legate din open_float;
- suprapunerea evidențărilor DiagnosticUnnecessary și DiagnosticDeprecated.
Treesitter:
- evidențiere Markdown activată implicit;
- evidențiere incrementală bazată pe Treesitter.
Alte modificări:
- :wall ++p creează directoare părinte pentru fiecare buffer;
- exrc caută fișiere de configurare în directoarele părinte de cu confirmare obligatorie prin :trust;
- :source poate executa blocuri Lua și injecții Treesitter;
- nvim_open_tabpage — API pentru crearea programatică a tab-urilor;
- nvim_set_hl cu parametrul update actualizează atributele individuale de evidențiere fără a suprascrie celelalte;
- stil bold și simboluri personalizate în winborder;
- suport pentru statusline în feronetele plutitoare;
- renumirea .nvimlog în nvim.log;
- evidențierea tabstop-ului activ în snippet-uri;
- Runtime încorporat pentru undotree;
- shelltemp=false implicit;
- Spellfile se află în stdpath data;
- numărul maxim de rezultate ale căutării a fost crescut la 999;
- parser de configurare SSH;
- ieșire sincronizată în terminal (mode 2026);
- terminalul arată codul de ieșire prin text virtual.
Neovim 0.12.1:
Versiune corectivă din 6 aprilie 2026 cu 26 de corecturi de erori și o nouă caracteristică — :restart reconectează toate UI. Printre corecturile importante:
- :restart: mostenirea stderr pe Unix, handling corect —headless;
- LSP: reîntrebarea refresh codeLens, previzualizarea snippet-urilor, resetarea versiunii culorii documentului;
- ui2: flicker la intrarea în pager, referințe incorecte la buffer, actualizarea indicatorului de spill;
- Treesitter: evidențiere cu caractere unicode la sfârșitul nodului;
- vim.net: procesarea URL-urilor arhivate prin tar/zip;
- vim.pack: utilizarea uv.available_parallelism pentru a calcula numărul de fire;
- Patch-uri de securitate Vim: o ocolire a modelului de securitate prin modeline, ocolirea căii în zip.vim;
- Optimizarea vim.pos: utilizarea nvim_buf_line_count în locul încărcării tuturor liniilor.
Sursa: linux.org.ru
