Elérhető a Neovim 0.4, a Vim szerkesztő modernizált változata

közzétett kiadás Neovim 0.4, egy villa a Vim szerkesztőtől, összpontosított a bővíthetőség és rugalmasság növeléséről. A projekt eredeti fejlesztései terjedés az Apache 2.0 licenc alatt, az alap rész pedig a Vim licenc alatt.

A Neovim projekt részeként több mint öt éve zajlik a Vim kódbázis átdolgozása, melynek eredményeként olyan változtatások valósulnak meg, amelyek leegyszerűsítik a kód karbantartását, lehetőséget adnak a több karbantartó közötti munkamegosztásra, elválasztják a felületet az alaptól. részét (az interfész a belső elemek érintése nélkül módosítható), és valósítson meg egy újat bővíthető architektúra pluginok alapján.

A Vim egyik problémája, amely a Neovim létrehozását késztette, a felduzzasztott, monolitikus kódbázis volt, amely több mint 300 ezer sornyi C (C89) kódból állt. Csak kevesen értik a Vim kódbázis minden árnyalatát, és minden változtatást egyetlen karbantartó irányít, ami megnehezíti a szerkesztő karbantartását és fejlesztését. A grafikus felhasználói felületet támogató Vim magba épített kód helyett a Neovim egy univerzális réteg használatát javasolja, amely lehetővé teszi interfészek létrehozását különféle eszközkészletek segítségével.

A Neovim beépülő moduljai külön folyamatként indulnak el, az interakcióhoz, amellyel a MessagePack formátumot használják. A bővítményekkel való interakció aszinkron módon, a szerkesztő alapvető összetevőinek blokkolása nélkül történik. A plugin eléréséhez egy TCP socket használható, pl. a bővítmény külső rendszeren is futtatható. Ugyanakkor a Neovim visszafelé kompatibilis marad a Vim-mel, továbbra is támogatja a Vimscriptet (a Lua-t alternatívaként kínálják), és támogatja a legtöbb szabványos Vim-bővítmény csatlakozását. A Neovim speciális funkciói a Neovim-specifikus API-k használatával épített bővítményekben használhatók.

Már jelenleg is előkészített Körülbelül 80 specifikus plugin, kötés áll rendelkezésre bővítmények létrehozásához és interfészek megvalósításához különféle programozási nyelvek (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) és keretrendszerek (Qt5, ncurses, Node.js, Electron, GTK+). Számos felhasználói felület opció fejlesztés alatt áll. A GUI-bővítmények sokban hasonlítanak a beépülő modulokhoz, de a beépülő modulokkal ellentétben a Neovim-függvények hívását kezdeményezik, míg a beépülő modulokat a Neovim-en belül hívják meg.

Néhány változás a új verzió:

  • Új API-funkciók és felhasználói felület-események nagy része hozzáadva.
  • Hozzáadott egy új szabványos Nvim-Lua könyvtárat a Lua nyelvű bővítmények fejlesztéséhez.
  • Folytatódik a felhasználói felület protokolljának fejlesztése, a képernyőn megjelenő információk nem egyedi karakterek, hanem sorok szintjén frissülnek.
  • Hozzáadott támogatás a teljes értékű lebegő ablakokhoz, amelyek tetszőleges helyen elhelyezhetők, csatolhatók, egyedi szerkesztőpufferekhez kapcsolhatók és Multigrid módban csoportosíthatók.
  • "Pumblend" opció hozzáadva az áttetsző legördülő menükhöz.

Forrás: opennet.ru

Hozzászólás