lëshimi , një degëzim i redaktuesit Vim, në përmirësimin e zgjerueshmërisë dhe fleksibilitetit. Punimet origjinale të projektit nën licencën Apache 2.0, ndërsa pjesa thelbësore nën licencën Vim.
Në kuadër të projektit, për më shumë se pesë vjet po bëhet përshtatja e bazës së kodit Vim, rezultat i së cilës është ndryshimi i lehtësuar i mbajtjes së kodit, ofrimi i mjeteve për ndarjen e punës midis disa kontribuesve, ndarjen e interfaces nga pjesa thelbësore (interface mund të ndryshohet pa prekur brendësinë) dhe realizimi i një në bazë të plug-in-eve.
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.
Aktualisht janë rreth 80 plugin të veçantë, janë të disponueshme lidhje për krijimin e pluginave dhe implementimin e ndërfaqeve duke përdorur gjuhë të ndryshme programimi (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) dhe korniza (Qt5, ncurses, Node.js, Electron, GTK+). Po zhvillohen disa variante të ndërfaqeve të përdoruesit. Shtesat GUI në shumë pika i ngjajnë pluginave, por, ndryshe nga pluginat, ato nisin thirrjen e funksioneve të Neovim, ndërsa pluginat thirren nga Neovim.
Disa disa ndryshimeve në :
- Shtuar një sasi të madhe funksionesh të reja API dhe ngjarjesh të interfesës përdoruesit.
- Shtuar një bibliotekë standarde të re Nvim-Lua për zhvillimin e plugineve në gjuhën Lua.
- Vazhduar zhvillimi i protokollit të interfesës përdoruesit, i cili përditëson informacionin në ekran në nivelin e rreshtave, jo si karaktere të veçanta.
- Shtuar mbështetje për dritare të plota plovizëse, të cilat mund të vendosen në çdo vend, të bashkohen, të lidhin me buferë të veçantë redaktimi, të grupohen në modin Multigrid.
- Shtuar opsioni âpumblendâ pĂ«r menu tĂ«rheqĂ«se gjysmĂ« transparente.
Burimi: opennet.ru
