Neovim 0.4, in modernisearre ferzje fan 'e Vim-bewurker, is beskikber

publisearre frijlitte Neovim 0.4, in foarke fan 'e Vim-bewurker, rjochte op it fergrutsjen fan útwreidzjen en fleksibiliteit. Orizjinele ûntwikkelingen fan it projekt fersprieding ûnder de Apache 2.0-lisinsje, en it basisdiel ûnder de Vim-lisinsje.

Yn it ramt fan it Neovim-projekt is de Vim-koadebasis foar mear as fiif jier op 'e nij bewurke, wêrtroch't wizigingen makke wurde dy't koade-ûnderhâld ferienfâldigje, in middel leverje om arbeid te ferdielen tusken ferskate ûnderhâlders, skiede de ynterface fan 'e basis diel (de ynterface kin feroare wurde sûnder oanreitsje de internals) en útfiere in nij útwreide arsjitektuer basearre op plugins.

Ien fan 'e problemen mei Vim dy't de skepping fan Neovim oanmoedige wie syn opblaasde, monolityske koadebasis, besteande út mear as 300 tûzen rigels fan C (C89) koade. Allinich in pear minsken begripe alle nuânses fan 'e Vim-koadebase, en alle wizigingen wurde regele troch ien ûnderhâlder, wat it dreech makket om de bewurker te behâlden en te ferbetterjen. Ynstee fan de koade ynboud yn 'e Vim-kearn om de GUI te stypjen, stelt Neovim foar om in universele laach te brûken wêrmei jo ynterfaces kinne meitsje mei ferskate toolkits.

Plugins foar Neovim wurde lansearre as aparte prosessen, foar ynteraksje wêrmei it MessagePack-formaat wurdt brûkt. Ynteraksje mei plugins wurdt asynchronysk útfierd, sûnder de basiskomponinten fan 'e bewurker te blokkearjen. Om tagong te krijen ta de plugin kin in TCP-socket brûkt wurde, d.w.s. de plugin kin wurde útfierd op in ekstern systeem. Tagelyk bliuwt Neovim efterút kompatibel mei Vim, bliuwt Vimscript stypje (Lua wurdt oanbean as alternatyf) en stipet ferbiningen foar de measte standert Vim-plugins. De avansearre funksjes fan Neovim kinne brûkt wurde yn plugins boud mei Neovim-spesifike API's.

Op it stuit al taret sawat 80 spesifike plugins, bindingen binne beskikber foar it meitsjen fan plugins en it ymplementearjen fan ynterfaces mei ferskate programmeartalen (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) en kaders (Qt5, ncurses, Node.js, Electron, GTK+). Ferskate opsjes foar brûkersynterface wurde ûntwikkele. GUI-tafoegings binne folle as plugins, mar yn tsjinstelling ta plugins, begjinne se oproppen nei Neovim-funksjes, wylst plugins fanút Neovim wurde neamd.

Guon fan 'e feroarings yn nije ferzy:

  • In grut part fan nije API-funksjes en eveneminten foar brûkersynterface tafoege.
  • In nije standertbibleteek Nvim-Lua tafoege foar it ûntwikkeljen fan plugins yn 'e Lua-taal.
  • De ûntwikkeling fan it protokol foar brûkersynterface giet troch, bywurkjen fan ynformaasje op it skerm op it nivo fan rigels, ynstee fan yndividuele karakters.
  • Stipe tafoege foar folweardige driuwende finsters, dy't op elke lokaasje kinne wurde pleatst, taheakke, keppele oan yndividuele bewurkingsbuffers, en groepeare yn Multigrid-modus.
  • Opsje 'pumblend' tafoege foar trochsichtige útklapmenu's.

Boarne: opennet.ru

Add a comment