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

Po skoraj dveh letih razvoja je bil izdan Neovim 0.5, fork urejevalnika Vim, osredotočen na povečanje razširljivosti in prilagodljivosti. Projekt že več kot sedem let predeluje kodno bazo Vim, zaradi česar so narejene spremembe, ki poenostavljajo vzdrževanje kode, zagotavljajo način delitve dela med več vzdrževalci, ločujejo vmesnik od osnovnega dela (vmesnik je lahko spremenjen brez dotikanja notranjosti) in uvesti novo razširljivo arhitekturo, ki temelji na vtičnikih. Izvirni razvoj projekta se distribuira pod licenco Apache 2.0, osnovni del pa pod licenco Vim.

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 je že pripravljenih približno 130 specifičnih vtičnikov, na voljo so vezave za ustvarjanje vtičnikov in implementacijo vmesnikov z uporabo različnih programskih jezikov (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) in ogrodij (Qt, 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.

Nekaj ​​sprememb v novi različici:

  • V Lua je dodan vgrajen odjemalec LSP (Language Server Protocol), ki se lahko uporablja za povezavo z zunanjimi storitvami za analizo in dokončanje kode.
  • Dodan API za nadzor oblikovanja medpomnilnikov za dodelitev.
  • Dodan API za uporabo razširjenih oznak za sledenje spremembam na ravni bajtov.
  • Razširjena podpora za Lua kot jezik za razvoj vtičnikov in upravljanje konfiguracije.
  • Dodana eksperimentalna podpora za mehanizem za razčlenjevanje drevesnega varuha.

Vir: opennet.ru

Dodaj komentar