Neovim 0.4, verżjoni modernizzata tal-editur Vim, hija disponibbli

ippubblikat rilaxx Neovim 0.4, furketta mill-editur Vim, iffukat dwar iż-żieda fl-estensibilità u l-flessibbiltà. Żviluppi oriġinali tal-proġett jinfirex taħt il-liċenzja Apache 2.0, u l-parti bażi taħt il-liċenzja Vim.

Fi ħdan il-qafas tal-proġett Neovim, il-bażi tal-kodiċi Vim ilha tinħadem mill-ġdid għal aktar minn ħames snin, li b'riżultat tagħhom isiru bidliet li jissimplifikaw il-manutenzjoni tal-kodiċi, jipprovdu mezz ta 'diviżjoni tax-xogħol bejn diversi manutenzjoni, jisseparaw l-interface mill- parti bażi (l-interface jista 'jinbidel mingħajr ma tmiss l-intern) u timplimenta ġdida arkitettura estensibbli ibbażat fuq plugins.

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 diġà ippreparat madwar 80 plugin speċifiku, 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 (Qt5, ncurses, Node.js, Elettron, GTK+). Qed jiġu żviluppati diversi għażliet ta' interface għall-utent. GUI add-ons huma ferm simili plugins, iżda b'differenza plugins, dawn jibdew sejħiet għall-funzjonijiet Neovim, filwaqt plugins huma msejħa minn ġewwa Neovim.

Uħud mill-bidliet fi verżjoni ġdida:

  • Żieda porzjon kbir ta 'funzjonijiet API ġodda u avvenimenti tal-interface tal-utent.
  • Żieda librerija standard ġdida Nvim-Lua għall-iżvilupp ta 'plugins fil-lingwa Lua.
  • L-iżvilupp tal-protokoll tal-interface tal-utent ikompli, jaġġorna l-informazzjoni fuq l-iskrin fil-livell tal-linji, aktar milli karattri individwali.
  • Appoġġ miżjud għal twieqi li jżommu f'wiċċ l-ilma sħiħ, li jistgħu jitqiegħdu fi kwalunkwe post, imwaħħla, marbuta ma 'buffers ta' editjar individwali, u miġbura fil-modalità Multigrid.
  • Miżjud għażla 'pumblend' għal menus dropdown trasluċidi.

Sors: opennet.ru

Żid kumment