Neovim 0.4, en moderniserad version av Vim-redigeraren, är tillgänglig

publiceras släpp Neovim 0.4, en gaffel från Vim-redigeraren, fokuserad på att öka töjbarheten och flexibiliteten. Ursprunglig utveckling av projektet sprida under Apache 2.0-licensen och basdelen under Vim-licensen.

Inom ramen för Neovim-projektet har Vim-kodbasen omarbetats i mer än fem år, vilket gör att förändringar görs som förenklar kodunderhållet, ger ett sätt att fördela arbetet mellan flera underhållare, separera gränssnittet från basdel (gränssnittet kan ändras utan att röra interna) och implementera en ny utbyggbar arkitektur baserat på plugins.

Ett av problemen med Vim som föranledde skapandet av Neovim var dess uppsvällda, monolitiska kodbas, bestående av mer än 300 tusen rader C (C89)-kod. Endast ett fåtal personer förstår alla nyanser i Vim-kodbasen, och alla ändringar kontrolleras av en underhållare, vilket gör det svårt att underhålla och förbättra redigeraren. Istället för koden inbyggd i Vim-kärnan för att stödja GUI, föreslår Neovim att du använder ett universellt lager som låter dig skapa gränssnitt med hjälp av olika verktygssatser.

Plugins för Neovim lanseras som separata processer, för interaktion med vilka MessagePack-formatet används. Interaktion med plugins utförs asynkront, utan att blockera de grundläggande komponenterna i editorn. För att komma åt pluginet kan ett TCP-uttag användas, d.v.s. plugin-programmet kan köras på ett externt system. Samtidigt förblir Neovim bakåtkompatibel med Vim, fortsätter att stödja Vimscript (Lua erbjuds som ett alternativ) och stöder anslutningar för de flesta vanliga Vim-plugins. Neovims avancerade funktioner kan användas i plugins byggda med hjälp av Neovim-specifika API:er.

Redan för närvarande beredd cirka 80 specifika plugins, bindningar är tillgängliga för att skapa plugins och implementera gränssnitt med olika programmeringsspråk (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) och ramverk (Qt5, ncurses, Node.js, Electron, GTK+). Flera användargränssnittsalternativ håller på att utvecklas. GUI-tillägg är ungefär som plugins, men till skillnad från plugins initierar de anrop till Neovim-funktioner, medan plugins anropas från Neovim.

Några av förändringarna i ny version:

  • Lade till en stor del av nya API-funktioner och användargränssnittshändelser.
  • Lade till ett nytt standardbibliotek Nvim-Lua för att utveckla plugins på Lua-språket.
  • Utvecklingen av användargränssnittsprotokollet fortsätter och uppdaterar information på skärmen på radnivå snarare än enskilda tecken.
  • Lade till stöd för fullfjädrade flytande fönster, som kan placeras på valfri plats, kopplas till, länkas till individuella redigeringsbuffertar och grupperas i Multigrid-läge.
  • Lade till "pumblend"-alternativ för genomskinliga rullgardinsmenyer.

Källa: opennet.ru

Lägg en kommentar