The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Первый выпуск Neovim, модернизированного варианта редактора ..."
Отправлено opennews, 03-Ноя-15 15:31 
Состоялся (https://github.com/neovim/neovim/releases/tag/v0.1.0) первый релиз проекта Neovim (https://neovim.io/), в рамках которого развивается ответвление от редактора Vim, разработка которого
сфокусирована (https://github.com/neovim/neovim/wiki/Introduction) на  повышении расширяемости и гибкости. В рамках проекта Neovim уже около двух лет проводится агрессивная переработка кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять не трогая внутренности) и  реализующие новую расширяемую архитектуру (https://github.com/neovim/neovim/wiki/Plugin-UI-architecture) на основе плагинов.


Из проблем Vim отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89). Во всех нюансах кодовой базы Vim разбирается всего несколько человек, а все изменения контролирует один мэйнтейнер, что затрудняет сопровождение и работу над усовершенствованием редактора. Вместо встроенного в ядро Vim  кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.


В первом выпуске уже готовы механизмы для автоматического объединения истории работы между несколькими экземплярами редактора, система конфигурации переработана для соответствия требованиям стандарта XDG, встроен (https://www.youtube.com/watch?v=xZbMVj9XSUo) эмулятор терминала, добавлены средства выполнения работ в асинхронном режиме (можно запустить команду и не дожидаясь её завершения вернуться к редактированию),  добавлен API MessagePack (https://msgpack.org/) для взаимодействия с плагинами и подготовлены средства отслеживания изменения состояния. Из выполняемых в настоящее время работ отмечается портирование кода ввода/вывода на библиотеку libuv (https://github.com/libuv/libuv/), замена тестового набора на тесты Lua и использование вместо языка VimL транслятора Lua.

Плагины к Neovim запускаются как отдельные процессы, для взаимодействия с которыми используется формат MessagePack. Взаимодействие с плагинами производится в асинхронном режиме, без блокирования базовых компонентов редактора. Для обращения к плагину может использоваться TCP-сокет, т.е. плагин может запускаться на внешней системе. При этом  Neovim остаётся обратно совместимым с Vim, продолжает поддерживать Vimscript (Lua предлагается в качестве альтернативы) и поддерживает подключения большинства штатных плагинов Vim. Расширенные возможности Neovim могут быть использованы в плагинах, построенных с использованием специфичного для Neovim API.

В настоящее время уже подготовлено (https://github.com/neovim/neovim/wiki/Related-projects#plugins) около 20 специфичных плагинов, доступны биндинги для создания плагинов и реализаций интерфейсов с использованием различных языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp,Lua, Ruby) и фреймворков (Qt5, ncurses, Node.js, Electron, GTK+). Развивается несколько вариантов пользовательского интерфейса.  GUI-надстройки во многом напоминают плагины, но в отличие от плагинов они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.

URL: https://news.ycombinator.com/item?id=10488188
Новость: http://www.opennet.me/opennews/art.shtml?num=43250

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру