Sortie de Neovim 0.7.0, une version améliorée de l'éditeur Vim

La version 0.7.0 de Neovim a été publiée, une branche de l'éditeur Vim, axée sur l'amélioration de l'extensibilité et de la flexibilité. Le projet a déjà entrepris, depuis plus de sept ans, une refonte de la base de code de Vim, entraînant des modifications qui simplifient la maintenance du code, fournissent des moyens de séparer le travail entre plusieurs mainteneurs, isolent l'interface de la partie fondamentale (l'interface peut être modifiée sans toucher aux internals) et réalisent une nouvelle architecture extensible basée sur des plugins. Les contributions originales du projet sont sous licence Apache 2.0, tandis que la partie de base est sous licence Vim. Des versions prêtes à l'emploi sont disponibles pour Linux (appimage), Windows et macOS.

Parmi les problèmes de Vim qui ont conduit à la création de Neovim, on note la base de code monolithique gonflée, composée de plus de 300 000 lignes de code en C (C89). Seulement quelques personnes comprennent tous les détails de la base de code de Vim, et toutes les modifications sont contrôlées par un seul mainteneur, ce qui complique la maintenance et le travail d'amélioration de l'éditeur. Au lieu d'utiliser le code intégré au cœur de Vim pour prendre en charge l'interface graphique, Neovim propose d'utiliser une couche universelle permettant de créer des interfaces avec différentes bibliothèques.

Les plugins de Neovim s'exécutent en tant que processus séparés, interagissant à l'aide du format MessagePack. L'interaction avec les plugins se fait de manière asynchrone, sans bloquer les composants de base de l'éditeur. Un socket TCP peut être utilisé pour interagir avec un plugin, ce qui signifie que le plugin peut être exécuté sur un système externe. Neovim reste toutefois rétrocompatible avec Vim, continue de prendre en charge Vimscript (avec Lua comme alternative) et prend en charge la majorité des plugins Vim standard. Les capacités avancées de Neovim peuvent être exploitées dans des plugins construits avec l'API spécifique à Neovim.

Actuellement, environ 130 plugins spécifiques sont déjà préparés, des liaisons sont disponibles pour créer des plugins et des interfaces en utilisant divers langages de programmation (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) et frameworks (Qt, ncurses, Node.js, Electron, GTK). Plusieurs variantes d'interface utilisateur sont en cours de développement. Les GUI-extensions ressemblent en grande partie à des plugins, mais contrairement aux plugins, elles initient les appels de fonctions Neovim, tandis que les plugins sont appelés depuis Neovim.

La nouvelle version propose un support initial pour le travail à distance, permettant de lancer Neovim sur le serveur et de s'y connecter depuis un système client, en utilisant un ui_client distinct. Parmi les autres changements : la prise en charge de Python 2 a été abandonnée, l'utilisation des fonctions Lua dans keymap est autorisée, de nouvelles commandes ont été ajoutées à l'API, les capacités d'utilisation du langage Lua pour le développement de plugins et la gestion de la configuration ont été considérablement élargies, les outils de diagnostic des problèmes dans le code ont été améliorés, le support d'une ligne d'état globale a été ajouté, et des optimisations de performances ont été réalisées. Les capacités du client LSP intégré (Language Server Protocol) ont été étendues, permettant de déléguer la logique d'analyse et d'auto-complétion du code à des outils externes. serveurs.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster