Dostupna je Neovim 0.5, modernizirana verzija Vim editora

Nakon gotovo dvije godine razvoja, objavljen je Neovim 0.5, 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 su napravljene 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.

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:

  • Dodan je ugrađeni LSP klijent (Language Server Protocol) u Lua, koji se može koristiti za povezivanje s vanjskim uslugama za analizu i dovršavanje koda.
  • Dodan API za kontrolu dizajna međuspremnika dodjele.
  • Dodan je API za korištenje proširenih oznaka za praćenje promjena na razini bajta.
  • Proširena podrška za Lua kao jezik za razvoj dodataka i upravljanje konfiguracijom.
  • Dodana je eksperimentalna podrška za mehanizam za analizu stabala.

Izvor: opennet.ru

Dodajte komentar