Выпуск текстового редактора Neovim 0.10

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3249
Зарегистрирован: 20.08.2022

#

Выпуск текстового редактора Neovim 0.10
Дата публикации:Fri, 17 May 2024 09:57:17 +0300




Опубликован релиз Neovim 0.10, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. Проект уже более 10 лет занимается переработкой кодовой базы Vim, в результате которой вносятся изменения, упрощающие сопровождение кода, предоставляющие средства разделения труда между несколькими мэйнтейнерами, отделяющие интерфейс от базовой части (интерфейс можно менять, не трогая внутренности) и реализующие новую расширяемую архитектуру на основе плагинов. Оригинальные наработки проекта распространяются под лицензией Apache 2.0, а базовая часть под лицензией Vim. Готовые сборки подготовлены для Linux (appimage), Windows и macOS.





Из проблем Vim, побудивших к созданию Neovim, отмечается раздутая монолитная кодовая база, состоящая более чем из 300 тысяч строк кода на языке Си (C89). Во всех нюансах кодовой базы Vim разбирается всего несколько человек, а все изменения контролирует один мэйнтейнер, что затрудняет сопровождение и работу над усовершенствованием редактора. Вместо встроенного в ядро Vim кода для поддержки GUI в Neovim предлагается использовать универсальную прослойку, позволяющую создавать интерфейсы с использованием различных тулкитов.




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




За время существования проекта подготовлено более тысячи специфичных плагинов, доступны биндинги для создания плагинов и реализаций интерфейсов с использованием различных языков программирования (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) и фреймворков (Qt, ncurses, Node.js, Electron, GTK). Развивается несколько вариантов пользовательского интерфейса. GUI-надстройки во многом напоминают плагины, но, в отличие от плагинов, они инициируют вызов функций Neovim, в то время как плагины вызываются из Neovim.



Среди изменений в новой версии:
  • По умолчанию предложена новая цветовая схема, в которой уменьшена яркость, задействованы более сбалансированные сочетания цветов и решены проблемы, возникающие у людей с отклонениями цветовосприятия.
    ИзображениеИзображение
    Изменены привязки клавиш: "K" - при включении LSP-клиента показывает информацию о функции и переменной, на которые указывает курсор, "[d" и "]d" - перемещение по диагностическим сообщениям, <C-W>d - вывод дополнительной информации о диагностическом сообщении.

    Встроена функциональность плагина vim-commentary для быстрого обрамления символами комментария строк и блоков с кодом, учитывая контекст (например, для содержимого тега <script> будут использоваться символы "//", а для HTML - "<!--" "-->"

    Добавлена опция 'termsync', включающая режим синхронизированного вывода, при котором для устранения мерцания и разрывов на экране осуществляется накопление обновлений интерфейса и их отображение в терминале одной порцией.

    Для записи в системный буфер обмена задействована escape-последовательность "OSC 52", если работа осуществляется в сеансе SSH, не включена настройка 'clipboard' и имеется эмулятор терминала, поддерживающий "OSC 52".

    Добавлена экспериментальная поддержка оформления гиперссылок при помощи escape-последовательности OSC 8. По умолчанию данная возможность применяется для выделения ссылок в документах Markdown, оформленных в виде "[example](https://example.com)".
    Изображение

    Обеспечено автоматическое определение поддержки терминалом 24-разрядного представления цветов ("truecolor").

    При использовании LSP (Language Server Protocol) обеспечен вывод подсказок по месту, в виде виртуального текста, показываемого другим цветом прямо в коде, но без фактического добавления в исходные тексты (на скриншоте подсказки отображаются тёмно серым цветом).
    Изображение
    Расширены возможности для инспектирования синтаксического дерева исходного кода. Добавлен интерактивный режим написания запросов к синтаксическому дереву, на лету применяемых к текущему коду.
    Изображение
    Добавлена возможность указания модификаторов в команде ":terminal", например, ":botright terminal" для открытия нового окна терминала в нижней правой части экрана.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61195

Жизнь за Нер'зула!

Ответить