Neovim 0.4, yon vèsyon modènize editè Vim, disponib

pibliye lage Neovim 0.4, yon fouchèt soti nan editè a Vim, konsantre sou ogmante ekstansibilite ak fleksibilite. Devlopman orijinal pwojè a gaye anba lisans Apache 2.0, ak pati de baz anba lisans Vim.

Nan kad pwojè Neovim la, baz kòd Vim yo te retravay pou plis pase senk ane, kòm yon rezilta chanjman yo te fè ki senplifye antretyen kòd, bay yon mwayen pou divize travay ant plizyè moun k ap antreteni yo, separe koòdone a ak koòdone. pati baz (ka koòdone a dwe chanje san yo pa manyen entèn yo) epi aplike yon nouvo achitekti extensible ki baze sou grefon.

Youn nan pwoblèm ak Vim ki te pouse kreyasyon Neovim se te yon baz kòd monolitik ki gonfle, ki gen plis pase 300 mil liy kòd C (C89). Se sèlman kèk moun ki konprann tout nuans yo nan Vim kodbaz la, epi tout chanjman yo kontwole pa yon sèl mentenans, ki fè li difisil pou kenbe ak amelyore editè a. Olye de kòd ki te bati nan nwayo Vim pou sipòte entèfas, Neovim pwopoze w sèvi ak yon kouch inivèsèl ki pèmèt ou kreye koòdone lè l sèvi avèk divès kalite zouti.

Plugins pou Neovim yo lanse kòm pwosesis separe, pou entèraksyon ak fòma MessagePack yo itilize. Se entèraksyon ak grefon yo te pote asynchrone, san yo pa bloke eleman debaz yo nan editè a. Pou jwenn aksè nan Plugin la, yo ka itilize yon priz TCP, i.e. ka plugin a dwe kouri sou yon sistèm ekstèn. An menm tan an, Neovim rete bak konpatib ak Vim, kontinye sipòte Vimscript (Lua yo ofri kòm yon altènatif) ak sipòte koneksyon pou pifò grefon Vim estanda. Karakteristik avanse Neovim yo ka itilize nan grefon ki konstwi lè l sèvi avèk API espesifik Neovim.

Kounye a deja prepare apeprè 80 grefon espesifik, lyezon ki disponib pou kreye grefon ak aplike koòdone lè l sèvi avèk divès langaj pwogramasyon (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ak kad (Qt5, ncurses, Node.js, Elektwon, GTK+). Plizyè opsyon koòdone itilizatè yo ap devlope. Add-ons GUI yo anpil tankou grefon, men kontrèman ak grefon, yo kòmanse apèl nan fonksyon Neovim, pandan y ap rele grefon soti nan Neovim.

Kèk nan chanjman nan nouvo vèsyon:

  • Te ajoute yon gwo pati nan nouvo fonksyon API ak evènman koòdone itilizatè.
  • Te ajoute yon nouvo bibliyotèk estanda Nvim-Lua pou devlope grefon nan lang Lua.
  • Devlopman nan pwotokòl koòdone itilizatè a ap kontinye, mete ajou enfòmasyon sou ekran an nan nivo liy yo, olye ke karaktè endividyèl yo.
  • Te ajoute sipò pou tout fenèt k ap flote, ki ka mete nan nenpòt kote, tache, lye ak tanpon koreksyon endividyèl, ak gwoupe nan mòd Multigrid.
  • Te ajoute opsyon 'pumblend' pou meni dewoulan translusid.

Sous: opennet.ru

Add nouvo kòmantè