Neovim 0.4, Vim muharririning modernizatsiya qilingan versiyasi mavjud

nashr etilgan reliz Neovim 0.4, Vim muharriridan vilka, qaratilgan kengaytiruvchanlik va moslashuvchanlikni oshirish bo'yicha. Loyihaning original ishlanmalari tarqaldi Apache 2.0 litsenziyasi va asosiy qismi Vim litsenziyasi ostida.

Neovim loyihasi doirasida Vim kodlari bazasi besh yildan ko'proq vaqt davomida qayta ishlanmoqda, buning natijasida kodlarga xizmat ko'rsatishni soddalashtiradigan, bir nechta texnik xizmat ko'rsatuvchilar o'rtasida mehnatni taqsimlash vositasini ta'minlaydigan o'zgarishlar kiritildi, interfeysni interfeysdan ajratib turadi. asosiy qism (interfeys ichki qismlarga tegmasdan o'zgartirilishi mumkin) va yangisini amalga oshiring kengaytiriladigan arxitektura plaginlarga asoslangan.

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.

Hozirda allaqachon tayyorlangan Har xil dasturlash tillari (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) va ramkalar (Qt80, ncurses, Node.js, elektron, 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.

O'zgarishlarning ba'zilari yangi versiya:

  • Yangi API funktsiyalari va foydalanuvchi interfeysi hodisalarining katta qismi qo'shildi.
  • Lua tilida plaginlarni ishlab chiqish uchun Nvim-Lua yangi standart kutubxonasi qo'shildi.
  • Foydalanuvchi interfeysi protokolini ishlab chiqish davom etmoqda, ekrandagi ma'lumotlarni individual belgilar emas, balki chiziqlar darajasida yangilash.
  • Har qanday joyga joylashtirilishi, biriktirilishi, alohida tahrirlash buferlariga ulanishi va Multigrid rejimida guruhlanishi mumkin bo'lgan to'liq huquqli suzuvchi oynalar uchun qo'shimcha qo'llab-quvvatlash.
  • Shaffof ochiladigan menyular uchun "pumblend" opsiyasi qo'shildi.

Manba: opennet.ru

a Izoh qo'shish