Rilaxx ta 'Neovim 0.7.0, verżjoni modernizzata tal-editur Vim

Ġie rilaxxat Neovim 0.7.0, furketta tal-editur Vim iffukat fuq iż-żieda fl-estensibbiltà u l-flessibbiltà. Il-proġett ilu jaħdem mill-ġdid il-bażi tal-kodiċi Vim għal aktar minn seba 'snin, bħala riżultat ta' dawn isiru bidliet li jissimplifikaw il-manutenzjoni tal-kodiċi, jipprovdu mezz ta 'diviżjoni tax-xogħol bejn diversi manutenzjoni, jifred l-interface mill-parti bażi (l-interface jista' jkun mibdula mingħajr ma tmiss l-intern) u timplimenta arkitettura estensibbli ġdida fuq ibbażata fuq plugins. L-iżviluppi oriġinali tal-proġett huma mqassma taħt il-liċenzja Apache 2.0, u l-parti bażika hija mqassma taħt il-liċenzja Vim. Assemblaġġi lesti huma ppreparati għal Linux (appimage), Windows u macOS.

Waħda mill-problemi ma 'Vim li qanqlet il-ħolqien ta' Neovim kienet il-bażi ta 'kodiċi minfuħa u monolitika tagħha, li tikkonsisti f'aktar minn 300 elf linja ta' kodiċi C (C89). Ftit nies biss jifhmu l-sfumaturi kollha tal-codebase Vim, u l-bidliet kollha huma kkontrollati minn manutentur wieħed, li jagħmilha diffiċli biex jinżamm u jittejjeb l-editur. Minflok il-kodiċi mibni fil-qalba ta 'Vim biex jappoġġja l-GUI, Neovim jipproponi li tuża saff universali li jippermettilek toħloq interfaces billi tuża diversi settijiet ta' għodod.

Il-plugins għal Neovim huma mnedija bħala proċessi separati, għall-interazzjoni li magħhom jintuża l-format MessagePack. L-interazzjoni mal-plugins titwettaq b'mod asinkroniku, mingħajr ma timblokka l-komponenti bażiċi tal-editur. Biex taċċessa l-plugin, jista’ jintuża socket TCP, i.e. il-plugin jista 'jitħaddem fuq sistema esterna. Fl-istess ħin, Neovim jibqa 'kompatibbli b'lura ma' Vim, ikompli jappoġġa Vimscript (Lua huwa offrut bħala alternattiva) u jappoġġja konnessjonijiet għall-biċċa l-kbira tal-plugins Vim standard. Il-karatteristiċi avvanzati ta 'Neovim jistgħu jintużaw fi plugins mibnija bl-użu ta' APIs speċifiċi għal Neovim.

Bħalissa, madwar 130 plugin speċifiku diġà ġew ippreparati, rbit huma disponibbli għall-ħolqien ta 'plugins u l-implimentazzjoni ta' interfaces bl-użu ta 'diversi lingwi ta' programmar (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) u oqfsa (Qt, ncurses, Node .js, Electron, GTK). Qed jiġu żviluppati diversi għażliet ta' interface għall-utent. GUI add-ons huma simili għall-plugins f'ħafna modi, iżda b'differenza plugins, jibdew sejħiet għall-funzjonijiet Neovim, filwaqt li plugins jissejħu minn ġewwa Neovim.

Il-verżjoni l-ġdida toffri appoġġ inizjali għal xogħol remot, li jippermettilek tħaddem Neovim fuq is-server u tikkonnettja miegħu mis-sistema tal-klijent billi tuża ui_client separat. Bidliet oħra jinkludu: appoġġ għal Python 2 twaqqaf, l-użu tal-funzjonijiet Lua fil-keymap ġie permess, kmandi ġodda ġew miżjuda mal-API, il-kapaċità li tuża l-lingwa Lua għall-iżvilupp ta 'plugins u l-ġestjoni tal-konfigurazzjoni ġiet estiża b'mod sinifikanti, ġew imtejba għodod għad-dijanjosi ta 'problemi fil-kodiċi, ġie miżjud appoġġ għall-istrixxa tal-istatus globali, twettqu ottimizzazzjonijiet tal-prestazzjoni. Il-kapaċitajiet tal-klijent LSP inkorporat (Language Server Protocol) ġew estiżi, li jistgħu jintużaw biex jittrasferixxu l-loġika tal-analiżi u t-tlestija tal-kodiċi għal servers esterni.

Sors: opennet.ru

Żid kumment