Lëshimi i Neovim 0.10 është publikuar, një shpërndarje nga editori Vim, e përqendruar në rritjen e zgjerueshmërisë dhe fleksibilitetit. Projekti tashmë ka mbi 10 vjet që po rishikon kodin bazë të Vim, duke sjellë ndryshime që lehtësojnë mbështetjes së kodit, ofrojnë mjete për ndarjen e punës mes disa mbajtesve, ndajnë ndërfaqen nga pjesa thelbësore (ndërfaqja mund të ndryshohet pa prekur brendësinë) dhe implementojnë një arkitekturë të re të zgjerueshme bazuar në plugin. Materialet 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.
Një nga problemet e Vim-it që çoi në krijimin e Neovim janë bazat e kodit monolit, të fryra, që përmbajnë më shumë se 300 mijë rreshta kodi në gjuhën C (C89). Në të gjitha nuancat e bazës së kodit të Vim-it, vetëm disa persona e kuptojnë, dhe të gjitha ndryshimet kontrollohen nga një mbajtës, çka e vështirëson mbështetje dhe punën për përmirësimin e editorit. Në vend të kodit të integruar në kernelin e Vim për mbështetje GUI, Neovim ofron një ndërfaqe universale që lejon krijimin e ndërfaqeve duke përdorur toolkit të ndryshme.
Pluginet për Neovim ekzekutohen si procese të veçanta, për interaksionin me të cilat përdoret formati MessagePack. Bashkëpunimi me pluginet bëhet në mënyrë asinkrone, pa bllokimin e komponentëve bazë të editorit. Një socket TCP mund të përdoret për të komunikuar me pluginin, pra, plugin mund të ekzekutohet në një sistem të jashtëm. Në të njëjtën kohë, Neovim mbetet e përputhshme me Vim, vazhdon të mbështesë Vimscript (si alternativë ofrohet Lua) dhe mbështet lidhjet e shumicës së pluginave standarde të Vim. Mundësitë e avancuara të Neovim mund të përdoren në pluginet e krijuara duke përdorur API-në specifike për Neovim.
Gjatë ekzistencës së projektit janë përgatitur më shumë se një mijë plugina specifikë, janë të disponueshme lidhjet për krijimin e plugineve dhe realizimin e ndërfaqeve duke përdorur gjuhë të ndryshme programimi (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) dhe frame të ndryshme (Qt, ncurses, Node.js, Electron, GTK). Shumë opsione ndërfaqe përdoruesi janë duke u zhvilluar. Shtesat GUI në shumë aspekte i ngjajnë plugineve, por ndryshe nga ato, ato iniciatin thirrjen e funksioneve Neovim, ndërsa pluginet thirren nga Neovim.
Ndër ndryshimet në versionin e ri:
- Një skemë e re ngjyrash është paraqitur si parazgjedhje, ku është zvogëluar ndriçimi, janë angazhuar kombinime ngjyrash më të balancuara dhe janë adresuar problemet që hasin individët me ndjeshmëri ndaj ngjyrave.


- JanĂ« ndryshuar lidhjet e çelĂ«save: «K» â kur LSP klienti Ă«shtĂ« aktiv tregon informacion nĂ« lidhje me funksionin dhe vargjet nĂ« tĂ« cilat tregon kursori, «[d» dhe «]d» â lĂ«vizje nĂ« mesazhet diagnostike, d â shfaqja e informacionit shtesĂ« pĂ«r mesazhin diagnostik.
- Funksionaliteti i pluginit vim-commentary Ă«shtĂ« integruar pĂ«r rrethimin e shenjave tĂ« komenteve tĂ« linjave dhe blloqeve me kod, duke marrĂ« parasysh kontekstin (pĂ«r shembull, pĂ«r pĂ«rmbajtjen e tagut do tĂ« pĂ«rdoren shenjat «//», ndĂ«rsa pĂ«r HTML â «»).
- ĂshtĂ« shtuar opsioni âtermsyncâ, qĂ« aktivizon modin e daljes sĂ« sinkronizuar, ku pĂ«r eliminimin e dridhjeve dhe ndĂ«rprerjeve nĂ« ekran, bĂ«het akumulimi i pĂ«rditĂ«simeve tĂ« ndĂ«rfaqes dhe shfaqja e tyre nĂ« terminal njĂ« herĂ«.
- PĂ«r tĂ« shkruar nĂ« buferin e sistemit, Ă«shtĂ« pĂ«rdorur sekuenca e arratisjes «OSC 52», nĂ«se po punoni nĂ« njĂ« seancĂ« SSH, nuk Ă«shtĂ« aktivizuar konfigurimi âclipboardâ dhe ka njĂ« emulator terminali qĂ« mbĂ«shtet «OSC 52».
- ĂshtĂ« shtuar mbĂ«shtetje eksperimentale pĂ«r stilizimin e hiperlidhjeve pĂ«rmes sekuencĂ«s sĂ« arratisjes OSC 8. Si parazgjedhje, kjo mundĂ«si aplikohet pĂ«r tĂ« theksuar lidhjet nĂ« dokumente Markdown, tĂ« stilizuara si «[example](https://example.com)».

- Përcaktimi automatik i mbështetjes për përfaqësimin 24-bit të ngjyrave («truecolor») është siguruar nga terminali.
- Kur përdoret LSP (Language Server Protocol), ofrohen sugjerime në vend, në formën e një teksti virtual të shfaqur me ngjyrë të ndryshme në kod, por pa e shtuar në tekstet burimore (në screenshot, sugjerimet shfaqen me ngjyrë gri të errët).

- JanĂ« zgjeruar mundĂ«sitĂ« pĂ«r inspektimin e pemĂ«s sintaksore tĂ« kodit burimor. ĂshtĂ« shtuar njĂ« mod interaktiv pĂ«r tĂ« shkruar pyetje pĂ«r pemĂ«n sintaksore, tĂ« aplikuara nĂ« kohĂ« reale nĂ« kodin aktual.

- ĂshtĂ« shtuar mundĂ«sia e caktimit tĂ« modifikatorĂ«ve nĂ« komandĂ«n «:terminal», pĂ«r shembull, «:botright terminal» pĂ«r tĂ« hapur njĂ« dritare tĂ« re terminali nĂ« pjesĂ«n e poshtme tĂ« djathtĂ« tĂ« ekranit.
Burimi: opennet.ru





