Ang Neovim 0.4, usa ka moderno nga bersyon sa editor sa Vim, magamit

gipatik buhian Neovim 0.4, usa ka tinidor gikan sa editor sa Vim, nakatutok sa pagdugang sa pagpalapad ug pagka-flexible. Orihinal nga mga kalamboan sa proyekto pagkaylap ubos sa Apache 2.0 nga lisensya, ug ang base nga bahin ubos sa Vim nga lisensya.

Sulod sa gambalay sa proyekto sa Neovim, ang Vim code base kay gi-rework na sulod sa sobra sa lima ka tuig, isip resulta sa mga pagbag-o nga gihimo nga nagpasayon ​​sa pagmentinar sa code, naghatag og paagi sa pagbahin sa trabaho tali sa daghang mga maintainers, pagbulag sa interface gikan sa base nga bahin (ang interface mahimong mausab nga walay paghikap sa internals) ug ipatuman ang usa ka bag-o mapalapad nga arkitektura base sa mga plugins.

Usa sa mga problema sa Vim nga nag-aghat sa paghimo sa Neovim mao ang nagbuak, monolithic code base, nga naglangkob sa labaw sa 300 ka libo nga linya sa C (C89) code. Pipila lang ka mga tawo ang nakasabut sa tanan nga mga nuances sa Vim codebase, ug ang tanan nga mga pagbag-o gikontrol sa usa ka tigmentinar, nga nagpalisud sa pagpadayon ug pagpalambo sa editor. Imbis sa code nga gitukod sa Vim core aron suportahan ang GUI, gisugyot ni Neovim ang paggamit sa usa ka unibersal nga layer nga nagtugot kanimo sa paghimo og mga interface gamit ang lainlaing mga toolkit.

Ang mga plugin alang sa Neovim gilusad isip bulag nga mga proseso, alang sa interaksyon diin gigamit ang MessagePack format. Ang interaksyon sa mga plugin gihimo nga asynchronously, nga wala gibabagan ang mga sukaranan nga sangkap sa editor. Aron ma-access ang plugin, ang TCP socket mahimong magamit, i.e. ang plugin mahimong modagan sa usa ka eksternal nga sistema. Sa samang higayon, ang Neovim nagpabilin nga paatras nga nahiuyon sa Vim, nagpadayon sa pagsuporta sa Vimscript (Ang Lua gitanyag isip alternatibo) ug nagsuporta sa mga koneksyon alang sa kadaghanan nga standard Vim plugins. Ang mga advanced nga bahin sa Neovim mahimong magamit sa mga plugin nga gihimo gamit ang mga API nga piho sa Neovim.

Sa pagkakaron na giandam mahitungod sa 80 ka espesipikong mga plugins, ang mga binding anaa alang sa pagmugna og mga plugins ug pagpatuman sa mga interface gamit ang nagkalain-laing programming language (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ug mga frameworks (Qt5, ncurses, Node.js, Electron, GTK+). Daghang mga kapilian sa user interface ang gipalambo. Ang mga add-on sa GUI sama ra sa mga plugin, apan dili sama sa mga plugins, gisugdan nila ang mga tawag sa mga function sa Neovim, samtang ang mga plugin gitawag gikan sa sulod sa Neovim.

Pipila sa mga pagbag-o sa bag-ong bersyon:

  • Gidugang ang daghang bahin sa bag-ong mga gimbuhaton sa API ug mga panghitabo sa user interface.
  • Gidugang ang usa ka bag-ong sukaranan nga librarya nga Nvim-Lua alang sa pagpalambo sa mga plugins sa pinulongang Lua.
  • Ang pag-uswag sa user interface protocol nagpadayon, nga nag-update sa impormasyon sa screen sa lebel sa mga linya, kay sa indibidwal nga mga karakter.
  • Gidugang nga suporta alang sa bug-os nga naglutaw nga mga bintana, nga mahimong ibutang sa bisan unsang lokasyon, gilakip, gisumpay sa indibidwal nga mga buffer sa pag-edit, ug gi-grupo sa Multigrid mode.
  • Gidugang ang 'pumblend' nga kapilian alang sa translucent dropdown menus.

Source: opennet.ru

Idugang sa usa ka comment