Galima įsigyti „Neovim 0.4“, atnaujintą „Vim“ redaktoriaus versiją

paskelbta paleisti Neovim 0.4, šakutė iš Vim redaktoriaus, susikaupęs dėl išplečiamumo ir lankstumo didinimo. Originalios projekto raidos skleisti pagal Apache 2.0 licenciją, o bazinę dalį pagal Vim licenciją.

Įgyvendinant projektą „Neovim“, Vim kodų bazė buvo perdarinėjama daugiau nei penkerius metus, 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 bazės. dalį (sąsają galima keisti neliečiant vidinių dalių) ir įdiegti naują išplečiama architektūra remiantis papildiniais.

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 paruoštas Yra apie 80 konkrečių įskiepių, sąsajų kuriant papildinius ir diegiant sąsajas naudojant įvairias programavimo kalbas (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ir karkasus (Qt5, ncurses, Node.js, Elektronas, 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 pakeitimai nauja versija:

  • Pridėta didelė dalis naujų API funkcijų ir vartotojo sąsajos įvykių.
  • Pridėta nauja standartinė biblioteka Nvim-Lua, skirta kurti papildinius Lua kalba.
  • Tęsiamas vartotojo sąsajos protokolo kūrimas, atnaujinant informaciją ekrane eilučių, o ne atskirų simbolių lygiu.
  • Pridėtas pilnaverčių slankiųjų langų palaikymas, kuriuos galima įdėti bet kurioje vietoje, pritvirtinti, susieti su atskirais redagavimo buferiais ir sugrupuoti Multigrid režimu.
  • Pridėta parinktis „Pumblend“ permatomiems išskleidžiamiesiems meniu.

Šaltinis: opennet.ru

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