29. března 2026 se konala vydání textového editoru Neovim verze 0.12, a 6. dubna byla vydána opravná verze 0.12.1. Toto je jedno z největších vydání za poslední dobu: bylo uzavřeno více než 340 úkolů, přidán integrovaný správce pluginů, HTTP klient, příkaz pro restart, výrazně rozšířen integrovaný LSP klient a experimentálně přepracován subsystém zpráv.
Nezpůsobují nekompatibilní změny:
- odstraněny zastaralé API vim.diagnostic;
- Ctrl-R v režimu vkládání nyní funguje podobně jako vkládání;
- podpora Python 3.7 a 3.8 u poskytovatelů byla ukončena;
- plugin shellmenu byl odstraněn, tohtml byl přesunut do pack/dist/opt/;
- Treesitter: direktiva offset! se vztahuje na všechny captures, get_parser vrací nil při chybě, byla odstraněna možnost „all“ v Query:iter_matches;
- LSP: textDocument/codeLens byl přepsán jako poskytovatel dekorací;
- UI: ext_messages byl odpojen od sítě zpráv;
- Podpora RFC 3986 v path_with_url.
Integrovaný správce pluginů (vim.pack):
Přidáno experimentální integrovaný správce pluginů vim.pack. Podporuje lockfile pro zamykání verzí, offline aktualizace, určení cílových verzí, potvrzovací buffer s navigací podle [[[\/]] a code actions. Informace o VCS jsou k dispozici přes vim.pack.get. Pokrok operací se zobrazuje přes nvim_echo s kind=progress. Integrovaný s checkhealth.
LSP:
Integrovaný LSP klient provedl rozsáhlou aktualizaci:
- nový příkaz :lsp pro interaktivní ovládání klientů;
- vim.lsp.enable a vim.lsp.is_enabled pro ovládání LSP serverů podle potřeby;
- integrované automatické doplňování v režimu vkládání s podporou completionItem/resolve (při completeopt=popup), náhled úryvků a barev, podpora CompletionItem.labelDetails;
- inkrementální zvýraznění přes textDocument/selectionRange, včetně v režimu operator-pending;
- textDocument/documentColor je povolená ve výchozím nastavení, přidána podpora colorPresentation;
- podpora textDocument/documentLink, textDocument/inlineCompletion, textDocument/onTypeFormatting;
- codeLens je zobrazen pomocí virtuálních řádků přes poskytovatele dekorací;
- vylepšení sémantických tokenů: víceřádkové tokeny, požadavky range a full;
- podpora workspace diagnostiky, dynamická registrace, požadavek diagnostic/refresh;
- zvýraznění přejmenovávaného symbolu, podpora annotated text edits a propojené editační rozsahy;
- nové mapování ve výchozím nastavení: grt — přechod k definici typu, grx — spuštění codeLens;
- LSP klienti se automaticky odpojují při změně filetype;
- byly označeny jako zastaralé vim.lsp.stop_client a vim.lsp.util.stylize_markdown.
Příkaz :restart a :detach:
Nový příkaz :restart restartuje Nvim a znovu propojí aktuální UI. Podpora :detach a :restart na Windows. Obě fungují na všech platformách.
Síť (vim.net):
Přidán vestavěný HTTP klient vim.net.request a :edit url. Varianta vim.net.request s argumentem outbuf ukládá odpověď serveru přímo do určeného bufferu.
UI a zprávy:
- ui2 — experimentální přepracování subsystému zpráv a příkazového řádku, ext_cmdline/messages pro TUI;
- nové skupiny zvýraznění hl-StderrMsg a hl-StdoutMsg;
- nvim_echo podporuje události pokroku s kind=progress;
- výchozí stavový řádek zobrazuje počty diagnostiky, pokrok a stav LSP, stav vytížení buffer;
- okno pop-up pumborder se scrollbarem.
Lua API:
- nové typy vim.Pos a vim.Range pro práci s pozicemi a rozsahy, konverze mezi formáty pozic kurzoru, extmark, Vim a LSP;
- vim.list.bisect, vim.list.unique;
- Iter:unique, Iter:peek a Iter:skip pro non-list iterátory;
- vim.wait vrací výsledky callbacku;
- vim.json.encode podporuje pretty-print a sort_keys;
- parametr behavior ve funkci pro tbl_extend a tbl_deep_extend;
- nový modul vim._async.
Diagnostika:
- diagnostic.status s uživatelské formátování a zvýraznění;
- filtrované enabled, možnost formátu pro setloclist/setqflist;
- Callback on_jump;
- přechod k souvisejícím informacím z open_float;
- překrývání zvýraznění DiagnosticUnnecessary a DiagnosticDeprecated.
Treesitter:
- zvýraznění Markdown je zapnuto ve výchozím nastavení;
- inkrementální zvýraznění na základě Treesitter.
Další změny:
- :wall ++p vytváří rodičovské adresáře pro každý buffer;
- exrc hledá konfigurační soubory v rodičovských adresářích s s povinným potvrzením přes :trust;
- :source může vykonávat Lua bloky a Treesitter injekce;
- nvim_open_tabpage — API pro programové vytváření karet;
- nvim_set_hl s parametrem update aktualizuje jednotlivé atributy zvýraznění bez přepsání ostatních;
- styl bold a uživatelské symboly v winborder;
- podpora statusline v plovoucích oknech;
- přejmenování .nvimlog na nvim.log;
- zvýraznění aktivního tabstop ve snippetech;
- Vestavěný runtime pro undotree;
- shelltemp=false přechod na
- Spellfile se uchovává ve stdpath data;
- maximum výsledků hledání bylo zvýšeno na 999;
- parsers SSH konfigurace;
- synchronizovaný výstup v terminálu (mód 2026);
- terminál ukazuje exit code přes virtuální text.
Neovim 0.12.1:
Opravená verze ze 6. dubna 2026 s 26 opravami chyb a jednou novou funkcí — :restart připojuje všechny UI. Mezi důležitými opravami:
- :restart: dědění stderr na Unix, správné zpracování —headless;
- LSP: opakovaný požadavek codeLens refresh, náhled úryvků, reset verze document color;
- ui2: blikání při vstupu do pageru, neplatné odkazy na buffer, aktualizace indikátoru rozlití;
- Treesitter: výběr s unicode znaky na konci uzlu;
- vim.net: zpracování archivních URL přes tar/zip;
- vim.pack: použití uv.available_parallelism pro výpočet počtu vláken;
- Bezpečnostní opravy Vim: obejití bezpečnostního modelu přes modeline, obejití cesty v zip.vim;
- Optimalizace vim.pos: použití nvim_buf_line_count místo načítání všech řádků.
Zdroj: linux.org.ru
