Neovim 0.4, 'n gemoderniseerde weergawe van die Vim-redigeerder, is beskikbaar

gepubliseer vrylating Neovim 0.4, 'n vurk van die Vim-redakteur, gefokus op die verhoging van uitbreidbaarheid en buigsaamheid. Oorspronklike ontwikkelings van die projek versprei onder die Apache 2.0-lisensie, en die basisdeel onder die Vim-lisensie.

As deel van die Neovim-projek word die Vim-kodebasis vir meer as vyf jaar herwerk, as gevolg waarvan veranderings aangebring word wat kode-instandhouding vereenvoudig, 'n manier bied om arbeid tussen verskeie instandhouers te verdeel, die koppelvlak van die basis te skei deel (die koppelvlak kan verander word sonder om aan die internals te raak) en implementeer 'n nuwe uitbreidbare argitektuur gebaseer op plugins.

Een van die probleme met Vim wat die skepping van Neovim aangespoor het, was sy opgeblase, monolitiese kodebasis, wat uit meer as 300 duisend reΓ«ls C (C89)-kode bestaan. Slegs 'n paar mense verstaan ​​al die nuanses van die Vim-kodebasis, en alle veranderinge word deur een onderhouer beheer, wat dit moeilik maak om die redigeerder te onderhou en te verbeter. In plaas van die kode wat in die Vim-kern ingebou is om die GUI te ondersteun, stel Neovim voor om 'n universele laag te gebruik wat jou toelaat om koppelvlakke te skep met behulp van verskeie gereedskapstelle.

Inproppe vir Neovim word as aparte prosesse bekendgestel, vir interaksie waarmee die MessagePack-formaat gebruik word. Interaksie met plugins word asynchroon uitgevoer, sonder om die basiese komponente van die redigeerder te blokkeer. Om toegang tot die inprop te verkry, kan 'n TCP-sok gebruik word, d.w.s. die inprop kan op 'n eksterne stelsel uitgevoer word. Terselfdertyd bly Neovim agteruit versoenbaar met Vim, ondersteun Vimscript steeds (Lua word as alternatief aangebied) en ondersteun verbindings vir die meeste standaard Vim-inproppe. Neovim se gevorderde kenmerke kan gebruik word in plugins wat gebou is met Neovim-spesifieke API's.

Tans reeds voorberei ongeveer 80 spesifieke inproppe, bindings is beskikbaar vir die skep van inproppe en implementering van koppelvlakke met behulp van verskeie programmeertale (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) en raamwerke (Qt5, ncurses, Node.js, Elektron, GTK+). Verskeie gebruikerskoppelvlak-opsies word ontwikkel. GUI-byvoegings is baie soos inproppe, maar anders as inproppe, begin hulle oproepe na Neovim-funksies, terwyl inproppe van binne Neovim geroep word.

Sommige van die veranderinge in nuwe weergawe:

  • Het 'n groot gedeelte van nuwe API-funksies en gebruikerskoppelvlakgebeurtenisse bygevoeg.
  • Bygevoeg 'n nuwe standaard biblioteek Nvim-Lua vir die ontwikkeling van plugins in die Lua taal.
  • Die ontwikkeling van die gebruikerskoppelvlakprotokol gaan voort, met die opdatering van inligting op die skerm op die vlak van lyne, eerder as individuele karakters.
  • Bygevoeg ondersteuning vir volwaardige drywende vensters, wat op enige plek geplaas kan word, aangeheg, gekoppel kan word aan individuele redigeerbuffers, en in Multigrid-modus gegroepeer kan word.
  • Bygevoeg 'pumblend' opsie vir deurskynende aftreklyste.

Bron: opennet.ru

Voeg 'n opmerking