Veröffentlichung des Texteditors Neovim 0.10

Die Veröffentlichung von Neovim 0.10, einem Fork des Editors Vim, fokussiert sich auf die Verbesserung der Erweiterbarkeit und Flexibilität. Das Projekt arbeitet seit über 10 Jahren an der Überarbeitung des Vim-Code, was zu Änderungen führt, die die Wartung des Codes vereinfachen, Werkzeuge zur Arbeitsteilung zwischen mehreren Maintainern bereitstellen, das Interface von dem Kernteil trennen (das Interface kann geändert werden, ohne das Innere zu berühren) und eine neue erweiterbare Architektur auf Basis von Plugins implementieren. Die ursprünglichen Arbeiten des Projekts werden unter der Apache 2.0 Lizenz verbreitet, während der Kernteil unter der Vim-Lizenz steht. Fertige Builds sind für Linux (AppImage), Windows und macOS vorbereitet.

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.

Im Laufe der Projektentwicklung wurden über tausend spezifische Plugins erstellt, es sind Bindungen zur Erstellung von Plugins und Implementierungen von Schnittstellen mit verschiedenen Programmiersprachen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) und Frameworks (Qt, ncurses, Node.js, Electron, GTK) verfügbar. Es sind mehrere Varianten der Benutzeroberfläche in Entwicklung. GUI-Erweiterungen ähneln in vielerlei Hinsicht Plugins, jedoch initiieren sie im Gegensatz zu Plugins den Aufruf von Funktionen in Neovim, während Plugins aus Neovim aufgerufen werden.

Zu den Änderungen in der neuen Version gehören:

  • Standardmäßig wird ein neues Farbschema angeboten, bei dem die Helligkeit verringert, ausgewogenere Farbkombinationen verwendet und Probleme, die bei Menschen mit Farbsehschwächen auftreten, gelöst werden.
    Veröffentlichung des Texteditors Neovim 0.10Veröffentlichung des Texteditors Neovim 0.10
  • Die Tastenkombinationen wurden geändert: „K“ – beim Aktivieren des LSP-Clients wird Informationen über die Funktion und die Variable angezeigt, auf die der Cursor zeigt; „[d“ und „]d“ – Navigieren durch Diagnosenachrichten; d – Anzeige zusätzlicher Informationen zu der Diagnosenachricht.
  • Die integrierte Funktionalität des vim-commentary-Plugins ermöglicht das schnelle Einrahmen von Zeilen und Blockkommentaren mit den entsprechenden Kommentarzeichen, je nach Kontext (z. B. werden für Inhalte im -Tag die Zeichen „//“ verwendet, während für HTML die Zeichen „“ gelten).
  • Eine Option 'termsync' wurde hinzugefügt, die den synchronisierten Ausgabemodus aktiviert. Dabei werden Bildschirmaktualisierungen gesammelt und in einer Charge im Terminal angezeigt, um Flimmern und Ruckeln zu vermeiden.
  • Die Escape-Sequenz „OSC 52“ wird verwendet, um in die Zwischenablage des Systems zu schreiben, wenn die Arbeit in einer SSH-Session erfolgt, die 'clipboard'-Einstellung nicht aktiviert ist und ein Terminalemulator verwendet wird, der „OSC 52“ unterstützt.
  • Experimentelle Unterstützung für die Formatierung von Hyperlinks mittels der Escape-Sequenz OSC 8 wurde hinzugefügt. Standardmäßig wird diese Funktion verwendet, um Links in Markdown-Dokumenten zu markieren, die als „[example](https://example.com)“ formatiert sind.
    Veröffentlichung des Texteditors Neovim 0.10
  • Es wurde eine automatische Erkennung der Unterstützung für das 24-Bit-Farbdarstellung („truecolor“) durch das Terminal implementiert.
  • Bei der Verwendung von LSP (Language Server Protocol) werden kontextuelle Hinweise in Form von virtuellen Texten bereitgestellt, die in einer anderen Farbe direkt im Code angezeigt werden, jedoch ohne tatsächliche Hinzufügung zum Quelltext (auf dem Screenshot werden die Hinweise in Dunkelgrau dargestellt).
    Veröffentlichung des Texteditors Neovim 0.10
  • Die Möglichkeiten zur Inspektion des syntaktischen Baums des Quellcodes wurden erweitert. Ein interaktiver Modus zum Verfassen von Abfragen gegen den syntaktischen Baum wurde hinzugefügt, der in Echtzeit auf den aktuellen Code angewendet werden kann.
    Veröffentlichung des Texteditors Neovim 0.10
  • Es wurde die Möglichkeit hinzugefügt, Modifikatoren im Befehl „:terminal“ anzugeben, zum Beispiel „:botright terminal“, um ein neues Terminalfenster in der unteren rechten Ecke des Bildschirms zu öffnen.

Quelle: opennet.ru

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