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

Apre prèske de ane nan devlopman, Neovim 0.5 te lage, yon fouchèt nan editè a Vim konsantre sou ogmante ekstansibilite ak fleksibilite. Pwojè a te retravay baz kòd Vim pou plis pase sèt ane, kòm yon rezilta chanjman yo te fè ki senplifye antretyen kòd, bay yon mwayen pou divize travay ant plizyè moun ki kenbe, separe koòdone a ak pati de baz la (koòdone a kapab chanje san yo pa manyen entèn yo) epi aplike yon nouvo achitekti ekstansib ki baze sou grefon. Devlopman orijinal pwojè a distribye anba lisans Apache 2.0, epi pati debaz la distribye anba lisans Vim.

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, apeprè 130 grefon espesifik yo te deja prepare, lyezon yo 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 (Qt, ncurses, Node .js, Electron, 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.

Gen kèk nan chanjman ki fèt nan nouvo vèsyon an:

  • Te ajoute yon kliyan LSP entegre (Language Server Protocol) nan Lua, ki ka itilize pou konekte ak sèvis ekstèn pou analiz ak fini kòd.
  • Te ajoute yon API pou kontwole konsepsyon tanpon alokasyon yo.
  • Te ajoute yon API pou itilize tags pwolonje pou swiv chanjman nan nivo byte.
  • Elaji sipò pou Lua kòm yon lang pou devlopman plugin ak jesyon konfigirasyon.
  • Te ajoute sipò eksperimantal pou motè parsing tree-sitter la.

Sous: opennet.ru

Add nouvo kòmantè