Mae Neovim 0.5, fersiwn wedi'i moderneiddio o olygydd Vim, ar gael

Ar Γ΄l bron i ddwy flynedd o ddatblygiad, mae Neovim 0.5 wedi'i ryddhau, fforc o'r golygydd Vim sy'n canolbwyntio ar gynyddu estynadwyedd a hyblygrwydd. Mae'r prosiect wedi bod yn ail-weithio sylfaen cod Vim ers mwy na saith mlynedd, ac o ganlyniad mae newidiadau'n cael eu gwneud sy'n symleiddio cynnal a chadw cod, yn darparu modd o rannu llafur rhwng sawl cynhaliwr, gwahanu'r rhyngwyneb o'r rhan sylfaenol (gall y rhyngwyneb fod newid heb gyffwrdd Γ’'r mewnol) a gweithredu pensaernΓ―aeth estynadwy newydd yn seiliedig ar ategion. Mae datblygiadau gwreiddiol y prosiect yn cael eu dosbarthu o dan y drwydded Apache 2.0, ac mae'r rhan sylfaenol yn cael ei ddosbarthu o dan y drwydded Vim.

Un o'r problemau gyda Vim a ysgogodd greu Neovim oedd ei sylfaen cod chwyddedig, monolithig, yn cynnwys mwy na 300 mil o linellau o god C (C89). Dim ond ychydig o bobl sy'n deall holl naws sylfaen cod Vim, ac mae pob newid yn cael ei reoli gan un cynhaliwr, sy'n ei gwneud hi'n anodd cynnal a gwella'r golygydd. Yn lle'r cod sydd wedi'i ymgorffori yng nghraidd Vim i gefnogi'r GUI, mae Neovim yn cynnig defnyddio haen gyffredinol sy'n eich galluogi i greu rhyngwynebau gan ddefnyddio amrywiol becynnau cymorth.

Mae ategion ar gyfer Neovim yn cael eu lansio fel prosesau ar wahΓ’n, ar gyfer rhyngweithio y defnyddir y fformat MessagePack Γ’ nhw. Mae rhyngweithio ag ategion yn cael ei wneud yn anghydamserol, heb rwystro cydrannau sylfaenol y golygydd. I gael mynediad i'r ategyn, gellir defnyddio soced TCP, h.y. gellir rhedeg yr ategyn ar system allanol. Ar yr un pryd, mae Neovim yn parhau i fod yn gydnaws yn Γ΄l Γ’ Vim, yn parhau i gefnogi Vimscript (cynigir Lua fel dewis arall) ac yn cefnogi cysylltiadau ar gyfer y mwyafrif o ategion Vim safonol. Gellir defnyddio nodweddion uwch Neovim mewn ategion a adeiladwyd gan ddefnyddio APIs penodol i Neovim.

Ar hyn o bryd, mae tua 130 o ategion penodol eisoes wedi'u paratoi, mae rhwymiadau ar gael ar gyfer creu ategion a gweithredu rhyngwynebau gan ddefnyddio gwahanol ieithoedd rhaglennu (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) a fframweithiau (Qt, ncurses, Node .js, Electron, GTK). Mae nifer o opsiynau rhyngwyneb defnyddiwr yn cael eu datblygu. Mae ychwanegion GUI yn debyg iawn i ategion, ond yn wahanol i ategion, maen nhw'n cychwyn galwadau i swyddogaethau Neovim, tra bod ategion yn cael eu galw o fewn Neovim.

Rhai o'r newidiadau yn y fersiwn newydd:

  • Ychwanegwyd cleient LSP adeiledig (Protocol Gweinyddwr Iaith) yn Lua, y gellir ei ddefnyddio i gysylltu Γ’ gwasanaethau allanol ar gyfer dadansoddi a chwblhau cod.
  • Ychwanegwyd API i reoli dyluniad byfferau dyrannu.
  • Ychwanegwyd API i ddefnyddio tagiau estynedig i olrhain newidiadau ar y lefel beit.
  • Cefnogaeth estynedig i Lua fel iaith ar gyfer datblygu ategyn a rheoli cyfluniad.
  • Ychwanegwyd cefnogaeth arbrofol ar gyfer y peiriant dosrannu gwarchodwyr coed.

Ffynhonnell: opennet.ru

Ychwanegu sylw