Neovim 0.4 ist verfügbar, eine modernisierte Version des Vim-Editors

Veröffentlicht freigeben Neovim 0.4, ein Fork aus dem Vim-Editor, konzentriert auf zunehmende Erweiterbarkeit und Flexibilität. Ursprüngliche Entwicklungen des Projekts Ausbreitung unter der Apache 2.0-Lizenz und der Basisteil unter der Vim-Lizenz.

Im Rahmen des Neovim-Projekts wird die Vim-Codebasis seit mehr als fünf Jahren überarbeitet, wodurch Änderungen vorgenommen werden, die die Codepflege vereinfachen, eine Arbeitsteilung zwischen mehreren Betreuern ermöglichen und die Schnittstelle von der Schnittstelle trennen Basisteil (die Schnittstelle kann geändert werden, ohne die Innenteile zu berühren) und ein neues implementieren erweiterbare Architektur basierend auf Plugins.

Eines der Probleme mit Vim, die zur Entwicklung von Neovim führten, war seine aufgeblähte, monolithische Codebasis, die aus mehr als 300 Zeilen C-Code (C89) bestand. Nur wenige Menschen verstehen alle Nuancen der Vim-Codebasis und alle Änderungen werden von einem Betreuer kontrolliert, was die Wartung und Verbesserung des Editors erschwert. Anstelle des in den Vim-Kern integrierten Codes zur Unterstützung der GUI schlägt Neovim die Verwendung einer universellen Ebene vor, die es Ihnen ermöglicht, Schnittstellen mithilfe verschiedener Toolkits zu erstellen.

Plugins für Neovim werden als separate Prozesse gestartet, für deren Interaktion das MessagePack-Format verwendet wird. Die Interaktion mit Plugins erfolgt asynchron, ohne die Grundkomponenten des Editors zu blockieren. Für den Zugriff auf das Plugin kann ein TCP-Socket verwendet werden, d.h. Das Plugin kann auf einem externen System ausgeführt werden. Gleichzeitig bleibt Neovim abwärtskompatibel mit Vim, unterstützt weiterhin Vimscript (Lua wird als Alternative angeboten) und unterstützt Verbindungen für die meisten Standard-Vim-Plugins. Die erweiterten Funktionen von Neovim können in Plugins verwendet werden, die mit Neovim-spezifischen APIs erstellt wurden.

Zur Zeit schon vorbereitet Für die Erstellung von Plugins und die Implementierung von Schnittstellen stehen etwa 80 spezifische Plugins und Bindungen mit verschiedenen Programmiersprachen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) und Frameworks (Qt5, ncurses, Node.js, Elektron, GTK+). Es werden mehrere Optionen für die Benutzeroberfläche entwickelt. GUI-Add-ons ähneln Plugins, initiieren jedoch im Gegensatz zu Plugins Aufrufe von Neovim-Funktionen, während Plugins aus Neovim heraus aufgerufen werden.

Einige der Änderungen in neue Version:

  • Viele neue API-Funktionen und Benutzeroberflächenereignisse hinzugefügt.
  • Eine neue Standardbibliothek Nvim-Lua für die Entwicklung von Plugins in der Lua-Sprache hinzugefügt.
  • Die Entwicklung des Benutzerschnittstellenprotokolls geht weiter und aktualisiert die Informationen auf dem Bildschirm auf der Ebene von Zeilen und nicht auf der Ebene einzelner Zeichen.
  • Unterstützung für vollwertige schwebende Fenster hinzugefügt, die an beliebiger Stelle platziert, angehängt, mit einzelnen Bearbeitungspuffern verknüpft und im Multigrid-Modus gruppiert werden können.
  • Option „Pumblend“ für durchscheinende Dropdown-Menüs hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen