В рамках проекта Neovim предпринята попытка модернизации Vim
Проблему также представляет метод сопровождения кодовой базы Vim. У проекта сейчас один мэйнтейнер, который достаточно скрупулезно подходит к процессу проверки и принятия патчей, что затрудняет продвижение изменений в Vim. В итоге, ядро Vim заметно отстаёт по темпу разработки от потребностей экосистемы разработчиков плагинов. Среди целей проекта Neovim называется упрощение процесса сопровождения кодовой базы, разделение полномочий между несколькими мэйнтейнерами и ускорение продвижения исправлений и новых возможностей. При этом проект Neovim не предусматривает переработку Vim с нуля, изменение модели редактирования Vim. Также будет сохранена поддержка vimscript и большинство плагинов на vimscript продолжат работу без изменений.
Для финансирования разработки была запущена кроудфандинг-кампания, в рамках которой за первый день было собрано 12 тысяч долларов (всего планировалось собрать 10 тысяч). Из практических изменений намечен перевод Vim на новую архитектуру плагинов, позволяющую разрабатывать расширения на любых языках программирования. Плагины будут выполняться в форме отдельных процессов, взаимодействующих с ядром vim при помощи механизма RPC.
Кроме того, планируется создание нового современного пользовательского интерфейса, разработка которого будет вестись в качестве надстройки, не требующей изменения базовой части Vim, что избавляет от необходимости продвигать патчи в ядро Vim. Базовый код для поддержки GUI предлагается удалить из ядра Vim и использовать более универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов. GUI-надстройки во многом напоминают плагины, а отличие от плагинов состоит в том, что плагины вызываются из Neovim, а GUI-надстройки выступают первичным процессом и вызывают функции Neovim.
Для ведения разработки предлагается использовать GitHub. На первом этапе работа сосредоточена на переводе кодовой базы на систему сборки cmake и проведения чистки кода от привязки к устаревшим системам и компиляторам. Вместо специфичного для платформ кода для организации ввода/вывода планируется задействовать библиотеку libuv.
Bram Moolenaar, текущий мэйнтейнер проекта Vim, скептически отнёсся к проекту Neovim, выразив опасение, что в результате переработки будет потеряна поддержка некоторых платформ и будут внесены новые ошибки. По его мнению, полный рефакторинг не является выходом. Вместо этого лучше потратить силы на улучшение того, что уже есть или на проведение небольших переработок, нацеленных на улучшение работы Vim для пользователей.
Источник: http://www.opennet.ru/opennews/art.shtml?num=39178
|
0 | Tweet | Нравится |
|