Neovim 0.5, Vim редакторының жаңартылған нұсқасы қол жетімді

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

Neovim-ті құруға түрткі болған Vim проблемаларының бірі оның 300 мыңнан астам C (C89) код жолынан тұратын кеңейтілген, монолитті кодтық базасы болды. Vim кодтық базасының барлық нюанстарын санаулы адамдар ғана түсінеді және барлық өзгерістерді бір қолдаушы басқарады, бұл редакторды қолдау мен жақсартуды қиындатады. GUI-ге қолдау көрсету үшін Vim өзегіне енгізілген кодтың орнына Neovim әртүрлі құралдар жинағы арқылы интерфейстер жасауға мүмкіндік беретін әмбебап қабатты пайдалануды ұсынады.

Neovim плагиндері MessagePack пішімі қолданылатын өзара әрекеттесу үшін бөлек процестер ретінде іске қосылады. Плагиндермен өзара әрекеттесу редактордың негізгі компоненттерін блоктаусыз асинхронды түрде жүзеге асырылады. Плагинге қол жеткізу үшін TCP ұяшығын пайдалануға болады, яғни. плагинді сыртқы жүйеде іске қосуға болады. Сонымен қатар, Neovim Vim-пен кері үйлесімді болып қалады, Vimscript-ті (Lua балама ретінде ұсынылады) қолдауды жалғастырады және көптеген стандартты Vim плагиндері үшін қосылымдарды қолдайды. Neovim қосымша мүмкіндіктерін Neovim арнайы API интерфейстері арқылы құрастырылған плагиндерде пайдалануға болады.

Қазіргі уақытта 130-ға жуық арнайы плагиндер дайындалды, плагиндер жасауға және әртүрлі бағдарламалау тілдерін (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) және фреймворктарды (Qt, ncurses, Node .js, Electron, GTK). Пайдаланушы интерфейсінің бірнеше опциялары әзірленуде. GUI қондырмалары плагиндерге ұқсайды, бірақ плагиндерден айырмашылығы олар Neovim функцияларына қоңырау шалуды бастайды, ал плагиндер Neovim ішінен шақырылады.

Жаңа нұсқадағы кейбір өзгерістер:

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

Ақпарат көзі: opennet.ru

пікір қалдыру