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

Neovim 0.6.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 versiyada bəzi dəyişikliklər:

  • Yerli dəyişənlər üçün dəstək vim skriptlərinə əlavə edildi, əhatə dairəsi yalnız cari skript ilə məhdudlaşır.
  • Plugin inkişafı və konfiqurasiyanın idarə edilməsi üçün əhəmiyyətli dərəcədə təkmilləşdirilmiş Lua dili dəstəyi. Vim skriptlərində v:lua prefiksini (məsələn, “arg1->v:lua.somemod.func(arg2)”) təyin etməklə Lua funksiyalarını metod kimi çağırmaq imkanı əlavə edilmişdir.
  • 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. LSP-dən istifadə Visual Studio Code redaktoru üçün hazırlanmış müxtəlif proqramlaşdırma dilləri üçün 150-dən çox hazır işləyicidən istifadə etməyə imkan verir.
  • Kodda problemlərin diaqnostikası üçün təkmilləşdirilmiş alətlər. Diaqnostik mesajların mətnini və bu cür mesajlarla əlaqəli kodu olan üzən pəncərələri göstərmək imkanı əlavə edildi. LSP serveri tərəfindən ötürülən diaqnostik mesajların emalı təmin edilir.
  • Məsələn, xidmət məlumatı olan blokları göstərmək üçün istifadə edilə bilən virtual sətirlər üçün əlavə dəstək.
  • Müxtəlif performans optimallaşdırmaları edilmişdir, məsələn, vurğulanmış qrup adları üçün hash cədvəli işə salınmışdır.
  • Windows 7 və Windows-un 32-bit quruluşlarına dəstək dayandırılıb.

Mənbə: opennet.ru

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