Brenda kuadrit të projektit Neovim, baza e kodit Vim është duke u ripunuar për më shumë se pesë vjet, si rezultat i së cilës 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ë ndryshohet pa prekur pjesët e brendshme) dhe zbatoni një të re
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 tashmë
Disa nga ndryshimet në
- U shtua një pjesë e madhe e funksioneve të reja API dhe ngjarjeve të ndërfaqes së përdoruesit.
- U shtua një bibliotekë e re standarde Nvim-Lua për zhvillimin e shtojcave në gjuhën Lua.
- Zhvillimi i protokollit të ndërfaqes së përdoruesit vazhdon, duke përditësuar informacionin në ekran në nivel linjash, në vend të karaktereve individuale.
- Mbështetje e shtuar për dritaret lundruese të plota, të cilat mund të vendosen në çdo vend, të bashkangjiten, të lidhen me buferat individuale të redaktimit dhe të grupohen në modalitetin Multigrid.
- Opsioni 'pumblend' u shtua për menutë e tejdukshme me zbritje.
Burimi: opennet.ru