Neovim 0.7.0 kaleratzea, Vim editorearen bertsio modernizatua

Neovim 0.7.0 kaleratu da, hedagarritasuna eta malgutasuna areagotzera bideratuta dagoen Vim editorearen sardexka. Proiektuak zazpi urte baino gehiago daramatza Vim kode-oinarria berregiten, eta horren ondorioz kodeen mantentze-lanak errazten dituzten aldaketak egiten dira, hainbat mantentzaileren artean lana banatzeko baliabidea eskaintzen dute, interfazea oinarrizko zatitik bereizi (interfazea izan daiteke. barneak ukitu gabe aldatu) eta pluginetan oinarritutako arkitektura hedagarri berria ezarri. Proiektuaren jatorrizko garapenak Apache 2.0 lizentziarekin banatzen dira, eta oinarrizko zatia Vim lizentziarekin banatzen da. Prestatutako muntaiak Linux (appimage), Windows eta macOSerako prestatuta daude.

Neovim-en sorrera bultzatu zuen Vim-en arazoetako bat bere kode-oinarri puztua eta monolitikoa izan zen, C (C300) kode 89 mila lerro baino gehiagoz osatua. Pertsona gutxi batzuek bakarrik ulertzen dituzte Vim kode-oinarriaren Γ±abardura guztiak, eta aldaketa guztiak zaintzaile batek kontrolatzen ditu, eta horrek zaildu egiten du editorea mantentzea eta hobetzea. GUI onartzen duen Vim nukleoan integratutako kodearen ordez, Neovim-ek geruza unibertsala erabiltzea proposatzen du, hainbat tresna-kit erabiliz interfazeak sortzeko aukera ematen duena.

Neovim-erako pluginak prozesu bereizi gisa abiarazten dira, eta horrekin elkarrekintzarako MessagePack formatua erabiltzen da. Pluginekin elkarrekintza modu asinkronoan egiten da, editorearen oinarrizko osagaiak blokeatu gabe. Pluginera sartzeko, TCP socket bat erabil daiteke, hau da. plugina kanpoko sistema batean exekutatu daiteke. Aldi berean, Neovim-ek Vim-ekin bateragarria izaten jarraitzen du, Vimscript onartzen jarraitzen du (Lua alternatiba gisa eskaintzen da) eta Vim plugin estandar gehienentzako konexioak onartzen ditu. Neovim-en ezaugarri aurreratuak Neovim-en berariazko APIak erabiliz eraikitako pluginetan erabil daitezke.

Gaur egun, 130 plugin espezifiko inguru prestatu dira dagoeneko, loturak daude eskuragarri pluginak sortzeko eta interfazeak ezartzeko hainbat programazio-lengoaia erabiliz (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) eta esparruak (Qt, ncurses, Node .js, Electron, GTK). Hainbat erabiltzaile-interfaze aukera garatzen ari dira. GUI gehigarriak pluginak bezalakoak dira, baina pluginak ez bezala, Neovim funtzioetarako deiak abiarazten dituzte, eta pluginak Neovim barrutik deitzen dira.

Bertsio berriak urruneko lanerako hasierako laguntza eskaintzen du, Neovim zerbitzarian exekutatzeko eta bezero-sistematik konektatzeko ui_client bereizi bat erabiliz. Beste aldaketa batzuk honako hauek dira: Python 2rako euskarria eten egin da, tekla-mapan Lua funtzioen erabilera baimendu da, komando berriak gehitu dira APIan, pluginak garatzeko Lua hizkuntza erabiltzeko gaitasuna eta konfigurazio kudeaketa nabarmen zabaldu da, kodean arazoak diagnostikatzeko tresnak hobetu dira, egoera-barra globalaren euskarria gehitu da, errendimenduaren optimizazioak egin dira. LSP bezero integratuaren (Language Server Protocol) gaitasunak zabaldu dira, analisiaren logika eta kodearen osaketa kanpoko zerbitzarietara transferitzeko erabil daitekeena.

Iturria: opennet.ru

Gehitu iruzkin berria