Neovim 0.4, një version i modernizuar i redaktorit Vim, është i disponueshëm

botuar lirimin Neovim 0.4, një pirun nga redaktori Vim, e fokusuar në rritjen e shtrirjes dhe fleksibilitetit. Zhvillimet origjinale të projektit përhapet nën licencën Apache 2.0 dhe pjesa bazë nën licencën Vim.

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 arkitekturë e zgjerueshme bazuar në shtojca.

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ë përgatitur rreth 80 shtojca specifike, lidhje 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 (Qt5, ncurses, Node.js, Elektron, 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ë version i ri:

  • 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

Shto një koment