Am 29. März 2026 fand statt Release Texteditor Neovim Version 0.12, und am 6. April erschien die korrigierte Version 0.12.1. Dies ist eines der größten Releases der letzten Zeit: über 340 Aufgaben wurden abgeschlossen, ein integrierter Plugin-Manager, ein HTTP-Client, ein Neustart-Befehl hinzugefügt, der integrierte LSP-Client erheblich erweitert und die Nachrichtenunterstützung experimentell überarbeitet.
Inkompatible Änderungen:
- entfernt wurden. veraltete API vim.diagnostic;
- Ctrl-R im Einfügemodus funktioniert jetzt ähnlich wie das Einfügen;
- die Unterstützung für Python 3.7 und 3.8 in den Anbietern wurde eingestellt;
- Plugin shellmenu aus dem Quellcode von FreeBSD entfernt. Der Build von GCC zusammen mit dem Basissystem für alle Architekturen wurde Ende Dezember standardmäßig deaktiviert, und nun ist der GCC-Code aus dem SVN-Repository entfernt worden. Es wird darauf hingewiesen, dass zum Zeitpunkt der Entfernung GCC alle Plattformen, die Clang nicht unterstützen, auf die Verwendung externer Build-Werkzeuge umgestellt wurden, die aus den Ports installiert werden. Im Basissystem wurde eine veraltete Version von GCC 4.2.1 ausgeliefert (die Integration neuerer Versionen war aufgrund des Wechsels auf die GPLv3-Lizenz, die für die Basiskomponenten von FreeBSD als unzulässig angesehen wurde, nicht möglich)., tohtml verschoben in pack/dist/opt/;
- Treesitter: Die Direktive offset! wird auf alle captures angewendet, get_parser gibt nil bei Fehlern zurück, Option «all» in Query:iter_matches wurde entfernt;
- LSP: textDocument/codeLens wurde als Dekorationsanbieter neu geschrieben;
- UI: ext_messages wurde von der Nachrichtenstruktur getrennt;
- Unterstützung für RFC 3986 in path_with_url.
Integrierter Plugin-Manager (vim.pack):
Hinzugefügt experimenteller integrierter Plugin-Manager vim.pack. Unterstützt Lockfile zum Festlegen von Versionen, Offline-Updates, Festlegung von Zielversionen, Bestätigungsbuffer mit Navigation durch [[[/]] und Code-Aktionen. Informationen über VCS sind über vim.pack.get. Fortschritt der Operationen angezeigt über nvim_echo mit kind=progress. Integriert mit checkhealth.
LSP:
Der integrierte LSP-Client hat ein umfangreiches Update erhalten:
- neu Befehl :lsp für die interaktive Verwaltung von Clients;
- vim.lsp.enable und vim.lsp.is_enabled zum Management von LSP-Servern nach Bedarf;
- integrierte Autovervollständigung im Einfügemodus mit Unterstützung für completionItem/resolve (bei completeopt=popup), Vorschau von Snippets und Farben, Unterstützung für CompletionItem.labelDetails;
- inkrementelle Auswahl über textDocument/selectionRange, einschließlich im operator-pending-Modus;
- textDocument/documentColor ist standardmäßig aktiviert., Unterstützung für colorPresentation;
- Unterstützung textDocument/documentLink, textDocument/inlineCompletion, textDocument/onTypeFormatting;
- codeLens wird durch virtuelle Zeilen angezeigt über den Dekorations-Provider;
- Verbesserungen der semantischen Token: mehrzeilige Token, Anfragen range und full;
- Unterstützung Workspace-Diagnosen, dynamische Registrierung, Anfrage diagnostic/refresh;
- Hervorhebung des umbenannten Symbols, Unterstützung für annotierte Textbearbeitungen und verlinkte Bearbeitungsbereiche;
- neue Standard-Mappings: grt — Wechsel zur Typdefinition; grx — CodeLens starten;
- LSP-Clients trennen sich automatisch beim Wechsel des filetypes;
- wurden als veraltet erklärt; vim.lsp.stop_client und vim.lsp.util.stylize_markdown.
Die Befehle :restart und :detach:
Ein neuer Befehl :restart startet Nvim neu und verbindet die aktuelle UI wieder. Unterstützung für :detach und :restart unter Windows. Beide funktionieren auf allen Plattformen.
Netzwerk (vim.net):
Integrierter HTTP-Client hinzugefügt vim.net.request und :edit url. Variante vim.net.request mit dem Argument outbuf zeichnet die Serverantwort direkt im angegebenen Puffer auf.
UI und Nachrichten:
- ui2 — experimentelle Überarbeitung des Nachrichten- und Befehlszeilen-Subsystems, ext_cmdline/messages für TUI;
- neue Hervorhebungsgruppen hl-StderrMsg und hl-StdoutMsg;
- nvim_echo unterstützt Fortschrittsereignisse mit kind=progress;
- Die Statuszeile zeigt standardmäßig Diagnosezähler, Fortschritt und Status des LSP an, Busy-State Puffer;
- Rahmen für das Popup-Menü pumborder mit Scrollbar.
Lua API:
- neue Typen vim.Pos und vim.Range zur Arbeit mit Positionen und Bereichen, Konvertierung zwischen Positionsformaten von Cursor, extmark, Vim und LSP;
- vim.list.bisect, vim.list.unique;
- Iter:unique, Iter:peek und Iter:skip für non-list-Iteratoren;
- vim.wait gibt Callback-Ergebnisse zurück;
- vim.json.encode unterstützt pretty-print und sort_keys;
- Parameter Verhalten als Funktion für tbl_extend und tbl_deep_extend;
- neues Modul vim._async.
Diagnose:
- diagnostic.status mit benutzerdefinierte Formatierung und Hervorhebung;
- Filter aktiviert, Formatoption für setloclist/setqflist;
- Callback on_jump;
- Überspringen zu verwandten Informationen aus open_float;
- Überlagerung von Hervorhebungen DiagnosticUnnecessary und DiagnosticDeprecated.
Treesitter:
- Markdown-Hervorhebung standardmäßig aktiviert;
- inkrementelles Hervorheben basierend auf Treesitter.
Weitere Änderungen:
- :wall ++p erzeugt übergeordnete Verzeichnisse für jeden Puffer;
- exrc sucht Konfigurationsdateien in übergeordneten Verzeichnissen mit erforderliche Bestätigung durch :trust;
- :source kann Lua-Blöcke und Treesitter-Injektionen ausführen;
- nvim_open_tabpage — API zur programmgesteuerten Erstellung von Tabs;
- nvim_set_hl mit dem Parameter update aktualisiert einzelne Highlight-Attribute, ohne die anderen zu überschreiben;
- Stil fett und benutzerdefinierte Symbole in winborder;
- Unterstützung Statuszeile in schwebenden Fenstern;
- Umbenennung von .nvimlog in nvim.log;
- Highlighting des aktiven tabstop in Snippets;
- Integrierte Runtime für undotree;
- shelltemp=false standardmäßig;
- Spellfile wird im stdpath data gespeichert;
- maximale Anzahl der Suchergebnisse auf 999 erhöht;
- SSH-Konfigurationsparser;
- synchronisierte Ausgabe im Terminal (Modus 2026);
- Terminal zeigt den Exit-Code an über virtuellen Text.
Neovim 0.12.1:
Korrekturrelease vom 6. April 2026 mit 26 Bugfixes und einer neuen Funktion — :restart stellt alle UIs wieder her. Unter den wichtigen Korrekturen:
- :restart: Weitergabe von stderr auf Unix, korrektes Verhalten —headless;
- LSP: erneute Anfrage für CodeLens-Aktualisierung, Vorschau von Snippets, zurücksetzen der Dokumentfarbversion;
- ui2: Flackern beim Betreten des Pagers, inkorrekte Verweise auf Puffer, Aktualisierung des Spill-Indikators;
- Treesitter: Hervorhebung mit Unicode-Zeichen am Ende des Knotens;
- vim.net: Verarbeitung von Archiv-URLs über tar/zip;
- vim.pack: Verwendung von uv.available_parallelism zur Berechnung der Anzahl von Threads;
- Sicherheitsupdates für Vim: Umgehung des Sicherheitsmodells durch modeline, Umgehung des Pfads in zip.vim;
- Optimierung von vim.pos: Verwendung von nvim_buf_line_count anstelle des Ladens aller Zeilen.
Quelle: linux.org.ru
