Ukukhutshwa kwe-Neovim 0.7.0, inguqulelo yangoku yomhleli weVim

I-Neovim 0.7.0 ikhutshwe, ifolokhwe yomhleli we-Vim igxile ekwandiseni ukwanda kunye nokuguquguquka. Iprojekthi iye yasebenza kwakhona isiseko sekhowudi yeVim iminyaka engaphezu kwesixhenxe, ngenxa yoko utshintsho olwenziweyo olulula ukugcinwa kwekhowudi, ukubonelela ngeendlela zokwahlula umsebenzi phakathi kwabagcini abaninzi, ukwahlula i-interface ukusuka kwisiseko senxalenye (i-interface ingaba itshintshiwe ngaphandle kokubamba abangaphakathi) kwaye uphumeze ulwakhiwo olutsha olusekelwe kwiiplagi. Uphuhliso lwangaphambili lweprojekthi lusasazwa phantsi kwelayisensi ye-Apache 2.0, kwaye inxalenye esisiseko isasazwa phantsi kwelayisensi yeVim. Iindibano esele zenziwe zilungiselelwe iLinux (appimage), iWindows kunye neMacOS.

Enye yeengxaki zeVim eziye zabangela ukudalwa kwe-Neovim yi-bloated, i-monolithic codebase engaphezulu kwemigca ye-300 yekhowudi ye-C (C89). Bambalwa abantu abaqonda zonke iinqununu zekhowudi yeVim, kwaye zonke iinguqu zilawulwa ngumlondolozi omnye, okwenza kube nzima ukugcina nokusebenza ekuphuculeni umhleli. Endaweni yekhowudi eyakhelwe kwi-Vim core ukuxhasa i-GUI, i-Neovim iphakamisa ukusebenzisa umaleko wendalo yonke okuvumela ukuba wenze ujongano usebenzisa izixhobo ezahlukeneyo zezixhobo.

Iiplagi zeNeovim ziqaliswa njengeenkqubo ezahlukeneyo, zokunxibelelana apho kusetyenziswa ifomati yeMessagePack. Ukusebenzisana kunye ne-plug-ins kwenziwa kwimodi esynchronous, ngaphandle kokuthintela amacandelo asisiseko somhleli. I-socket ye-TCP ingasetyenziselwa ukufikelela kwiplagin, okt. iplagin ingasebenza kwindlela yangaphandle. Kwangaxeshanye, iNeovim ihlala ngasemva ihambelana neVim, iyaqhubeka nokuxhasa iVimscript (iLua inikezelwa njengenye indlela) kwaye ixhasa uqhagamshelo lweeplagi zeVim eziqhelekileyo. Iimpawu eziphambili zeNeovim zinokusetyenziswa kwiiplagi ezakhiwe kusetyenziswa iNeovim-specific API.

Okwangoku, malunga neeplagi ezithile ze-130 sele zilungisiwe, izibophelelo ziyafumaneka ekudaleni iiplagi kunye nokuphumeza ujongano kusetyenziswa iilwimi ezahlukeneyo zeprogram (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) kunye nesikhokelo (Qt, ncurses, Node .js, Electron, GTK). Iinketho ezininzi zojongano lomsebenzisi ziyaphuhliswa. Izongezo ze-GUI zifana neeplagi ngeendlela ezininzi, kodwa ngokungafaniyo neeplagi, ziqalisa iifowuni kwimisebenzi ye-Neovim, ngelixa iiplagi zibizwa ngaphakathi kwe-Neovim.

Inguqulelo entsha ibonelela ngenkxaso yokuqala yomsebenzi okude, ikuvumela ukuba usebenzise iNeovim kwiseva kwaye uqhagamshele kuyo ukusuka kwinkqubo yomxhasi usebenzisa i-ui_client eyahlukileyo. Olunye utshintsho lubandakanya: ukuxhaswa kwePython 2 kuyekwa, ukusetyenziswa kwemisebenzi yeLua kwimephu engundoqo kuvunyelwe, imiyalelo emitsha yongezwa kwi-API, ukukwazi ukusebenzisa ulwimi lwesiLua ekuphuhliseni iiplagi kunye nokulawulwa koqwalaselo kuye kwandiswa kakhulu, izixhobo zokuxilonga iingxaki kwikhowudi ziphuculwe, inkxaso yebar yesimo yehlabathi yongezwe, ukulungiswa kokusebenza kuye kwenziwa. Izakhono zomxhasi we-LSP eyakhelwe-ngaphakathi (iProtokholi yeSeva yoLwimi) iye yandiswa, enokusetyenziswa ukudlulisela ingqiqo yohlalutyo kunye nokugqitywa kwekhowudi kwiiseva zangaphandle.

umthombo: opennet.ru

Yongeza izimvo