Ntọhapụ nke Neovim 0.7.0, ụdị onye ndezi Vim emelitere

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

Otu n'ime nsogbu dị na Vim nke kpaliri ịmepụta Neovim bụ eriri ya, koodu monolithic, nke nwere ihe karịrị 300 puku ahịrị nke koodu C (C89). Naanị mmadụ ole na ole na-aghọta nuances niile nke Vim codebase, na mgbanwe niile na-achịkwa otu onye na-elekọta ya, nke na-eme ka o sie ike idobe ma melite onye nchịkọta akụkọ. Kama koodu etinyere n'ime Vim core iji kwado GUI, Neovim na-atụ aro iji oyi akwa zuru ụwa ọnụ nke na-enye gị ohere ịmepụta oghere site na iji ngwa ngwa dị iche iche.

A na-ewepụta ngwa mgbakwunye maka Neovim dị ka usoro dị iche iche, maka mmekọrịta nke ejiri usoro MessagePack mee ihe. A na-eme mmekọrịta na plugins n'otu n'otu, na-enweghị igbochi ihe ndị bụ isi nke onye nchịkọta akụkọ. Iji nweta ngwa mgbakwunye ahụ, enwere ike iji oghere TCP mee ihe, ya bụ. ngwa mgbakwunye nwere ike na-agba ọsọ na mpụga usoro. N'otu oge ahụ, Neovim na-anọgide na-aga azụ dakọtara na Vim, na-aga n'ihu na-akwado Vimscript (a na-enye Lua dị ka ihe ọzọ) ma na-akwado njikọ maka ọtụtụ plugins Vim ọkọlọtọ. Enwere ike iji njirimara dị elu nke Neovim na plugins arụpụtara site na iji API kpọmkwem Neovim.

В настоящее время уже подготовлено около 130 специфичных плагинов, доступны биндинги для создания плагинов и реализаций интерфейсов с использованием различных языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) и фреймворков (Qt, ncurses, Node.js, Electron, GTK). Развивается несколько вариантов пользовательского интерфейса. GUI-надстройки во многом напоминают плагины, но, в отличие от плагинов, они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.

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

isi: opennet.ru

Tinye a comment