Rhyddhau Neovim 0.7.0, fersiwn wedi'i moderneiddio o olygydd Vim

Mae Neovim 0.7.0 wedi'i ryddhau, fforch 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. Mae gwasanaethau parod yn cael eu paratoi ar gyfer Linux (appimage), Windows a 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 gwaith o bell, sy'n eich galluogi i redeg Neovim ar y gweinydd a chysylltu ag ef o'r system cleient gan ddefnyddio ui_client ar wahân. Mae newidiadau eraill yn cynnwys: mae cefnogaeth i Python 2 wedi dod i ben, mae'r defnydd o swyddogaethau Lua yn y map bysell wedi'i ganiatáu, mae gorchmynion newydd wedi'u hychwanegu at yr API, mae'r gallu i ddefnyddio iaith Lua ar gyfer datblygu ategion a rheoli cyfluniad wedi'i ehangu'n sylweddol, mae offer ar gyfer gwneud diagnosis o broblemau yn y cod wedi'u gwella, mae cefnogaeth i'r bar statws byd-eang wedi'i ychwanegu, mae optimeiddio perfformiad wedi'i wneud. Mae galluoedd y cleient LSP adeiledig (Protocol Gweinyddwr Iaith) wedi'u hehangu, y gellir eu defnyddio i drosglwyddo'r rhesymeg dadansoddi a chwblhau cod i weinyddion allanol.

Ffynhonnell: opennet.ru

Ychwanegu sylw