Saadaval on Vimi redaktori moderniseeritud versioon Neovim 0.4

avaldatud vabastama Neovim 0.4, kahvel Vimi toimetajalt, keskendunud laiendatavuse ja paindlikkuse suurendamise kohta. Projekti originaalarendused levima Apache 2.0 litsentsi alusel ja põhiosa Vimi litsentsi alusel.

Projekti Neovim raames on Vim koodibaasi ümbertöödeldud juba üle viie aasta, mille tulemusena tehakse muudatusi, mis lihtsustavad koodi hooldust, annavad võimaluse tööjaotuseks mitme hooldaja vahel, eraldavad liidest alusosa (liidest saab muuta ilma sisemisi osasid puudutamata) ja rakendada uus laiendatav arhitektuur põhineb pluginatel.

Üks Vimiga seotud probleeme, mis ajendas Neovimi looma, oli selle ülespuhutud, monoliitne koodibaas, mis koosnes enam kui 300 tuhandest C (C89) koodireast. Vaid vähesed inimesed mõistavad Vimi koodibaasi kõiki nüansse ja kõiki muudatusi juhib üks hooldaja, mis muudab redaktori hooldamise ja täiustamise keeruliseks. GUI toetamiseks Vimi tuuma sisseehitatud koodi asemel teeb Neovim ettepaneku kasutada universaalset kihti, mis võimaldab luua liideseid erinevate tööriistakomplektide abil.

Neovimi pistikprogrammid käivitatakse eraldi protsessidena, millega suhtlemiseks kasutatakse MessagePacki vormingut. Suhtlemine pistikprogrammidega toimub asünkroonselt, ilma redaktori põhikomponente blokeerimata. Pluginale ligi pääsemiseks saab kasutada TCP pesa, st. pistikprogrammi saab käivitada välises süsteemis. Samal ajal jääb Neovim Vimiga tagasiühilduvaks, jätkab Vimscripti toetamist (alternatiivina pakutakse Lua) ja toetab enamiku standardsete Vimi pistikprogrammide ühendusi. Neovimi täiustatud funktsioone saab kasutada Neovimi spetsiifiliste API-de abil loodud pistikprogrammides.

Praegu juba ette valmistatud Pluginate loomiseks ja liideste juurutamiseks on saadaval umbes 80 spetsiifilist pistikprogrammi, mis kasutab erinevaid programmeerimiskeeli (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ja raamistikke (Qt5, ncurses, Node.js, Electron, GTK+). Arendatakse mitmeid kasutajaliidese valikuid. GUI lisandmoodulid sarnanevad paljuski pistikprogrammidega, kuid erinevalt pistikprogrammidest algatavad nad kõnesid Neovimi funktsioonidele, samas kui pluginaid kutsutakse Neovimi seest.

Mõned muudatused sisse uus versioon:

  • Lisatud suur osa uutest API funktsioonidest ja kasutajaliidese sündmustest.
  • Lisati uus standardne teek Nvim-Lua pluginate arendamiseks Lua keeles.
  • Jätkub kasutajaliidese protokolli arendus, uuendades infot ekraanil pigem ridade, mitte üksikute märkide tasemel.
  • Lisatud on täieõiguslike ujuvate akende tugi, mida saab paigutada mis tahes asukohta, kinnitada, siduda üksikute redigeerimispuhvritega ja rühmitada Multigrid-režiimis.
  • Poolläbipaistvate rippmenüüde jaoks on lisatud suvand „pumblend”.

Allikas: opennet.ru

Lisa kommentaar