Neovim 0.5, toleo la kisasa la mhariri wa Vim, linapatikana

Baada ya karibu miaka miwili ya maendeleo, Neovim 0.5 imetolewa, uma wa mhariri wa Vim unaozingatia kuongeza upanuzi na kubadilika. Mradi huo umekuwa ukifanya kazi tena msingi wa nambari ya Vim kwa zaidi ya miaka saba, kama matokeo ambayo mabadiliko hufanywa ambayo hurahisisha utunzaji wa nambari, kutoa njia ya kugawa kazi kati ya watunzaji kadhaa, kutenganisha kiolesura kutoka kwa sehemu ya msingi (kiolesura kinaweza kuwa. iliyopita bila kugusa wa ndani) na utekeleze usanifu mpya unaoweza kupanuka kulingana na programu-jalizi. Maendeleo ya awali ya mradi yanasambazwa chini ya leseni ya Apache 2.0, na sehemu ya msingi inasambazwa chini ya leseni ya Vim.

Mojawapo ya matatizo ya Vim ambayo yalisababisha kuundwa kwa Neovim ilikuwa msingi wake wa kificho, wa monolithic, unaojumuisha zaidi ya mistari 300 elfu ya msimbo wa C (C89). Watu wachache tu wanaelewa nuances yote ya Vim codebase, na mabadiliko yote yanadhibitiwa na mtunzaji mmoja, ambayo inafanya kuwa vigumu kudumisha na kuboresha mhariri. Badala ya nambari iliyojengwa ndani ya msingi wa Vim kusaidia GUI, Neovim inapendekeza kutumia safu ya ulimwengu ambayo hukuruhusu kuunda miingiliano kwa kutumia vifaa anuwai.

Programu-jalizi za Neovim huzinduliwa kama michakato tofauti, kwa mwingiliano ambao umbizo la MessagePack linatumiwa. Uingiliano na programu-jalizi unafanywa kwa usawa, bila kuzuia vipengele vya msingi vya mhariri. Ili kufikia programu-jalizi, tundu la TCP linaweza kutumika, i.e. programu-jalizi inaweza kuendeshwa kwenye mfumo wa nje. Wakati huo huo, Neovim inasalia nyuma ikiendana na Vim, inaendelea kuunga mkono Vimscript (Lua inatolewa kama mbadala) na inasaidia miunganisho ya programu-jalizi nyingi za kawaida za Vim. Vipengele vya kina vya Neovim vinaweza kutumika katika programu-jalizi zilizoundwa kwa kutumia API maalum za Neovim.

Hivi sasa, karibu programu-jalizi maalum 130 tayari zimetayarishwa, vifungo vinapatikana kwa kuunda programu-jalizi na kutekeleza miingiliano kwa kutumia lugha anuwai za programu (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) na mifumo (Qt, ncurses, Node .js, Electron, GTK). Chaguzi kadhaa za kiolesura cha mtumiaji zinatengenezwa. Viongezi vya GUI ni kama programu-jalizi, lakini tofauti na programu-jalizi, huanzisha simu kwa vitendaji vya Neovim, wakati programu-jalizi huitwa kutoka ndani ya Neovim.

Baadhi ya mabadiliko katika toleo jipya:

  • Imeongeza kiteja cha LSP kilichojengewa ndani (Itifaki ya Seva ya Lugha) katika Lua, ambayo inaweza kutumika kuunganishwa na huduma za nje kwa uchanganuzi na kukamilisha msimbo.
  • Imeongeza API ili kudhibiti muundo wa bafa za ugawaji.
  • Imeongeza API ili kutumia lebo zilizopanuliwa ili kufuatilia mabadiliko katika kiwango cha baiti.
  • Usaidizi uliopanuliwa wa Lua kama lugha ya ukuzaji wa programu-jalizi na usimamizi wa usanidi.
  • Imeongeza usaidizi wa majaribio kwa injini ya uchanganuzi ya mtunza mti.

Chanzo: opennet.ru

Kuongeza maoni