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

Neovim 0.7.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.

La nova versio ofertas komencan subtenon por fora laboro, permesante al vi ruli Neovim sur la servilo kaj konekti al ĝi de la klienta sistemo uzante apartan ui_client. Aliaj ŝanĝoj inkluzivas: subteno por Python 2 estis nuligita, la uzo de Lua-funkcioj en klavmapo estis permesita, novaj komandoj estis aldonitaj al la API, la kapablo uzi la Lua-lingvon por disvolvi kromaĵojn kaj agorda administrado estis signife vastigita, iloj por diagnozi problemojn en kodo estis plibonigitaj, subteno por la tutmonda statusbreto estis aldonita, agado-optimumigoj estis efektivigitaj. 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.

fonto: opennet.ru

Aldoni komenton