I-Neovim 0.5, inguqulo yesimanje yomhleli we-Vim, iyatholakala

Ngemuva kweminyaka ecishe ibe mibili yokuthuthuka, i-Neovim 0.5 ikhishwe, imfoloko yomhleli we-Vim egxile ekwandiseni ukunwebeka nokuvumelana nezimo. Le phrojekthi ibisebenza kabusha isisekelo sekhodi ye-Vim iminyaka engaphezu kweyisikhombisa, ngenxa yalokho izinguquko ezenziwayo ezenza kube lula ukugcinwa kwekhodi, zinikeze indlela yokuhlukanisa umsebenzi phakathi kwabanakekeli abaningana, zihlukanise isikhombimsebenzisi nengxenye yesisekelo (i-interface ingaba ishintshiwe ngaphandle kokuthinta abangaphakathi) futhi isebenzise i-architecture entsha enwebekayo ngokusekelwe kuma-plugin. Intuthuko yasekuqaleni yephrojekthi isatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0, futhi ingxenye eyisisekelo isatshalaliswa ngaphansi kwelayisensi ye-Vim.

Enye yezinkinga nge-Vim edale ukuthi kudalwe i-Neovim isisekelo sayo sekhodi ekhukhumele, esine-monolithic, ehlanganisa imigqa engaphezu kwezinkulungwane ezingama-300 yekhodi C (C89). Abantu abambalwa kuphela abaqonda wonke ama-nuances we-Vim codebase, futhi zonke izinguquko zilawulwa umnakekeli oyedwa, okwenza kube nzima ukugcina nokuthuthukisa umhleli. Esikhundleni sekhodi eyakhelwe ku-Vim core ukusekela i-GUI, i-Neovim ihlongoza ukusebenzisa isendlalelo sendawo yonke esikuvumela ukuthi udale izixhumanisi usebenzisa amathuluzi ahlukahlukene.

Ama-plugin e-Neovim ethulwa njengezinqubo ezihlukene, zokusebenzelana lapho kusetshenziswa ifomethi ye-MessagePack. Ukusebenzisana nama-plugin kwenziwa ngokulinganayo, ngaphandle kokuvimbela izingxenye eziyisisekelo zomhleli. Ukuze ufinyelele i-plugin, isokhethi ye-TCP ingasetshenziswa, i.e. i-plugin ingasebenza kusistimu yangaphandle. Ngasikhathi sinye, i-Neovim ihlala ihlehla ihambisana ne-Vim, iyaqhubeka nokusekela i-Vimscript (i-Lua inikezwa njengenye indlela) futhi isekela ukuxhumana kwama-plugin amaningi we-Vim ajwayelekile. Izici ezithuthukile ze-Neovim zingasetshenziswa kuma-plugin akhiwe kusetshenziswa ama-Neovim-specific API.

Njengamanje, cishe ama-plugin athile angu-130 asevele elungisiwe, izibopho ziyatholakala ekudaleni ama-plugin nokusebenzisa izixhumanisi kusetshenziswa izilimi ezihlukahlukene zokuhlela (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) kanye nezinhlaka (Qt, ncurses, Node .js, Electron, GTK). Izinketho zokusetshenziswa kubonwa ezimbalwa ziyathuthukiswa. Izengezo ze-GUI zifana nama-plugin, kodwa ngokungafani nama-plugin, aqala izingcingo eziya emisebenzini ye-Neovim, kuyilapho ama-plugin ebizwa kusukela ngaphakathi kwe-Neovim.

Ezinye zezinguquko enguqulweni entsha:

  • Kwengezwe iklayenti le-LSP elakhelwe ngaphakathi (Iphrothokholi Yeseva Yolimi) e-Lua, engasetshenziswa ukuxhuma kumasevisi angaphandle ukuze kuhlaziywe futhi kuqedelwe ikhodi.
  • Kwengezwe i-API ukuze kulawulwe ukuklanywa kwamabhafa wokunikezwa.
  • Kwengezwe i-API ukuze kusetshenziswe omaka abanwetshiwe ukulandelela izinguquko kuleveli yebhayithi.
  • Ukwesekwa okunwetshiwe kwe-Lua njengolimi lokuthuthukiswa kwe-plugin nokuphathwa kokucushwa.
  • Kwengezwe usekelo lokuhlola lwenjini yokuhlaziya i-tree-sitter.

Source: opennet.ru

Engeza amazwana