Lëshimi i Neovim 0.7.0, një version i modernizuar i redaktorit Vim

Neovim 0.7.0 është lëshuar, një fork i redaktorit Vim i fokusuar në rritjen e shtrirjes dhe fleksibilitetit. Projekti ka ripërpunuar bazën e kodit Vim për më shumë se shtatë vjet, si rezultat i të cilit bëhen ndryshime që thjeshtojnë mirëmbajtjen e kodit, ofrojnë një mjet për ndarjen e punës midis disa mirëmbajtësve, ndajnë ndërfaqen nga pjesa bazë (ndërfaqja mund të jetë ndryshuar pa prekur pjesët e brendshme) dhe zbatoni një arkitekturë të re të zgjerueshme bazuar në shtojcat. Zhvillimet origjinale të projektit shpërndahen nën licencën Apache 2.0, dhe pjesa bazë shpërndahet nën licencën Vim. Asambletë e gatshme janë përgatitur për Linux (appimage), Windows dhe macOS.

Një nga problemet me Vim që nxiti krijimin e Neovim ishte baza e kodit të fryrë, monolit, e përbërë nga më shumë se 300 mijë rreshta të kodit C (C89). Vetëm pak njerëz i kuptojnë të gjitha nuancat e bazës së kodit Vim dhe të gjitha ndryshimet kontrollohen nga një mirëmbajtës, gjë që e bën të vështirë mirëmbajtjen dhe përmirësimin e redaktuesit. Në vend të kodit të integruar në bërthamën Vim për të mbështetur GUI, Neovim propozon përdorimin e një shtrese universale që ju lejon të krijoni ndërfaqe duke përdorur mjete të ndryshme.

Shtojcat për Neovim lansohen si procese të veçanta, për ndërveprim me të cilin përdoret formati MessagePack. Ndërveprimi me shtojcat kryhet në mënyrë asinkrone, pa bllokuar përbërësit bazë të redaktuesit. Për të hyrë në plugin, mund të përdoret një prizë TCP, d.m.th. shtojca mund të ekzekutohet në një sistem të jashtëm. Në të njëjtën kohë, Neovim mbetet i pajtueshëm me Vim, vazhdon të mbështesë Vimscript (Lua ofrohet si një alternativë) dhe mbështet lidhjet për shumicën e shtojcave standarde Vim. Karakteristikat e avancuara të Neovim mund të përdoren në shtojcat e ndërtuara duke përdorur API specifike të Neovim.

Aktualisht, rreth 130 shtojca specifike janë përgatitur tashmë, lidhjet janë të disponueshme për krijimin e shtojcave dhe zbatimin e ndërfaqeve duke përdorur gjuhë të ndryshme programimi (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) dhe korniza (Qt, ncurses, Node .js, Electron, GTK). Disa opsione të ndërfaqes së përdoruesit janë duke u zhvilluar. Shtesat GUI janë shumë të ngjashme me shtojcat, por ndryshe nga shtojcat, ato iniciojnë thirrje për funksionet e Neovim, ndërsa shtojcat thirren nga brenda Neovim.

Versioni i ri ofron mbështetje fillestare për punën në distancë, duke ju lejuar të ekzekutoni Neovim në server dhe të lidheni me të nga sistemi i klientit duke përdorur një ui_client të veçantë. Ndryshime të tjera përfshijnë: mbështetja për Python 2 është ndërprerë, përdorimi i funksioneve Lua në hartën kryesore është lejuar, komanda të reja janë shtuar në API, aftësia për të përdorur gjuhën Lua për zhvillimin e shtojcave dhe menaxhimin e konfigurimit është zgjeruar ndjeshëm, janë përmirësuar mjetet për diagnostikimin e problemeve në kod, është shtuar mbështetja për shiritin e statusit global, janë kryer optimizimet e performancës. Janë zgjeruar aftësitë e klientit të integruar LSP (Protokolli i Serverit të Gjuhës), i cili mund të përdoret për të transferuar logjikën e analizës dhe plotësimin e kodit në serverë të jashtëm.

Burimi: opennet.ru

Shto një koment