Neovimi 0.7.0 väljaanne, uuendatud versioon Vim toimetajast

Välja on antud Neovim 0.7.0, mis on Vim-i redaktori haru, keskendudes laiendatavuse ja paindlikkuse parandamisele. Projekti raames on juba üle seitsme aasta toiminud Vim-i koodibaasi ümberstruktureerimine, mille tulemuseks on muudatused, mis lihtsustavad koodi hooldust, pakuvad töö jagamise vahendeid mitmele hooldajale, eraldavad liidese põhiosast (liidest saab muuta, ilma et peaks puutuma põhja) ja rakendavad uut laiendatavat pluginapõhist arhitektuuri. Projekti originaaltooted levitatakse Apache 2.0 litsentsi alusel, samas kui põhiosa kuulub Vim litsentsi alla. Valmis koostised on ette valmistatud Linuxi (appimage), Windowsi ja macOS-i jaoks.

Vim-i probleemidest, mis inspireerisid Neovimi loomist, tõstatatakse paisutatud monoliitne koodibaas, mis koosneb rohkem kui 300 000 reas C (C89) keeles. Kõigis Vim-i koodibaasi nüanssides mõistab vaid mõned inimesed, samas kui kõiki muudatusi kontrollib üks hooldaja, mis raskendab redaktori hooldust ja arendamist. Neovim pakub GUI toe toetamiseks kaasasoleva Vim-i koodi asemel universaalset kihte, mis võimaldab erinevate tööriistade kasutamist liideste loomisel.

Neovimi pluginate käivitatakse eraldi protsessidena, mille suhtlemiseks kasutatakse MessagePack formaati. Pluginate vaheline suhtlus toimub asünkroonselt ning ei blokeeri toimetaja põhikomponente. Pluginatele juurdepääsuks võib kasutada TCP-soket, st plugin võib töötada välises süsteemis. Sellegipoolest on Neovim täielikult ühilduv Vimi ka, toetades Vimscripti (alternatiivina on pakutud Lua) ning enamikku Viimi vaikimisi pluginaid. Neovimi täiendavaid võimalusi saab kasutada pluginate arendamisel, mis on loodud Neovimile spetsiifilist API-d kasutades.

Praegu on valmis juba umbes 130 spetsiaalset plugini, saadaval on sidemed pluginite ja liideste loomiseks erinevate programmeerimiskeelte (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ja raamistikud (Qt, ncurses, Node.js, Electron, GTK) kasutamiseks. Arendatakse mitmeid kasutajaliidese variante. GUI-lisandmoodulid meenutavad paljuski pluginaid, kuid erinevalt pluginatest käivitavad need Neovimi funktsioonide kutsumist, samas kui pluginaid kutsutakse Neovimist.

Uues versioonis on pakutud algset tuge kaugtööks, mis võimaldab Neovimi käivitada serveril ja ja liituda sellega kliendi süsteemist, kasutades eraldi ui_client. Muudatuste seas: Python 2 toe lõpetamine, Lua funktsioonide kasutamise lubamine keymap'is, uus API käskude lisamine, Lua keele kasutamise võimaluste märkimisväärne laiendamine pistikprogrammide arendamiseks ja konfigureerimise haldamiseks, koodiprobleemide diagnoosimise tööriistade parendamine, globaalsete olekureadede toe lisamine ja jõudluse optimeerimine. Väljakutse LSP-klient (Language Server Protocol) on laienenud, mida saab kasutada koodi analüüsi ja automaatse täiendamise loogika väljastamiseks. serverid.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster