Neovim 0.5, ụdị onye editọ Vim emelitere, dị

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

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.

Ugbu a, ihe dị ka 130 kpọmkwem plugins adịla njikere, njikọ dị maka ịmepụta plugins na mmejuputa interfaces site na iji asụsụ mmemme dị iche iche (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) na frameworks (Qt, ncurses, Node .js, Electron, GTK). A na-emepụta ọtụtụ nhọrọ interface onye ọrụ. GUI tinye-ons yiri plugins n'ọtụtụ ụzọ, mana n'adịghị ka plugins, ha na-ebute oku na ọrụ Neovim, ebe a na-akpọ plugins n'ime Neovim.

Некоторые из изменений в новой версии:

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

isi: opennet.ru

Tinye a comment