Neovim 0.4, en modernisert versjon av Vim-editoren, er tilgjengelig

publisert utgivelse Neovim 0.4, en gaffel fra Vim-redaktøren, fokusert på å øke utvidbarheten og fleksibiliteten. Opprinnelig utvikling av prosjektet spre under Apache 2.0-lisensen, og basisdelen under Vim-lisensen.

Innenfor rammen av Neovim-prosjektet har Vim-kodebasen blitt omarbeidet i mer enn fem år, som et resultat av at det gjøres endringer som forenkler kodevedlikehold, gir en måte å dele arbeidskraft mellom flere vedlikeholdere, skiller grensesnittet fra base del (grensesnittet kan endres uten å berøre det indre) og implementere en ny utvidbar arkitektur basert på plugins.

Et av problemene med Vim som førte til opprettelsen av Neovim var dens oppsvulmede, monolitiske kodebase, bestående av mer enn 300 tusen linjer med C (C89)-kode. Bare noen få mennesker forstår alle nyansene i Vim-kodebasen, og alle endringer kontrolleres av én vedlikeholder, noe som gjør det vanskelig å vedlikeholde og forbedre editoren. I stedet for koden innebygd i Vim-kjernen for å støtte GUI, foreslår Neovim å bruke et universelt lag som lar deg lage grensesnitt ved hjelp av ulike verktøysett.

Plugins for Neovim lanseres som separate prosesser, for interaksjon som MessagePack-formatet brukes med. Interaksjon med plugins utføres asynkront, uten å blokkere de grunnleggende komponentene til editoren. For å få tilgang til plugin-en kan en TCP-kontakt brukes, dvs. plugin-en kan kjøres på et eksternt system. Samtidig forblir Neovim bakoverkompatibel med Vim, fortsetter å støtte Vimscript (Lua tilbys som et alternativ) og støtter tilkoblinger for de fleste standard Vim-plugins. Neovims avanserte funksjoner kan brukes i plugins bygget ved hjelp av Neovim-spesifikke APIer.

Foreløpig allerede forberedt ca. 80 spesifikke plugins, bindinger er tilgjengelige for å lage plugins og implementere grensesnitt ved bruk av ulike programmeringsspråk (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) og rammeverk (Qt5, ncurses, Node.js, elektron, GTK+). Flere alternativer for brukergrensesnitt er under utvikling. GUI-tillegg er mye som plugins, men i motsetning til plugins, starter de kall til Neovim-funksjoner, mens plugins kalles fra Neovim.

Noen av endringene i ny verson:

  • Lagt til en stor del av nye API-funksjoner og brukergrensesnitthendelser.
  • Lagt til et nytt standardbibliotek Nvim-Lua for å utvikle plugins på Lua-språket.
  • Utviklingen av brukergrensesnittprotokollen fortsetter, og oppdaterer informasjon på skjermen på linjenivå i stedet for individuelle tegn.
  • Lagt til støtte for fullverdige flytende vinduer, som kan plasseres hvor som helst, festes, kobles til individuelle redigeringsbuffere og grupperes i Multigrid-modus.
  • Lagt til "pumblend"-alternativ for gjennomsiktige rullegardinmenyer.

Kilde: opennet.ru

Legg til en kommentar