Neovim 0.6.0 kaleratzea, Vim editorearen bertsio modernizatua

Neovim 0.6.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 berriaren aldaketa batzuk:

  • Tokiko aldagaien euskarria gehitu da vim script-etan, eta horien esparrua uneko script-ak soilik mugatzen du.
  • Lua hizkuntzaren euskarria nabarmen hobetu da pluginen garapenerako eta konfigurazio kudeaketarako. Vim scriptetan, Lua funtzioak metodo gisa deitzeko gaitasuna gehitu da v:lua aurrizkia zehaztuz (adibidez, β€œarg1->v:lua.somemod.func(arg2)”).
  • LSP bezero integratuaren (Language Server Protocol) gaitasunak zabaldu dira, analisiaren logika eta kodearen osaketa kanpoko zerbitzarietara transferitzeko erabil daitekeena. LSP erabiltzeari esker, prest dauden 150 kudeatzaile baino gehiago erabil ditzakezu Visual Studio Code editorearentzat prestatutako hainbat programazio-lengoaiatarako.
  • Kodean arazoak diagnostikatzeko tresna hobetuak. Diagnostiko-mezuen testua eta leiho mugikorrekin erlazionatutako kodeekin bistaratzeko gaitasuna gehitu da. LSP zerbitzariak igorritako diagnostiko mezuen prozesamendua eskaintzen da.
  • Kate birtualen euskarria gehitu da, adibidez, zerbitzuaren informazioa duten blokeak bistaratzeko erabil daitezkeenak.
  • Hainbat errendimendu-optimizazio egin dira, adibidez, hash taula bat gaituta nabarmendutako taldeen izenetarako.
  • Windows 7 eta 32 biteko Windows-en bertsioetarako laguntza eten egin da.

Iturria: opennet.ru

Gehitu iruzkin berria