K dispozícii je Neovim 0.4, modernizovaná verzia editora Vim

publikovaný uvoľnenie Neovim 0.4, vidlička od editora Vim, sústredené na zvýšenie rozťažnosti a flexibility. Pôvodný vývoj projektu šírenie pod licenciou Apache 2.0 a základná časť pod licenciou Vim.

V rámci projektu Neovim sa viac ako päť rokov prerába základňa kódu Vim, výsledkom čoho sú zmeny, ktoré zjednodušujú údržbu kódu, poskytujú prostriedok na rozdelenie práce medzi niekoľkých správcov, oddeľujú rozhranie od základnú časť (rozhranie je možné zmeniť bez dotyku vnútorných častí) a implementovať novú rozšíriteľná architektúra na základe pluginov.

Jedným z problémov Vimu, ktorý podnietil vytvorenie Neovimu, bola jeho nafúknutá, monolitická kódová základňa pozostávajúca z viac ako 300 tisíc riadkov kódu C (C89). Len málo ľudí rozumie všetkým nuansám kódovej základne Vim a všetky zmeny riadi jeden správca, čo sťažuje údržbu a vylepšovanie editora. Namiesto kódu zabudovaného do jadra Vim na podporu GUI, Neovim navrhuje použitie univerzálnej vrstvy, ktorá vám umožňuje vytvárať rozhrania pomocou rôznych súprav nástrojov.

Pluginy pre Neovim sa spúšťajú ako samostatné procesy, na interakciu s ktorými sa používa formát MessagePack. Interakcia s pluginmi prebieha asynchrónne, bez blokovania základných komponentov editora. Pre prístup k pluginu je možné použiť TCP socket, t.j. plugin je možné spustiť na externom systéme. Zároveň zostáva Neovim spätne kompatibilný s Vim, naďalej podporuje Vimscript (Lua sa ponúka ako alternatíva) a podporuje pripojenia pre väčšinu štandardných doplnkov Vim. Pokročilé funkcie Neovimu možno použiť v zásuvných moduloch vytvorených pomocou API špecifických pre Neovim.

V súčasnosti už pripravený asi 80 špecifických pluginov, k dispozícii sú väzby na vytváranie pluginov a implementáciu rozhraní pomocou rôznych programovacích jazykov (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) a rámcov (Qt5, ncurses, Node.js, elektrón, GTK+). Vyvíja sa niekoľko možností používateľského rozhrania. Doplnky GUI sú veľmi podobné zásuvným modulom, ale na rozdiel od zásuvných modulov spúšťajú volania funkcií Neovim, zatiaľ čo zásuvné moduly sa volajú z Neovimu.

Niektoré zo zmien v Nová verzia:

  • Pridaná veľká časť nových funkcií API a udalostí používateľského rozhrania.
  • Pridaná nová štandardná knižnica Nvim-Lua pre vývoj pluginov v jazyku Lua.
  • Pokračuje vývoj protokolu používateľského rozhrania, pričom sa informácie na obrazovke aktualizujú skôr na úrovni riadkov ako jednotlivých znakov.
  • Pridaná podpora pre plnohodnotné plávajúce okná, ktoré je možné umiestniť na ľubovoľné miesto, pripojiť, prepojiť s jednotlivými vyrovnávacími pamäťami úprav a zoskupiť v režime Multigrid.
  • Pridaná možnosť „pumblend“ pre priesvitné rozbaľovacie ponuky.

Zdroj: opennet.ru

Pridať komentár