Релиз текстового редактора Vim 9.0
После двух с половиной лет разработки состоялся релиз текстового редактора Vim 9.0. Код Vim распространяется под собственной копилефт лицензией, совместимой с GPL и позволяющей без ограничений использовать, распространять и перерабатывать код. Основная особенность лицензии Vim связана с возвратом изменений — реализованные в сторонних продуктах улучшения должны быть переданы в исходный проект, если мэйнтейнер Vim посчитает эти улучшения заслуживающими внимания и отправит соответствующий запрос. По типу распространения Vim относится к Сharityware, т.е. вместо продажи программы или сбора пожертвований на нужды проекта авторы Vim просят перечислить любую сумму на благотворительность, если программа понравится пользователю.
В Vim 9 предложен новый язык разработки скриптов и плагинов — Vim9 Script, предоставляющий синтаксис, близкий к JavaScript, TypeScript и Java. Новый синтаксис проще для освоения новичками, но обратно не совместим со старым языком сценариев. При этом поддержка ранее используемого языка и совместимость с существующими плагинами и скриптами полностью сохранена — старый и новый языки поддерживаются параллельно. Прекращение поддержки старого языка не планируется.
Кроме переработки синтаксиса в Vim9 Script реализована поддержка компилируемых функций, позволяющих существенно увеличить производительность. В проведённых тестах компилируемые в байткод функции позволили увеличить скорость выполнения скриптов в 10–100 раз. Кроме того, в Vim9 Script прекращена обработка аргументов функций в виде ассоциированных массивов, приводившая к большим накладным расходам. Функции теперь определяются при помощи выражения «def» и требуют явного указания перечня аргументов и возвращаемых типов. Переменные определяются при помощи выражения «var» с явным указание типа.
Разделение выражений на несколько строк теперь не требует использования обратного слэша. Полностью переделан механизм обработки ошибок. Для запуска функций не требуется указание ключевого слова «call», а для присвоений значений «let». Упрощено создание модулей — добавлена возможность экспортировать отдельные функции и переменные для использования в других файлах. Комментарии отделяются символом »#» вместо двойных кавычек. В будущих выпусках намечена реализация поддержки классов.
Среди других изменений:
- В состав включён набор цветовых схем.
Улучшена поддержка проверки правописания и автодополнения ввода.
- Добавлены новые настройки: 'autoshelldir', 'cdhome', 'cinscopedecls', 'guiligatures', 'mousemoveevent', 'quickfixtextfunc', 'spelloptions', 'thesaurusfunc', 'xtermcodes'.
- Добавлены новые команды: argdedupe, balt, def, defcompile, disassemble, echoconsole, enddef, eval, export, final, import, var и vim9script.
- Предоставлена возможность открытия терминала во всплывающем окне (popup-terminal) и выбора цветового оформления терминала.
Добавлен канальный режим взаимодействия с сервером LSP (Language Server Protocol).
- Добавлена поддержка операционной системы Haiku.
Источник: http://www.opennet.ru/opennews/art.shtml? num=57423
© OpenNet