Dostupna je Neovim 0.4, modernizirana verzija Vim editora

Objavljeno puštanje Neovim 0.4, fork iz uređivača Vim, usredotočen na povećanju rastezljivosti i fleksibilnosti. Izvorni razvoj projekta širenje pod licencom Apache 2.0, a osnovni dio pod licencom Vim.

U okviru projekta Neovim više od pet godina radi se na Vim kodnoj bazi, uslijed čega su napravljene izmjene koje pojednostavljuju održavanje koda, omogućavaju podjelu rada između nekoliko održavatelja, odvajaju sučelje od osnovni dio (sučelje se može mijenjati bez diranja unutarnjih dijelova) i implementirati novi proširiva arhitektura na temelju dodataka.

Jedan od problema s Vimom koji je potaknuo stvaranje Neovim bila je njegova napuhana, monolitna baza koda, koja se sastoji od više od 300 tisuća redaka C (C89) koda. Samo nekoliko ljudi razumije sve nijanse Vim kodne baze, a sve promjene kontrolira jedan održavatelj, što otežava održavanje i poboljšanje uređivača. Umjesto koda ugrađenog u Vim jezgru za podršku GUI-u, Neovim predlaže korištenje univerzalnog sloja koji vam omogućuje stvaranje sučelja pomoću različitih alata.

Dodaci za Neovim pokreću se kao zasebni procesi, za interakciju s kojima se koristi format MessagePack. Interakcija s dodacima provodi se asinkrono, bez blokiranja osnovnih komponenti uređivača. Za pristup dodatku može se koristiti TCP utičnica, tj. dodatak se može pokrenuti na vanjskom sustavu. U isto vrijeme, Neovim ostaje kompatibilan unazad s Vimom, nastavlja podržavati Vimscript (Lua se nudi kao alternativa) i podržava veze za većinu standardnih Vim dodataka. Napredne značajke Neovim-a mogu se koristiti u dodacima izgrađenim pomoću API-ja specifičnih za Neovim.

Trenutno već pripremljeni dostupno je oko 80 specifičnih dodataka, veza za izradu dodataka i implementaciju sučelja pomoću različitih programskih jezika (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) i okvira (Qt5, ncurses, Node.js, Elektron, GTK+). Razvija se nekoliko opcija korisničkog sučelja. GUI dodaci su poput dodataka, ali za razliku od dodataka, oni iniciraju pozive Neovim funkcijama, dok se dodaci pozivaju unutar Neovim.

Neke od promjena u nova verzija:

  • Dodan veliki dio novih API funkcija i događaja korisničkog sučelja.
  • Dodana je nova standardna biblioteka Nvim-Lua za razvoj dodataka na jeziku Lua.
  • Razvoj protokola korisničkog sučelja se nastavlja, ažurirajući informacije na zaslonu na razini redaka, a ne pojedinačnih znakova.
  • Dodana podrška za potpune plutajuće prozore, koji se mogu postaviti na bilo koje mjesto, priložiti, povezati s pojedinačnim međuspremnicima za uređivanje i grupirati u Multigrid modu.
  • Dodana opcija 'pumblend' za prozirne padajuće izbornike.

Izvor: opennet.ru

Dodajte komentar