Neovim 0.4, modernigita versio de la Vim-redaktilo, estas havebla

eldonita liberigi Neovim 0.4, forko de la Vim-redaktisto, fokusita pri kreskanta etendebleco kaj fleksebleco. Originaj evoluoj de la projekto disvastigi sub la licenco Apache 2.0, kaj la baza parto sub la permesilo Vim.

En la kadro de la projekto Neovim, la kodbazo de Vim estas reverkita de pli ol kvin jaroj, rezulte de kiuj ŝanĝoj estas faritaj, kiuj simpligas kodan prizorgadon, disponigas rimedon por dividi laboron inter pluraj prizorgantoj, apartigas la interfacon de la baza parto (la interfaco povas esti ŝanĝita sen tuŝi la internaĵojn) kaj efektivigi novan etendebla arkitekturo bazita sur kromaĵojn.

Unu el la problemoj kun Vim, kiuj instigis la kreadon de Neovim, estis ĝia ŝvelinta, monolita kodbazo, konsistanta el pli ol 300 mil linioj de C (C89) kodo. Nur kelkaj homoj komprenas ĉiujn nuancojn de la Vim-kodbazo, kaj ĉiuj ŝanĝoj estas kontrolataj de unu prizorganto, kio malfaciligas konservi kaj plibonigi la redaktilon. Anstataŭ la kodo konstruita en la Vim-kernon por subteni la GUI, Neovim proponas uzi universalan tavolon, kiu ebligas al vi krei interfacojn uzante diversajn ilaron.

Kromaĵoj por Neovim estas lanĉitaj kiel apartaj procezoj, por interagado kun kiu la MessagePack-formato estas uzata. Interago kun kromaĵoj estas farata nesinkrone, sen blokado de la bazaj komponantoj de la redaktilo. Por aliri la kromprogramon, TCP-ingo povas esti uzata, t.e. la kromaĵo povas ruliĝi sur ekstera sistemo. Samtempe, Neovim restas malantaŭen kongrua kun Vim, daŭre subtenas Vimscript (Lua estas ofertita kiel alternativo) kaj subtenas konektojn por la plej multaj normaj Vim-kromaĵoj. La altnivelaj funkcioj de Neovim povas esti uzataj en kromaĵoj konstruitaj per Neovim-specifaj API-oj.

Nuntempe jam preparita ĉirkaŭ 80 specifaj kromaĵoj, ligoj disponeblas por krei kromaĵojn kaj efektivigi interfacojn uzante diversajn programlingvojn (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) kaj kadrojn (Qt5, ncurses, Node.js, Elektrono, GTK+). Pluraj opcioj de uzantinterfaco estas evoluigitaj. GUI-aldonaĵoj estas tre kiel aldonaĵoj, sed male al aldonaĵoj, ili iniciatas alvokojn al Neovim-funkcioj, dum aldonaĵoj estas nomitaj de ene de Neovim.

Kelkaj el la ŝanĝoj en nova versio:

  • Aldonis grandan parton de novaj API-funkcioj kaj eventoj de uzantinterfaco.
  • Aldonis novan norman bibliotekon Nvim-Lua por disvolvi kromaĵojn en la lingvo Lua.
  • La evoluo de la uzantinterfaco-protokolo daŭras, ĝisdatigante informojn sur la ekrano je la nivelo de linioj, prefere ol individuaj karakteroj.
  • Aldonita subteno por plenrajtaj ŝvebaj fenestroj, kiuj povas esti metitaj en ajna loko, alfiksitaj, ligitaj al individuaj redaktaj bufroj kaj grupigitaj en Multigrid-reĝimo.
  • Aldonita 'pumblend' opcio por diafanaj falmenuoj.

fonto: opennet.ru

Aldoni komenton