Neovim 0.5, o se lomiga faʻaonaponei o le Vim editor, o loʻo avanoa

Ina ua mavae le toeitiiti atoa le lua tausaga o le atinaʻe, Neovim 0.5 ua faʻasaʻolotoina, o se tui o le Vim faatonu na taulaʻi i le faʻalauteleina o le faʻalauteleina ma le fetuutuunai. O le poloketi o loʻo toe faʻaaogaina le Vim code base mo le sili atu ma le fitu tausaga, o se taunuuga o suiga ua faia e faafaigofie ai le tausiga o tulafono, maua ai se auala e vaeluaina ai galuega i le va o le tele o tagata tausia, vavae ese le atinaʻe mai le vaega autu (o le atinaʻe e mafai ona suia e aunoa ma le paʻi i totonu) ma faʻatino se fausaga fou faʻalauteleina e faʻavae i luga o plugins. O uluai atinaʻe o le poloketi o loʻo tufatufa atu i lalo o le Apache 2.0 laisene, ma o le vaega autu o loʻo tufatufa atu i lalo o le laisene Vim.

O se tasi o faʻafitauli ma Vim na mafua ai le fausiaina o Neovim o lona faʻamaʻi, monolithic code base, e aofia ai le sili atu ma le 300 afe laina o le C (C89) code. E naʻo ni nai tagata e malamalama i faʻamatalaga uma o le Vim codebase, ma o suiga uma e pulea e le tasi e tausia, lea e faigata ai ona tausia ma faʻaleleia le faatonu. Nai lo le faʻailoga ua fausia i totonu o le Vim core e lagolago ai le GUI, Neovim e faʻatatau i le faʻaaogaina o se laulau lautele e mafai ai ona e fatuina fesoʻotaʻiga e faʻaaoga ai meafaigaluega eseese.

O mea fa'apipi'i mo Neovim ua fa'alauiloaina o ni faiga eseese, mo le fegalegaleai lea e fa'aoga ai le MessagePack format. Fegalegaleaiga ma plugins e faia asynchronously, e aunoa ma le poloka o vaega autu o le faatonu. Ina ia maua le faʻapipiʻi, e mafai ona faʻaogaina se socket TCP, i.e. e mafai ona tamoe le plugin i luga o se faiga fafo. I le taimi lava e tasi, o loʻo tumau pea Neovim i tua e fetaui ma Vim, faʻaauau ona lagolagoina Vimscript (Lua e ofoina atu e fai ma sui) ma lagolagoina fesoʻotaʻiga mo le tele o faʻapipiʻi Vim masani. E mafai ona fa'aogaina foliga fa'apitoa a Neovim i fa'apipi'i fausia e fa'aaoga ai API fa'apitoa Neovim.

I le taimi nei, e tusa ma le 130 faʻapipiʻi faʻapitoa ua uma ona saunia, faʻapipiʻi avanoa mo le fatuina o plugini ma le faʻaogaina o fesoʻotaʻiga e faʻaaoga ai gagana eseese polokalame (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ma faʻatulagaga (Qt, ncurses, Node .js, Electron, GTK). O lo'o fa'atupuina le tele o avanoa fa'aoga. GUI faʻaopoopoga e pei o plugins, ae le pei o plugins, latou te amataina valaʻau i galuega Neovim, aʻo faʻapipiʻi e valaʻau mai totonu o Neovim.

O nisi o suiga i le lomiga fou:

  • Fa'aopoopoina le LSP client (Language Server Protocol) i Lua, lea e mafai ona fa'aoga e fa'afeso'ota'i ai auaunaga i fafo mo au'ili'iliga ma fa'amae'a fa'ailoga.
  • Fa'aopoopoina se API e fa'atonutonu ai le mamanu o fa'asoa fa'apolopolo.
  • Fa'aopoopoina se API e fa'aoga ai fa'ailoga fa'alautele e siaki ai suiga ile tulaga byte.
  • Fa'alauteleina le lagolago mo Lua e avea o se gagana mo le atina'eina o fa'apipi'i ma le fa'atonutonuina o fa'atonuga.
  • Fa'aopoopoina le lagolago fa'ata'ita'i mo le afi fa'ata'oto mo la'au.

puna: opennet.ru

Faaopoopo i ai se faamatalaga