Рэліз тэкставага рэдактара 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.

Крыніца: opennet.ru

Дадаць каментар