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

Wara kważi sentejn ta 'żvilupp, Neovim 0.5 ġie rilaxxat, furketta tal-editur Vim iffukat fuq iż-żieda fl-estensibbiltà u l-flessibilità. 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.

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.

Xi wħud mill-bidliet fil-verżjoni l-ġdida:

  • Miżjud klijent LSP inkorporat (Language Server Protocol) fil-Lua, li jista 'jintuża biex jgħaqqad ma' servizzi esterni għall-analiżi u t-tlestija tal-kodiċi.
  • Żieda API biex tikkontrolla d-disinn tal-buffers tal-allokazzjoni.
  • Żid API biex tuża tags estiżi biex issegwi l-bidliet fil-livell tal-byte.
  • Appoġġ estiż għal Lua bħala lingwa għall-iżvilupp tal-plugins u l-ġestjoni tal-konfigurazzjoni.
  • Miżjud appoġġ sperimentali għall-magna tal-parsing tree-sitter.

Sors: opennet.ru

Żid kumment