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

Lëshimi i Neovim 0.7.0, një fork i editorit Vim, i fokusuar në rritjen e zgjerueshmërisë dhe fleksibilitetit, është publikuar. Projekti ka kaluar mbi shtatë vite duke riparuar bazën e kodit të Vim, duke bërë ndryshime që thjeshtojnë mirëmbajtjen e kodit, duke ofruar mjete për ndarjen e punës midis disa mbajtësve, duke ndarë ndërfaqen nga pjesa themelore (ndërfaqja mund të ndryshohet pa prekur brendësinë) dhe duke realizuar një arkitekturë të re zgjeruese të bazuar në plugina. Të dhënat origjinale të projektit shpërndahen nën licencën Apache 2.0, ndërsa pjesa bazë nën licencën Vim. Ndërtime të gatshme janë përgatitur për Linux (appimage), Windows dhe macOS.

Disa probleme të Vim, të cilat çuan në krijimin e Neovim, përfshijnë një bazë kodi të fryrë monolitike, e cila përbëhet nga më shumë se 300 mijë rreshta kodi në gjuhën C (C89). Vetëm disa individë kuptojnë të gjitha nuancat e bazës së kodit të Vim, dhe të gjitha ndryshimet kontrollohen nga një mbajtës, që e bën të vështirë mirëmbajtjen dhe punën për përmirësimin e editorit. Në vend të kodit të integruar në thelb të Vim për mbështetje GUI, Neovim ofron një shtresë universale, e cila lejon krijimin e ndërfaqeve duke përdorur toolkit të ndryshme.

Pluginet për Neovim ekzekutohen si procese të veçanta, me të cilat interaktohet duke përdorur formatin MessagePack. Ndërveprimi me pluginet kryhet në mënyrë asincrone, pa bllokuar komponentët bazë të editorit. Një socket TCP mund të përdoret për të aksesuar një plugin, që do të thotë se plugin mund të ekzekutohet në një sistem të jashtëm. Megjithatë, Neovim mbetet mbrapsht i pajtueshëm me Vim, vazhdon të mbështesë Vimscript (si alternativë ofrohet Lua) dhe mbështet lidhjet e shumicës së pluginëve standard të Vim. Mundësitë e avancuara të Neovim mund të përdoren në pluginet e ndërtuara me përdorimin e API-ve specifike për Neovim.

Aktualisht janë përgatitur rreth 130 shtesa specifike, të disponueshme janë lidhjet për krijimin e shtesave dhe realizimin 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). Po zhvillohen disa variante të ndërfaqes përdoruesi. Shtesat GUI janë shumë të ngjashme me shtesat, por, ndryshe nga ato, ato nisin thirrjet për funksione Neovim, ndërsa shtesat thirren nga Neovim.

Në versionin e ri është propozuar mbështetje fillestare për punën në distancë, duke lejuar që Neovim të nisë në server dhe të lidhet me të nga sistemi klient, duke përdorur një ui_client të veçantë. Ndër ndryshime të tjera: është ndërprerë mbështetja për Python 2, është lejuar përdorimi i funksioneve Lua në keymap, janë shtuar komanda të reja në API, janë zgjeruar ndjeshëm mundësitë për përdorimin e gjuhës Lua për zhvillimin e shtesave dhe menaxhimin e konfigurimeve, janë përmirësuar mjetet për diagnostikimin e problemeve në kod, është shtuar mbështetje për linjën globale të statusit, janë realizuar optimizime të performancës. Janë zgjeruar mundësitë e klientit të integruar LSP (Language Server Protocol), i cili mund të përdoret për të transferuar logjikën e analizës dhe për completimin automatik të kodit në jashtë. serverët.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster