Izdanje Neovim 0.6.0, modernizirane verzije Vim editora

Objavljen je Neovim 0.6.0, fork Vim editora usmjeren na povećanje proširivosti i fleksibilnosti. Projekt je prerađivao Vim bazu koda više od sedam godina, kao rezultat toga napravljene su izmjene koje pojednostavljuju održavanje koda, omogućuju raspodjelu rada između nekoliko održavatelja, odvajaju sučelje od osnovnog dijela (sučelje se može promijenio bez diranja unutarnjih dijelova) i implementirao novu proširivu arhitekturu temeljenu na dodacima. Izvorni razvoj projekta distribuira se pod licencom Apache 2.0, a osnovni dio se distribuira pod licencom Vim. Gotovi sklopovi su pripremljeni za Linux (appimage), Windows i macOS.

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 je već pripremljeno oko 130 specifičnih dodataka, dostupna su povezivanja za kreiranje dodataka i implementaciju sučelja pomoću različitih programskih jezika (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) i okvira (Qt, ncurses, Node .js, Electron, 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 novoj verziji:

  • Podrška za lokalne varijable dodana je vim skriptama, čiji je opseg ograničen samo trenutnom skriptom.
  • Značajno poboljšana podrška za jezik Lua za razvoj dodataka i upravljanje konfiguracijom. U vim skriptama dodana je mogućnost pozivanja Lua funkcija kao metoda navođenjem v:lua prefiksa (na primjer, “arg1->v:lua.somemod.func(arg2)”).
  • Proširene su mogućnosti ugrađenog LSP klijenta (Language Server Protocol) koji se može koristiti za prijenos logike analize i dovršetka koda na vanjske poslužitelje. Korištenje LSP-a omogućuje vam korištenje više od 150 gotovih rukovatelja za različite programske jezike pripremljene za uređivač koda Visual Studio.
  • Poboljšani alati za dijagnosticiranje problema u kodu. Dodana je mogućnost prikaza teksta dijagnostičkih poruka i plutajućih prozora s kodom koji je povezan s takvim porukama. Omogućena je obrada dijagnostičkih poruka koje šalje LSP poslužitelj.
  • Dodana podrška za virtualne nizove, koji se mogu koristiti, na primjer, za prikaz blokova s ​​informacijama o usluzi.
  • Napravljene su razne optimizacije performansi, na primjer, hash tablica je omogućena za označena imena grupa.
  • Podrška za Windows 7 i 32-bitne verzije sustava Windows je prekinuta.

Izvor: opennet.ru

Dodajte komentar