Liberigo de Neovim 0.6.0, modernigita versio de la Vim-redaktilo

Neovim 0.6.0 estis liberigita, forko de la Vim-redaktilo koncentriĝis pri pliigado de etendebleco kaj fleksebleco. La projekto relaboras la Vim-kodbazon dum pli ol sep 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 etendeblan arkitekturon surbaze de kromaĵoj. La originaj evoluoj de la projekto estas distribuitaj sub la permesilo Apache 2.0, kaj la baza parto estas distribuita sub la permesilo Vim. Pretaj asembleoj estas pretaj por Linukso (appimage), Vindozo kaj macOS.

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, proksimume 130 specifaj kromprogramoj jam estis preparitaj, ligoj disponeblas por krei kromaĵojn kaj efektivigi interfacojn uzante diversajn programlingvojn (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) kaj kadrojn (Qt, ncurses, Node .js, Electron, 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 la nova versio:

  • Subteno por lokaj variabloj estis aldonita al vim-skriptoj, kies amplekso estas limigita nur de la nuna skripto.
  • Signife plibonigita Lua-lingva subteno por kromprogramo kaj agorda administrado. En vim-skriptoj, la kapablo voki Lua-funkciojn kiel metodojn estis aldonita specifante la v:lua prefikso (ekzemple, "arg1->v:lua.somemod.func(arg2)").
  • La kapabloj de la enkonstruita LSP-kliento (Language Server Protocol) estis vastigitaj, kiu povas esti uzata por transdoni la analizan logikon kaj kodkompletigon al eksteraj serviloj. La uzo de LSP ebligas al vi uzi pli ol 150 pretajn traktilojn por diversaj programlingvoj preparitaj por la redaktilo de Visual Studio Code.
  • Plibonigitaj iloj por diagnozi problemojn en kodo. Aldonis la kapablon montri la tekston de diagnozaj mesaĝoj kaj flosantaj fenestroj kun kodo asociita kun tiaj mesaĝoj. Pretigo de diagnozaj mesaĝoj elsenditaj de la LSP-servilo estas disponigita.
  • Aldonita subteno por virtualaj ŝnuroj, kiuj povas esti uzataj, ekzemple, por montri blokojn kun servaj informoj.
  • Diversaj agado-optimumigoj estis faritaj, ekzemple, hashtabelo estas ebligita por elstarigitaj grupnomoj.
  • Subteno por Windows 7 kaj 32-bitaj konstruoj de Vindozo estis nuligita.

fonto: opennet.ru

Aldoni komenton