Na voljo je Neovim 0.4, posodobljena različica urejevalnika Vim

Objavljeno sprostitev Neovim 0.4, fork iz urejevalnika Vim, osredotočen na povečanje raztegljivosti in fleksibilnosti. Izvirni razvoj projekta širjenje pod licenco Apache 2.0, osnovni del pa pod licenco Vim.

V okviru projekta Neovim se kodna baza Vim predeluje že več kot pet let, zaradi česar prihaja do sprememb, ki poenostavljajo vzdrževanje kode, omogočajo delitev dela med več vzdrževalci, ločujejo vmesnik od osnovni del (vmesnik je mogoče spremeniti, ne da bi se dotaknili notranjosti) in uvesti novega razširljiva arhitektura temelji na vtičnikih.

Ena od težav z Vimom, ki je spodbudila ustvarjanje Neovim, je bila njegova napihnjena, monolitna kodna baza, sestavljena iz več kot 300 tisoč vrstic kode C (C89). Le nekaj ljudi razume vse nianse kodne baze Vim, vse spremembe pa nadzoruje en vzdrževalec, kar otežuje vzdrževanje in izboljšanje urejevalnika. Namesto kode, ki je vgrajena v jedro Vim za podporo GUI, Neovim predlaga uporabo univerzalne plasti, ki vam omogoča ustvarjanje vmesnikov z uporabo različnih kompletov orodij.

Vtičniki za Neovim se zaženejo kot ločeni procesi, za interakcijo s katerimi se uporablja format MessagePack. Interakcija z vtičniki se izvaja asinhrono, brez blokiranja osnovnih komponent urejevalnika. Za dostop do vtičnika lahko uporabite vtičnico TCP, tj. vtičnik se lahko izvaja v zunanjem sistemu. Hkrati Neovim ostaja nazaj združljiv z Vimom, še naprej podpira Vimscript (Lua je na voljo kot alternativa) in podpira povezave za večino standardnih vtičnikov Vim. Napredne funkcije Neovim je mogoče uporabiti v vtičnikih, zgrajenih z API-ji, specifičnimi za Neovim.

Trenutno že pripravljeno približno 80 specifičnih vtičnikov, vezave so na voljo za ustvarjanje vtičnikov in implementacijo vmesnikov z uporabo različnih programskih jezikov (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) in ogrodij (Qt5, ncurses, Node.js, Electron, GTK+). Razvija se več možnosti uporabniškega vmesnika. Dodatki GUI so podobni vtičnikom, vendar za razliko od vtičnikov sprožijo klice funkcij Neovim, medtem ko se vtičniki kličejo znotraj Neovim.

Nekatere spremembe v nova različica:

  • Dodan velik del novih funkcij API in dogodkov uporabniškega vmesnika.
  • Dodana nova standardna knjižnica Nvim-Lua za razvoj vtičnikov v jeziku Lua.
  • Nadaljuje se razvoj protokola uporabniškega vmesnika, ki posodablja informacije na zaslonu na ravni vrstic in ne posameznih znakov.
  • Dodana podpora za polna lebdeča okna, ki jih je mogoče postaviti na poljubno mesto, priložiti, povezati s posameznimi medpomnilniki za urejanje in združiti v večmrežnem načinu.
  • Dodana možnost 'pumblend' za prosojne spustne menije.

Vir: opennet.ru

Dodaj komentar