Izdaja Neovim 0.7.0, posodobljene različice urejevalnika Vim

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

Ena od težav z Vimom, ki je spodbudila ustvarjanje Neovim, je bila njegova napihnjena, monolitna kodna baza, sestavljena iz več kot 300 tisoč vrstic kode C (C89). Le nekaj ljudi razume vse nianse kodne baze Vim, vse spremembe pa nadzoruje en vzdrževalec, kar otežuje vzdrževanje in izboljšanje urejevalnika. Namesto kode, ki je vgrajena v jedro Vim za podporo GUI, Neovim predlaga uporabo univerzalne plasti, ki vam omogoča ustvarjanje vmesnikov z uporabo različnih kompletov orodij.

Vtičniki za Neovim se zaženejo kot ločeni procesi, za interakcijo s katerimi se uporablja format MessagePack. Interakcija z vtičniki se izvaja asinhrono, brez blokiranja osnovnih komponent urejevalnika. Za dostop do vtičnika lahko uporabite vtičnico TCP, tj. vtičnik se lahko izvaja v zunanjem sistemu. Hkrati Neovim ostaja nazaj združljiv z Vimom, še naprej podpira Vimscript (Lua je na voljo kot alternativa) in podpira povezave za večino standardnih vtičnikov Vim. Napredne funkcije Neovim je mogoče uporabiti v vtičnikih, zgrajenih z API-ji, specifičnimi za Neovim.

Trenutno je že pripravljenih približno 130 specifičnih vtičnikov, na voljo so vezave za ustvarjanje vtičnikov in implementacijo vmesnikov z uporabo različnih programskih jezikov (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) in ogrodij (Qt, ncurses, Node .js, Electron, GTK). Razvija se več možnosti uporabniškega vmesnika. Dodatki GUI so podobni vtičnikom, vendar za razliko od vtičnikov sprožijo klice funkcij Neovim, medtem ko se vtičniki kličejo znotraj Neovim.

В новой версии предложена начальная поддержка удалённой работы, позволяющая запустить Neovim на сервере и подключаться к нему с клиентской системы, используя отдельный ui_client. Среди других изменений: прекращена поддержка Python 2, разрешено использовании Lua-функций в keymap, добавлены новые команды в API, значительно расширены возможности по использованию языка Lua для разработки плагинов и управления конфигурацией, улучшены средства диагностики проблем в коде, добавлена поддержка глобальной строки состояния, проведены оптимизации производительности. Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы.

Vir: opennet.ru

Dodaj komentar