Neovim 0.6.0 чыгарылышы, Vim редакторунун модернизацияланган версиясы

Neovim 0.6.0 чыгарылды, Vim редакторунун айрысы кеңейүүнү жана ийкемдүүлүктү жогорулатууга багытталган. Долбоор жети жылдан ашык убакыттан бери Vim коддук базасын кайра иштеп чыгууда, анын натыйжасында коддун тейлөөсүн жөнөкөйлөткөн, бир нече тейлөөчүлөрдүн ортосунда эмгекти бөлүштүрүүнүн каражатын камсыз кылган, интерфейсти базалык бөлүктөн бөлгөн өзгөртүүлөр киргизилди (интерфейс болушу мүмкүн). ички түзүлүшкө тийбестен өзгөртүлгөн) жана плагиндердин негизинде жаңы кеңейтилүүчү архитектураны ишке ашырыңыз. Долбоордун баштапкы иштеп чыгуулары Apache 2.0 лицензиясы, ал эми негизги бөлүгү Vim лицензиясы боюнча таратылат. Даяр ассамблеялар Linux (appimage), Windows жана macOS үчүн даярдалган.

Neovimди түзүүгө түрткү болгон Vim менен болгон көйгөйлөрдүн бири анын 300 миңден ашык C (C89) кодунан турган монолиттүү код базасы болгон. Vim код базасынын бардык нюанстарын саналуу гана адамдар түшүнөт жана бардык өзгөртүүлөр бир тейлөөчү тарабынан көзөмөлдөнөт, бул редакторду тейлөөнү жана жакшыртууну кыйындатат. GUIди колдоо үчүн Vim өзөгүнө орнотулган коддун ордуна, Neovim ар кандай инструменттердин жардамы менен интерфейстерди түзүүгө мүмкүндүк берген универсалдуу катмарды колдонууну сунуштайт.

Neovim үчүн плагиндер MessagePack форматы колдонулган өз ара аракеттенүү үчүн өзүнчө процесстер катары ишке киргизилет. Плагиндер менен өз ара аракеттенүү редактордун негизги компоненттерине бөгөт койбостон, асинхрондуу түрдө ишке ашырылат. Плагинге кирүү үчүн, TCP розеткасын колдонсо болот, б.а. плагин тышкы системада иштетилиши мүмкүн. Ошол эле учурда, Neovim Vim менен артка шайкеш келет, Vimscriptти колдоону улантууда (Луа альтернатива катары сунушталат) жана көпчүлүк стандарттуу Vim плагиндеринин туташуусун колдойт. Neovimдин өркүндөтүлгөн мүмкүнчүлүктөрү Neovimге тиешелүү API'лер аркылуу курулган плагиндерде колдонулушу мүмкүн.

Учурда 130га жакын атайын плагиндер даярдалган, плагиндерди түзүү жана ар кандай программалоо тилдерин (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) жана алкактарды (Qt, ncurses, Node .js, Electron, GTK). Колдонуучу интерфейсинин бир нече варианттары иштелип чыгууда. GUI кошумчалары плагиндерге окшош, бирок плагиндерден айырмаланып, алар Neovim функцияларына чалууларды башташат, ал эми плагиндер Neovimдин ичинен чакырылат.

Некоторые из изменений в новой версии:

  • В vim-скрипты добавлена поддержка локальных переменных, область видимости для которых ограничена только текущим скриптом.
  • Значительно улучшена поддержка языка Lua для разработки плагинов и управления конфигурацией. В vim-скриптах добавлена возможность вызова Lua-функций как методов через указание префикса v:lua (например, «arg1->v:lua.somemod.func(arg2)»).
  • Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы. Применение LSP позволяет использовать более 150 готовых обработчиков для различных языков программирования, подготовленных для редактора кода Visual Studio Code.
  • Улучшены средства диагностики проблем в коде. Добавлена возможность вывода текста диагностических сообщений и плавающих окон с кодом, связанным с подобными сообщениями. Обеспечена обработка диагностических сообщений, передаваемых LSP-сервером.
  • Добавлена поддержка виртуальных строк, которые могут использоваться, например, для вывода блоков со служебной информацией.
  • Внесены различные оптимизации производительности, например, задействована хэш таблица для подсвечиваемых имён групп.
  • Прекращена поддержка Windows 7 и 32-разрядных сборок для Windows.

Source: opennet.ru

Комментарий кошуу