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
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
Kelkaj el la ŝanĝoj en
- 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