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

Veröffentlicht Release Neovim 0.4, Abzweigungen vom Vim-Editor, fokussiert auf die Verbesserung von Erweiterbarkeit und Flexibilität. Die ursprünglichen Entwicklungen des Projekts werden unter der Apache 2.0-Lizenz, während der Basisteil unter der Vim-Lizenz steht.

Im Rahmen des Neovim-Projekts wird seit über fünf Jahren die Codebasis von Vim überarbeitet, wodurch Änderungen vorgenommen werden, die die Wartung des Codes vereinfachen, Mittel zur Arbeitsteilung zwischen mehreren Maintainer bieten, die Schnittstelle vom Basisteil trennen (die Schnittstelle kann geändert werden, ohne das Innere zu berühren) und eine neue erweiterbare Architektur auf Basis von Plugins implementieren.

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 vorbereitet etwa 80 spezifische Plugins verfügbar, Bindungen zur Erstellung von Plugins und Implementierungen von Schnittstellen unter Verwendung verschiedener Programmiersprachen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) und Frameworks (Qt5, ncurses, Node.js, Electron, GTK+). Es werden mehrere Varianten der Benutzeroberfläche entwickelt. GUI-Erweiterungen ähneln in vielerlei Hinsicht Plugins, unterscheiden sich jedoch darin, dass sie die Funktionen von Neovim aufrufen, während Plugins aus Neovim aufgerufen werden.

Einige der Änderungen in In der neuen Version:

  • Eine große Anzahl neuer API-Funktionen und Benutzeroberflächenereignisse wurde hinzugefügt.
  • Eine neue Standardbibliothek Nvim-Lua zur Entwicklung von Plugins in Lua wurde hinzugefügt.
  • Die Entwicklung des Benutzeroberflächenprotokolls wurde fortgesetzt, das die Aktualisierung von Informationen auf der Bildschirmanzeige auf Zeilen- und nicht auf Zeichenebene ermöglicht.
  • Die Unterstützung für vollständige schwebende Fenster wurde hinzugefügt, die an beliebigen Stellen platziert, angedockt, mit einzelnen Editier-Puffern verknüpft und im Multigrid-Modus gruppiert werden können.
  • Die Option ‘pumblend’ für halbtransparente Drop-down-Menüs wurde hinzugefügt.

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