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

Ġie rilaxxat Neovim 0.6.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.

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

  • L-appoġġ għall-varjabbli lokali ġie miżjud mal-iskripts vim, li l-ambitu tagħhom huwa limitat biss mill-iskript attwali.
  • Appoġġ tal-lingwa Lua imtejjeb b'mod sinifikanti għall-iżvilupp tal-plugins u l-ġestjoni tal-konfigurazzjoni. Fl-iskripts vim, il-kapaċità li ssejjaħ funzjonijiet Lua bħala metodi ġiet miżjuda billi jiġi speċifikat il-prefiss v:lua (per eżempju, "arg1->v:lua.somemod.func(arg2)").
  • 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. L-użu ta 'LSP jippermettilek tuża aktar minn 150 handlers lesti għal diversi lingwi ta' programmar ippreparati għall-editur tal-Visual Studio Code.
  • Għodod imtejba għad-dijanjosi ta 'problemi fil-kodiċi. Miżjud il-kapaċità li juri t-test ta 'messaġġi dijanjostiċi u twieqi f'wiċċ l-ilma b'kodiċi assoċjat ma' messaġġi bħal dawn. Jiġi pprovdut l-ipproċessar ta 'messaġġi dijanjostiċi trażmessi mis-server LSP.
  • Appoġġ miżjud għal kordi virtwali, li jistgħu jintużaw, pereżempju, biex juru blokki b'informazzjoni tas-servizz.
  • Saru diversi ottimizzazzjonijiet tal-prestazzjoni, pereżempju, tabella hash hija attivata għall-ismijiet tal-gruppi enfasizzati.
  • L-appoġġ għall-Windows 7 u 32-bit builds tal-Windows twaqqaf.

Sors: opennet.ru

Żid kumment