Релиз текстового редактора Vim 8.2

После полутора лет разработки состоялся релиз текстового редактора Vim 8.2, который отнесён к категории незначительных выпусков, в котором устранены накопившиеся ошибки и предложены единичные новшества.

Код Vim распространяется под собственной копилефт лицензией, совместимой с GPL, и позволяющей без ограничений использовать, распространять и перерабатывать код. Основная особенность лицензии Vim связана с возвратом изменений — реализованные в сторонних продуктах улучшения должны быть переданы в исходный проект, если мэйнтейнер Vim посчитает эти улучшения заслуживающими внимания и отправит соответствующий запрос. По типу распространения, Vim относится к Сharityware, т.е. вместо продажи программы или сбора пожертвований на нужды проекта, авторы Vim просят перечислить любую сумму на благотворительность, если программа понравится пользователю.

В новой версии:

  • Реализована поддержка всплывающих окон, которые, наряду со свойствами текста, в ходе опроса на конференции VimConf 2018 были отмечены разработчиками плагинов как наиболее востребованные возможности, которых не хватает в Vim. Всплывающие окна позволяют отображать сообщения, отрывки кода и любую другую информацию поверх редактируемого текста. Данные окна могут быть подсвечены разными способами, быстро открыты и закрыты. Реализация указанной функциональности потребовала существенно доработки ранее используемых механизмов вывода на экран, а также расширения API для обеспечения работы со всплывающими окнами из плагинов.
  • Добавлена возможность определения свойств текста, при помощи которых можно выделять цветом куски текста или подсвечивать произвольные области. Свойства текста можно использовать в форме работающего в асинхронном режиме механизма выделения текста, альтернативного ранее доступным возможностям подсветки синтаксиса на базе шаблонов. Особенностью свойств текста также является, то что они прикреплены со связанным с ними текстом и сохраняются даже при вставке новых слов перед выделенным текстом.
  • Для наглядной демонстрации новых возможностей Vim 8.2 подготовлен плагин с игрой, позволяющей стрелять в бегущих по экрану овец. Бегущие овцы отображаются при помощи всплывающих окон, а расцветка реализована через свойства текста. 0_1576315404.png
  • Для демонстрации свойств текста дополнительно опубликован плагин govim, используемый для подсветки синтаксиса в программах на языке Go, получая информацию о семантике языка с внешнего LSP-сервера (Language Server Protocol). Всплывающие окна в govim используются для вывода контекстных подсказок для автодополнения имён и отображния описаний функций. 0_1576316861.png
  • Предложена новая команда »: const» для определения переменных, которые невозможно изменить:
              const TIMER_DELAY = 400 
  • Добавлена возможность определения словарей с буквенными ключами без использования кавычек:
             let options = #{width: 30, height: 24}  
  • Добавлена возможность блочных присвоений, упрощающих присвоение переменным многострочных кусков текста:
             let lines =‹‹ trim END            line one            line two         END  
  • Добавлена возможность построения цепочек функций при вызове методов:
             mylist-›filter(filterexpr)-›map(mapexpr)-›sort()-›join()  
  • В основной состав включена библиотека xdiff, позволившая значительно улучшить представление различий разных вариантов текста;
  • Добавлена настройка «modifyOtherKeys» для задания расширенных комбинаций клавиш
  • Добавлена поддержка консоли ConPTY, позволяющая добиться отображения всех цветов в консоли Windows 10;
  • Модернизирован установщик для Windows.

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

Источник: http://www.opennet.ru/opennews/art.shtml? num=52031

© OpenNet