Neovim 0.5, eng moderniséiert Versioun vum Vim Editor, ass verfügbar

После почти двух лет разработки опубликован релиз Neovim 0.5, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. В рамках проекта уже более семи лет проводится переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и реализующие новую расширяемую архитектуру на основе плагинов. Оригинальные наработки проекта распространяются под лицензией Apache 2.0, а базовая часть под лицензией Vim.

Ee vun de Probleemer mat Vim, déi d'Schafung vum Neovim gefuerdert hunn, war seng bloated, monolithesch Codebasis, besteet aus méi wéi 300 Tausend Zeilen vum C (C89) Code. Nëmmen e puer Leit verstinn all d'Nuancen vun der Vim Codebase, an all Ännerungen ginn vun engem Instander kontrolléiert, wat et schwéier mécht den Editor z'erhalen an ze verbesseren. Amplaz vum Code an de Vim Kär gebaut fir de GUI z'ënnerstëtzen, proposéiert Neovim eng universell Schicht ze benotzen déi Iech erlaabt Interfaces mat verschiddenen Toolkits ze kreéieren.

Plugins fir Neovim ginn als separat Prozesser gestart, fir Interaktioun mat deem de MessagePack Format benotzt gëtt. Interaktioun mat Plugins gëtt asynchron duerchgefouert, ouni d'Basiskomponenten vum Editor ze blockéieren. Fir Zougang zum Plugin ze kréien, kann en TCP Socket benotzt ginn, d.h. de Plugin kann op engem externen System lafen. Zur selwechter Zäit bleift Neovim Réckkompatibel mat Vim, ënnerstëtzt weider Vimscript (Lua gëtt als Alternativ ugebueden) an ënnerstëtzt Verbindunge fir déi meescht Standard Vim Plugins. Dem Neovim seng fortgeschratt Feature kënne benotzt ginn a Plugins gebaut mat Neovim-spezifesche APIs.

De Moment sinn ongeféier 130 spezifesch Plugins scho virbereet, Bindunge si verfügbar fir Plugins ze kreéieren an Interfaces ëmzesetzen mat verschiddene Programméierungssproochen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) a Kaderen (Qt, ncurses, Node .js, Electron, GTK). Verschidde User Interface Optiounen ginn entwéckelt. GUI Add-ons si vill wéi Plugins, awer am Géigesaz zu Plugins, initiéieren se Uruff un Neovim Funktiounen, während Plugins vu bannen Neovim genannt ginn.

E puer vun den Ännerungen an der neier Versioun:

  • Добавлен встроенный LSP-клиент (Language Server Protocol) на языке Lua, который можно использовать для подключения к внешним сервисам для анализа и автодополнения кода.
  • Добавлен API для управления оформлением буферов выделения.
  • Добавлен API для использования расширенных меток, позволяющих отслеживать изменения на уровне отдельных байтов.
  • Расширена поддержка Lua, как языка для разработки плагинов и управления конфигурацией.
  • Добавлена экспериментальная поддержка движка разбора синтаксиса tree-sitter.

Source: opennet.ru

Setzt e Commentaire