Izdanje Neovim 0.7.0, modernizirane verzije Vim editora

Objavljen je Neovim 0.7.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.

Nova verzija nudi početnu podršku za rad na daljinu, omogućujući vam da pokrenete Neovim na poslužitelju i povežete se s njim iz klijentskog sustava koristeći zasebni ui_client. Ostale promjene uključuju: ukinuta je podrška za Python 2, dopuštena je upotreba Lua funkcija u mapi tipki, nove naredbe dodane su u API, mogućnost korištenja Lua jezika za razvoj dodataka i upravljanje konfiguracijom značajno je proširena, poboljšani su alati za dijagnosticiranje problema u kodu, dodana je podrška za globalnu statusnu traku, provedene su optimizacije performansi. 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.

Izvor: opennet.ru

Dodajte komentar