Išleista Neovim 0.6.0, atnaujinta Vim redaktoriaus versija

Buvo išleista „Neovim 0.6.0“, „Vim“ redaktoriaus šakutė, orientuota į išplėtimo ir lankstumo didinimą. Projekte jau daugiau nei septynerius metus buvo pertvarkoma Vim kodų bazė, dėl to atliekami pakeitimai, kurie supaprastina kodo priežiūrą, suteikia galimybę paskirstyti darbą tarp kelių prižiūrėtojų, atskirti sąsają nuo bazinės dalies (sąsaja gali būti pakeista neliečiant vidinių dalių) ir įdiegti naują išplečiamą architektūrą, pagrįstą papildiniais. Originalios projekto versijos platinamos pagal Apache 2.0 licenciją, o pagrindinė dalis platinama pagal Vim licenciją. Paruošti rinkiniai Linux (appimage), Windows ir macOS operacijoms.

Viena iš Vim problemų, paskatinusių sukurti Neovim, buvo jos išpūsta, monolitinė kodo bazė, susidedanti iš daugiau nei 300 tūkstančių C (C89) kodo eilučių. Tik keli žmonės supranta visus Vim kodų bazės niuansus, o visus pakeitimus valdo vienas prižiūrėtojas, todėl sunku prižiūrėti ir tobulinti redaktorių. Vietoj kodo, integruoto į Vim branduolį, palaikantį GUI, Neovim siūlo naudoti universalų sluoksnį, leidžiantį kurti sąsajas naudojant įvairius įrankių rinkinius.

Neovim įskiepiai paleidžiami kaip atskiri procesai, sąveikai su kuriais naudojamas MessagePack formatas. Sąveika su papildiniais vykdoma asinchroniškai, neužblokuojant pagrindinių redaktoriaus komponentų. Norint pasiekti įskiepį, galima naudoti TCP lizdą, t.y. papildinį galima paleisti išorinėje sistemoje. Tuo pačiu metu Neovim išlieka suderinamas su Vim, toliau palaiko Vimscript (Lua siūloma kaip alternatyva) ir palaiko daugumos standartinių Vim įskiepių ryšius. Išplėstinės „Neovim“ funkcijos gali būti naudojamos papildiniuose, sukurtuose naudojant „Neovim“ specifines API.

Šiuo metu jau yra parengta apie 130 specifinių įskiepių, galimi įskiepiai, skirti kurti papildinius ir diegti sąsajas naudojant įvairias programavimo kalbas (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ir karkasus (Qt, ncurses, Node .js, Electron, GTK). Kuriamos kelios vartotojo sąsajos parinktys. GUI priedai yra labai panašūs į papildinius, tačiau skirtingai nei papildiniai, jie inicijuoja Neovim funkcijų skambučius, o papildiniai iškviečiami iš Neovim.

Kai kurie naujos versijos pakeitimai:

  • Vietinių kintamųjų palaikymas buvo įtrauktas į vim scenarijus, kurių apimtį riboja tik dabartinis scenarijus.
  • Žymiai patobulintas Lua kalbos palaikymas, skirtas įskiepių kūrimui ir konfigūracijos valdymui. Vim scenarijuose buvo pridėta galimybė iškviesti Lua funkcijas kaip metodus, nurodant v:lua priešdėlį (pavyzdžiui, „arg1->v:lua.somemod.func(arg2)“).
  • Išplėstos integruoto LSP kliento (Language Server Protocol) galimybės, kuriomis galima perkelti analizės logiką ir kodo užbaigimą į išorinius serverius. LSP naudojimas leidžia naudoti daugiau nei 150 paruoštų įvairių programavimo kalbų tvarkyklių, paruoštų Visual Studio Code redaktoriui.
  • Patobulinti kodo problemų diagnozavimo įrankiai. Pridėta galimybė rodyti diagnostinių pranešimų tekstus ir slankiuosius langus su su tokiais pranešimais susietu kodu. Numatytas LSP serverio perduodamų diagnostinių pranešimų apdorojimas.
  • Pridėtas virtualių eilučių palaikymas, kuris gali būti naudojamas, pavyzdžiui, norint rodyti blokus su paslaugų informacija.
  • Buvo atlikta įvairių našumo optimizacijų, pavyzdžiui, paryškintoms grupių pavadinimams įjungta maišos lentelė.
  • „Windows 7“ ir 32 bitų „Windows“ versijų palaikymas buvo nutrauktas.

Šaltinis: opennet.ru

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