Neovim 0.7.0 veröffentlicht, eine modernisierte Version des Vim-Editors

Die Veröffentlichung von Neovim 0.7.0, einem Fork des Vim-Editors, konzentriert sich auf die Verbesserung von Erweiterbarkeit und Flexibilität. Im Rahmen dieses Projekts wird seit über sieben Jahren der Code von Vim neu gestaltet, um ihn wartungsfreundlicher zu machen und die Zusammenarbeit zwischen mehreren Maintainern zu fördern. Dabei wird die Benutzeroberfläche vom Kern getrennt (die Benutzeroberfläche kann geändert werden, ohne die inneren Komponenten zu verändern) und eine neue erweiterbare Plugin-Architektur umgesetzt. Die ursprünglichen Arbeiten des Projekts werden unter der Apache 2.0-Lizenz veröffentlicht, während der Kern unter der Vim-Lizenz steht. Fertige Builds sind für Linux (AppImage), Windows und macOS verfügbar.

Zu den Problemen von Vim, die zur Entwicklung von Neovim führten, zählt die aufgeblähte monolithische Codebasis, die aus über 300.000 Zeilen C-Code (C89) besteht. Nur wenige Personen sind mit den Feinheiten der Vim-Codebasis vertraut, und alle Änderungen werden von einem einzigen Maintainer kontrolliert, was die Wartung und die Weiterentwicklung des Editors erschwert. Anstelle des in den Vim-Kern integrierten Codes zur Unterstützung von GUIs wird in Neovim eine universelle Schnittstelle vorgeschlagen, die es ermöglicht, Benutzeroberflächen mit verschiedenen Toolkits zu erstellen.

Plugins für Neovim laufen als separate Prozesse, wobei das MessagePack-Format für die Interaktion verwendet wird. Die Kommunikation mit den Plugins erfolgt asynchron, ohne die grundlegenden Komponenten des Editors zu blockieren. Ein TCP-Socket kann verwendet werden, um auf ein Plugin zuzugreifen, d.h. das Plugin kann auf einem externen System ausgeführt werden. Neovim bleibt dabei abwärtskompatibel zu Vim, unterstützt weiterhin Vimscript (als Alternative wird Lua angeboten) und ermöglicht die Verwendung der meisten standardmäßigen Vim-Plugins. Die erweiterten Funktionen von Neovim können in Plugins genutzt werden, die mit der spezifischen API von Neovim erstellt wurden.

Derzeit sind bereits etwa 130 spezifische Plugins vorbereitet, es stehen Bindings zur Verfügung, um Plugins und Schnittstellenimplementierungen unter Verwendung verschiedener Programmiersprachen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) und Frameworks (Qt, ncurses, Node.js, Electron, GTK) zu erstellen. Es werden mehrere Varianten von Benutzeroberflächen entwickelt. GUI-Erweiterungen ähneln in vielerlei Hinsicht Plugins, jedoch initiieren sie im Gegensatz zu Plugins den Aufruf von Neovim-Funktionen, während Plugins aus Neovim heraus aufgerufen werden.

Die neue Version bietet eine grundlegende Unterstützung für Remote-Arbeit, die es ermöglicht, Neovim auf Server zu starten und sich mit einem Client-System über einen separaten ui_client zu verbinden. Zu den weiteren Änderungen gehören: die Unterstützung von Python 2 wurde eingestellt, die Verwendung von Lua-Funktionen in keymap ist erlaubt, neue Befehle im API wurden hinzugefügt, die Möglichkeiten zur Verwendung der Lua-Sprache für die Plugin-Entwicklung und Konfigurationsverwaltung wurden erheblich erweitert, die Diagnosetools für Probleme im Code wurden verbessert, die Unterstützung einer globalen Statuszeile wurde hinzugefügt, und es wurden Leistungsoptimierungen durchgeführt. Die Funktionen des integrierten LSP-Clients (Language Server Protocol) wurden erweitert, der zur Auslagerung der Analyse- und Autocomplete-Logik in externe Systeme verwendet werden kann. Server.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster