Релиз текстового редактора Vim 9.0
В 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.
Источник: новость на opennet