Vim redaktorunun modernləşdirilmiş versiyası olan Neovim 0.4 mövcuddur

nəşr edilmişdir buraxın Neovim 0.4, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. Оригинальные наработки проекта yayılma под лицензией Apache 2.0, а базовая часть под лицензией Vim.

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

Neovim-in yaradılmasına təkan verən Vim problemlərindən biri onun 300 min sətirdən çox C (C89) kodundan ibarət şişkin, monolit kod bazası idi. Vim kod bazasının bütün nüanslarını yalnız bir neçə nəfər başa düşür və bütün dəyişikliklər bir baxıcı tərəfindən idarə olunur ki, bu da redaktorun saxlanmasını və təkmilləşdirilməsini çətinləşdirir. GUI-ni dəstəkləmək üçün Vim nüvəsinə quraşdırılmış kodun əvəzinə Neovim müxtəlif alət dəstlərindən istifadə edərək interfeyslər yaratmağa imkan verən universal təbəqədən istifadə etməyi təklif edir.

Neovim üçün plaginlər MessagePack formatının istifadə olunduğu qarşılıqlı əlaqə üçün ayrıca proseslər kimi işə salınır. Pluginlərlə qarşılıqlı əlaqə redaktorun əsas komponentlərini bloklamadan asinxron şəkildə həyata keçirilir. Pluginə daxil olmaq üçün bir TCP yuvası istifadə edilə bilər, yəni. plagin xarici sistemdə işlədilə bilər. Eyni zamanda, Neovim Vim ilə geriyə uyğun olaraq qalır, Vimscript-i dəstəkləməyə davam edir (Lua alternativ olaraq təklif olunur) və əksər standart Vim plaginləri üçün bağlantıları dəstəkləyir. Neovim-in qabaqcıl xüsusiyyətləri Neovim-ə məxsus API-lərdən istifadə edərək qurulmuş plaginlərdə istifadə edilə bilər.

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

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

  • Добавлена большая порция новых функций API и событий интерфейса пользователя.
  • Добавлена новая стандартная библиотека Nvim-Lua для разработки плагинов на языке Lua.
  • Продолжено развитие протокола пользовательского интерфейса, выполняющего обновление информации на экране на уровне строк, а не отдельных символов.
  • Добавлена поддержка полноценных плавающих окон, которые могут размещаться в произвольном месте, прикрепляться, связываться с отдельными буферами редактирования, группироваться в режиме Multigrid.
  • Добавлена опция ‘pumblend’ для полупрозрачных выпадающих меню.

Mənbə: opennet.ru

Добавить комментарий