Mae Neovim 0.7.0, fforch o'r golygydd Vim sy'n canolbwyntio ar gynyddu estynadwyedd a hyblygrwydd, wedi'i ryddhau. Mae'r prosiect wedi bod yn ailweithio cronfa god Vim ers dros saith mlynedd, gan gyflwyno newidiadau sy'n symleiddio cynnal a chadw cod, yn darparu offer ar gyfer rhannu llafur rhwng cynhalwyr lluosog, yn gwahanu'r rhyngwyneb o'r craidd (gellir newid y rhyngwyneb heb gyffwrdd â'r rhannau mewnol), ac yn gweithredu pensaernïaeth newydd, estynadwy, sy'n seiliedig ar ategion. Mae gwaith gwreiddiol y prosiect wedi'i drwyddedu o dan drwydded Apache 2.0, ac mae'r rhan graidd wedi'i thrwyddedu o dan drwydded Vim. Mae'r adeiladau gorffenedig ar gael ar gyfer Linux (delwedd ap), Windows и macOS.
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.
Mae'r fersiwn newydd yn cynnig cefnogaeth gychwynnol ar gyfer gweithio o bell, gan ganiatáu i chi redeg Neovim ar gweinydd a chysylltu ag ef o system y cleient gan ddefnyddio ui_client ar wahân. Mae newidiadau eraill yn cynnwys: mae cefnogaeth Python 2 wedi'i rhoi i ben, mae defnyddio swyddogaethau Lua mewn mapiau allweddi wedi'i ganiatáu, mae gorchmynion newydd wedi'u hychwanegu at yr API, mae galluoedd defnyddio Lua ar gyfer datblygu ategion a rheoli ffurfweddiad wedi'u hehangu'n sylweddol, mae offer diagnostig cod wedi'u gwella, mae cefnogaeth ar gyfer y bar statws byd-eang wedi'i hychwanegu, ac mae optimeiddiadau perfformiad wedi'u gweithredu. Mae galluoedd y cleient LSP (Protocol Gweinydd Iaith) adeiledig wedi'u hehangu, gan ganiatáu allanoli dadansoddi cod a rhesymeg awto-gwblhau. gweinyddion.
Ffynhonnell: opennet.ru
