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.

В новой версии предложена начальная поддержка удалённой работы, позволяющая запустить Neovim на сервере и подключаться к нему с клиентской системы, используя отдельный ui_client. Среди других изменений: прекращена поддержка Python 2, разрешено использовании Lua-функций в keymap, добавлены новые команды в API, значительно расширены возможности по использованию языка Lua для разработки плагинов и управления конфигурацией, улучшены средства диагностики проблем в коде, добавлена поддержка глобальной строки состояния, проведены оптимизации производительности. Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы.

Sors: opennet.ru

Żid kumment