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

Neovim 0.7.0, forko de la Vim-redaktilo celanta pliigi etendeblecon kaj flekseblecon, estis publikigita. La projekto reverkis la Vim-kodbazon dum pli ol sep jaroj, enkondukante ŝanĝojn kiuj simpligas kodprizorgadon, provizas ilojn por dividi laboron inter pluraj prizorgantoj, apartigas la interfacon de la kerno (la interfaco povas esti ŝanĝita sen tuŝi la internaĵojn), kaj efektivigas novan, etendeblan, kromaĵ-bazitan arkitekturon. La originala verko de la projekto estas licencita sub la licenco Apache 2.0, kaj la kerna parto estas licencita sub la licenco Vim. La finitaj konstruoj estas haveblaj por Linux (aplikaĵbildo), Windows и 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 funkciigi Neovim sur servilo kaj konekti al ĝi de la klienta sistemo uzante apartan ui_client. Aliaj ŝanĝoj inkluzivas: Subteno por Python 2 estis ĉesigita, la uzo de Lua-funkcioj en klavarmapoj estis permesita, novaj komandoj estis aldonitaj al la API, la kapabloj uzi Lua por kromaĵa disvolviĝo kaj agorda administrado estis signife vastigitaj, koddiagnozaj iloj estis plibonigitaj, subteno por la tutmonda statusobreto estis aldonita, kaj rendimentaj optimumigoj estis efektivigitaj. La kapabloj de la enkonstruita LSP (Language Server Protocol) kliento estis vastigitaj, permesante eksterigon de kodanalizo kaj aŭtomata kompletiga logiko. serviloj.

fonto: opennet.ru

Aĉetu fidindan gastigadon por retejoj kun DDoS-protekto, VPS-VDS-serviloj 🔥 Aĉetu fidindan retejan gastigadon kun DDoS-protekto, VPS VDS-servilojn | ProHoster