Vim redaktorunun modernləşdirilmiş versiyası olan Neovim 0.7.0-ın buraxılışı

Neovim 0.7.0 buraxıldı, Vim redaktorunun çəngəlliyi genişlənmə və çevikliyin artırılmasına yönəldilib. Layihə yeddi ildən çoxdur ki, Vim kod bazasını yenidən işləyir, nəticədə kodun saxlanmasını asanlaşdıran, bir neçə texniki qulluqçu arasında əmək bölgüsü vasitəsini təmin edən, interfeysi baza hissəsindən ayıran dəyişikliklər edilir (interfeys ola bilər). daxili hissələrə toxunmadan dəyişdirildi) və plaginlər əsasında yeni genişləndirilə bilən arxitektura tətbiq edin. Layihənin orijinal inkişafları Apache 2.0 lisenziyası, əsas hissəsi isə Vim lisenziyası altında paylanır. Linux (appimage), Windows və macOS üçün hazır montajlar hazırlanır.

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ırda 130-a yaxın xüsusi plaginlər artıq hazırlanmışdır, müxtəlif proqramlaşdırma dillərindən (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) və çərçivələrdən (Qt, ncurses, Node .js, Electron, GTK). Bir neçə istifadəçi interfeysi variantları hazırlanır. GUI əlavələri plaginlərə bənzəyir, lakin plaginlərdən fərqli olaraq onlar Neovim funksiyalarına zənglər edir, plaginlər isə Neovim daxilindən çağırılır.

Yeni versiya uzaqdan iş üçün ilkin dəstək təklif edir ki, bu da Neovim-i serverdə işə salmağa və ayrıca ui_client vasitəsilə müştəri sistemindən ona qoşulmağa imkan verir. Digər dəyişikliklərə aşağıdakılar daxildir: Python 2 üçün dəstək dayandırıldı, klaviatura xəritəsində Lua funksiyalarının istifadəsinə icazə verildi, API-yə yeni əmrlər əlavə edildi, plaginlərin hazırlanması və konfiqurasiyanın idarə edilməsi üçün Lua dilindən istifadə etmək imkanı əhəmiyyətli dərəcədə genişləndirildi, kodda problemlərin diaqnostikası üçün alətlər təkmilləşdirilib, qlobal status çubuğuna dəstək əlavə edilib, performans optimallaşdırmaları həyata keçirilib. Daxili LSP müştərisinin (Language Server Protocol) imkanları genişləndirilmişdir ki, bu da analiz məntiqini və kodun tamamlanmasını xarici serverlərə ötürmək üçün istifadə edilə bilər.

Mənbə: opennet.ru

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