Доступан је Неовим 0.5, модернизована верзија Вим едитора

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

Један од проблема са Вим-ом који је подстакао стварање Неовог је надувена, монолитна кодна база од преко 300 линија Ц кода (Ц89). Само неколико људи разуме све нијансе Вим кодне базе, а све промене контролише један одржавалац, што отежава одржавање и рад на побољшању уређивача. Уместо кода уграђеног у Вим језгро за подршку ГУИ, Неовим предлаже коришћење универзалног слоја који вам омогућава да креирате интерфејсе користећи различите комплете алата.

Додаци за Неовим се покрећу као засебни процеси, за интеракцију са којима се користи формат МессагеПацк. Интеракција са додацима се врши у асинхроном режиму, без блокирања основних компоненти уређивача. За приступ додатку може се користити ТЦП соцкет, тј. додатак може да ради на спољном систему. У исто време, Неовим остаје компатибилан са Вим-ом, наставља да подржава Вимсцрипт (Луа се нуди као алтернатива) и подржава повезивање већине регуларних Вим додатака. Напредне функције Неовим могу се користити у додацима направљеним помоћу АПИ-ја специфичног за Неовим.

Тренутно је већ припремљено око 130 специфичних додатака, доступни су везови за креирање додатака и имплементацију интерфејса користећи различите програмске језике (Ц++, Цлојуре, Перл, Питхон, Го, Јава, Лисп, Луа, Руби) и оквире (Кт, нцурсес, Ноде .јс, Елецтрон, ГТК). Развија се неколико опција корисничког интерфејса. ГУИ додаци су слични додацима на много начина, али за разлику од додатака, они покрећу позиве Неовим функцијама, док се додаци позивају из Неовим.

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

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

Извор: опеннет.ру

Додај коментар