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

Cyhoeddwyd rhyddhau Neovim 0.4, fforc gan olygydd Vim, canolbwyntio ar gynyddu estynadwyedd a hyblygrwydd. Datblygiadau gwreiddiol y prosiect lledaenu o dan y drwydded Apache 2.0, a'r rhan sylfaenol o dan y drwydded Vim.

O fewn fframwaith y prosiect Neovim, mae sylfaen cod Vim wedi bod yn cael ei ail-weithio ers mwy na phum 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 oddi wrth y rhan sylfaen (gellir newid y rhyngwyneb heb gyffwrdd â'r mewnol) a gweithredu un newydd pensaernïaeth estynadwy yn seiliedig ar ategion.

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 yn barod parod tua 80 o ategion penodol, 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 (Qt5, 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 fersiwn newydd:

  • Ychwanegwyd cyfran fawr o swyddogaethau API newydd a digwyddiadau rhyngwyneb defnyddiwr.
  • Ychwanegwyd llyfrgell safonol newydd Nvim-Lua ar gyfer datblygu ategion yn yr iaith Lua.
  • Mae datblygiad y protocol rhyngwyneb defnyddiwr yn parhau, gan ddiweddaru gwybodaeth ar y sgrin ar lefel llinellau, yn hytrach na chymeriadau unigol.
  • Cefnogaeth ychwanegol ar gyfer ffenestri arnofio llawn, y gellir eu gosod mewn unrhyw leoliad, eu cysylltu, eu cysylltu â byfferau golygu unigol, a'u grwpio yn y modd Multigrid.
  • Ychwanegwyd opsiwn 'pumblend' ar gyfer cwymplenni tryloyw.

Ffynhonnell: opennet.ru

Ychwanegu sylw