Kutulutsidwa kwa Neovim 0.7.0, mtundu wamakono wa mkonzi wa Vim

Neovim 0.7.0 yatulutsidwa, foloko ya mkonzi wa Vim yomwe imayang'ana kwambiri kukulitsa komanso kusinthasintha. Pulojekitiyi yakhala ikukonzanso maziko a Vim code kwa zaka zoposa zisanu ndi ziwiri, chifukwa chake kusintha kumapangidwa komwe kumathandizira kukonza kachidindo, kupereka njira yogawanitsa ntchito pakati pa osamalira angapo, kulekanitsa mawonekedwe ndi gawo loyambira (mawonekedwewo akhoza kukhala zasinthidwa popanda kukhudza zamkati) ndikukhazikitsanso kamangidwe katsopano katsopano potengera mapulagini. Zomwe zidachitika poyambira ntchitoyi zimagawidwa pansi pa layisensi ya Apache 2.0, ndipo gawo loyambira limagawidwa pansi pa layisensi ya Vim. Misonkhano yokonzekera imakonzedwa pa Linux (appimage), Windows ndi macOS.

Limodzi mwamavuto ndi Vim lomwe lidapangitsa kuti Neovim lipangidwe linali khodi yake yotupa, yokhala ndi mizere yopitilira 300 ya C (C89). Ndi anthu ochepa okha omwe amamvetsetsa ma nuances onse a Vim codebase, ndipo zosintha zonse zimayendetsedwa ndi woyang'anira m'modzi, zomwe zimapangitsa kuti zikhale zovuta kusunga ndi kukonza mkonzi. M'malo mwa code yomwe idapangidwa mu Vim core kuti ithandizire GUI, Neovim ikufuna kugwiritsa ntchito wosanjikiza wapadziko lonse lapansi womwe umakupatsani mwayi wopanga ma interfaces pogwiritsa ntchito zida zosiyanasiyana.

Mapulagini a Neovim amayambitsidwa ngati njira zosiyana, zolumikizirana ndi mtundu wa MessagePack womwe umagwiritsidwa ntchito. Kuyanjana ndi mapulagini kumachitika mwachisawawa, popanda kutsekereza zigawo zikuluzikulu za mkonzi. Kuti mupeze plugin, socket ya TCP ingagwiritsidwe ntchito, i.e. pulogalamu yowonjezera akhoza kuthamanga pa kunja dongosolo. Nthawi yomweyo, Neovim imakhalabe chakumbuyo yogwirizana ndi Vim, ikupitilizabe kuthandizira Vimscript (Lua imaperekedwa ngati njira ina) ndipo imathandizira kulumikizana kwa mapulagini ambiri a Vim. Zapamwamba za Neovim zitha kugwiritsidwa ntchito mumapulagini omangidwa pogwiritsa ntchito ma API apadera a Neovim.

Pakadali pano, pafupifupi mapulagini apadera a 130 adakonzedwa kale, zomangira zilipo popanga mapulagini ndikugwiritsa ntchito mawonekedwe pogwiritsa ntchito zilankhulo zosiyanasiyana zamapulogalamu (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ndi ma frameworks (Qt, ncurses, Node .js, Electron, GTK). Zosankha zingapo za ogwiritsa ntchito zikupangidwa. Zowonjezera za GUI zili ngati mapulagini, koma mosiyana ndi mapulagini, amayambitsa mafoni ku ntchito za Neovim, pomwe mapulagini amayitanidwa kuchokera mkati mwa Neovim.

Mtundu watsopanowu umapereka chithandizo choyambirira cha ntchito yakutali, kukulolani kuti muthamangitse Neovim pa seva ndikulumikizana nayo kuchokera pamakasitomala pogwiritsa ntchito ui_client wosiyana. Zosintha zina zikuphatikizapo: kuthandizira kwa Python 2 kwatha, kugwiritsa ntchito ntchito za Lua mu keymap kwaloledwa, malamulo atsopano awonjezedwa ku API, kutha kugwiritsa ntchito chinenero cha Lua popanga mapulagini ndi kasamalidwe kachitidwe kakula kwambiri, zida zowunikira zovuta mu code zasinthidwa, kuthandizira kwa bar yapadziko lonse lapansi kwawonjezeredwa, kukhathamiritsa kwa magwiridwe antchito kwachitika. Mphamvu za kasitomala wa LSP womangidwa (Language Server Protocol) zakulitsidwa, zomwe zingagwiritsidwe ntchito kusamutsa malingaliro owunikira ndi kumaliza kachidindo kumaseva akunja.

Source: opennet.ru

Kuwonjezera ndemanga