Neovim 0.7.0 versiyasi, Vim muharririning modernizatsiya qilingan versiyasi

Neovim 0.7.0 chiqarildi, Vim muharririning vilkalari kengaytirilish va moslashuvchanlikni oshirishga qaratilgan. Loyiha etti yildan ko'proq vaqt davomida Vim kod bazasini qayta ishlamoqda, buning natijasida kodga texnik xizmat ko'rsatishni soddalashtiradigan, bir nechta xizmat ko'rsatuvchilar o'rtasida mehnatni taqsimlash vositasini ta'minlaydigan, interfeysni asosiy qismdan ajratadigan o'zgarishlar kiritildi (interfeys bo'lishi mumkin). ichki qismlarga tegmasdan o'zgartirildi) va plaginlar asosida yangi kengaytiriladigan arxitekturani amalga oshiring. Loyihaning asl ishlanmalari Apache 2.0 litsenziyasi, asosiy qismi esa Vim litsenziyasi ostida tarqatiladi. Linux (appimage), Windows va macOS uchun tayyor yig'ilishlar tayyorlangan.

Neovim-ni yaratishga turtki bo'lgan Vim bilan bog'liq muammolardan biri uning 300 mingdan ortiq C (C89) kodlaridan iborat bo'lgan monolit kod bazasi edi. Vim kod bazasining barcha nuanslarini faqat bir nechta odam tushunadi va barcha o'zgarishlar bitta xizmat ko'rsatuvchi tomonidan boshqariladi, bu esa muharrirni saqlash va yaxshilashni qiyinlashtiradi. GUI-ni qo'llab-quvvatlash uchun Vim yadrosiga o'rnatilgan kod o'rniga Neovim turli xil asboblar to'plamlari yordamida interfeyslarni yaratishga imkon beruvchi universal qatlamdan foydalanishni taklif qiladi.

Neovim uchun plaginlar alohida jarayonlar sifatida ishga tushiriladi, ular bilan ishlash uchun MessagePack formati qo'llaniladi. Plaginlar bilan o'zaro ishlash muharrirning asosiy komponentlarini bloklamasdan asinxron tarzda amalga oshiriladi. Plaginga kirish uchun TCP soketidan foydalanish mumkin, ya'ni. plagin tashqi tizimda ishlashi mumkin. Shu bilan birga, Neovim Vim bilan orqaga qarab mos bo'lib qoladi, Vimscript-ni qo'llab-quvvatlashda davom etadi (Lua muqobil sifatida taqdim etiladi) va ko'pgina standart Vim plaginlari uchun ulanishlarni qo'llab-quvvatlaydi. Neovim-ning ilg'or xususiyatlaridan Neovim-ga xos API-lar yordamida yaratilgan plaginlarda foydalanish mumkin.

Hozirgi vaqtda 130 ga yaqin maxsus plaginlar allaqachon tayyorlangan, plaginlarni yaratish va turli xil dasturlash tillari (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) va ramkalar (Qt, ncurses, Node .js, Electron, GTK). Bir nechta foydalanuvchi interfeysi variantlari ishlab chiqilmoqda. GUI qo'shimchalari plaginlarga o'xshaydi, lekin plaginlardan farqli o'laroq, ular Neovim funktsiyalariga qo'ng'iroqlarni boshlaydi, plaginlar esa Neovim ichidan chaqiriladi.

Yangi versiya uzoqdan ishlash uchun dastlabki yordamni taklif qiladi, bu sizga Neovim-ni serverda ishga tushirish va unga alohida ui_client yordamida mijoz tizimidan ulanish imkonini beradi. Boshqa o'zgarishlarga quyidagilar kiradi: Python 2-ni qo'llab-quvvatlash to'xtatildi, klaviatura xaritasida Lua funktsiyalaridan foydalanishga ruxsat berildi, API-ga yangi buyruqlar qo'shildi, plaginlarni ishlab chiqish va konfiguratsiyani boshqarish uchun Lua tilidan foydalanish imkoniyati sezilarli darajada kengaytirildi, koddagi muammolarni tashxislash vositalari takomillashtirildi, global holat panelini qo'llab-quvvatlash qo'shildi, ishlashni optimallashtirish amalga oshirildi. O'rnatilgan LSP mijozining (Language Server Protocol) imkoniyatlari kengaytirildi, ular tahlil mantig'ini va kodni to'ldirishni tashqi serverlarga o'tkazish uchun ishlatilishi mumkin.

Manba: opennet.ru

a Izoh qo'shish