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

Neovim 0.6.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.

Disa nga ndryshimet në versionin e ri:

  • Mbështetja për variablat lokale është shtuar në skriptet vim, fushëveprimi i të cilave është i kufizuar vetëm nga skripti aktual.
  • Mbështetja e gjuhës Lua e përmirësuar ndjeshëm për zhvillimin e shtojcave dhe menaxhimin e konfigurimit. Në skriptet vim, aftësia për të thirrur funksionet Lua si metoda është shtuar duke specifikuar prefiksin v:lua (për shembull, "arg1->v:lua.somemod.func(arg2)").
  • 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. Përdorimi i LSP ju lejon të përdorni më shumë se 150 mbajtës të gatshëm për gjuhë të ndryshme programimi të përgatitura për redaktorin e kodit të Visual Studio.
  • Mjete të përmirësuara për diagnostikimin e problemeve në kod. U shtua aftësia për të shfaqur tekstin e mesazheve diagnostikuese dhe dritareve lundruese me kodin e lidhur me mesazhe të tilla. Ofrohet përpunimi i mesazheve diagnostikuese të transmetuara nga serveri LSP.
  • Mbështetje e shtuar për vargjet virtuale, të cilat mund të përdoren, për shembull, për të shfaqur blloqe me informacione shërbimi.
  • Janë bërë optimizime të ndryshme të performancës, për shembull, një tabelë hash është aktivizuar për emrat e grupeve të theksuara.
  • Mbështetja për Windows 7 dhe ndërtimet 32-bit të Windows është ndërprerë.

Burimi: opennet.ru

Shto një koment