Neovim 0.6.0, modernizētas Vim redaktora versijas, izlaidums

Ir izlaists Neovim 0.6.0, kas ir Vim redaktora dakša, kas vērsta uz paplašināšanas un elastības palielināšanu. Projektā jau vairāk nekā septiņus gadus tiek pārstrādāta Vim kodu bāze, kā rezultātā tiek veiktas izmaiņas, kas vienkāršo koda apkopi, nodrošina darba sadales līdzekli starp vairākiem uzturētājiem, atdala saskarni no bāzes daļas (saskarne var būt mainīta, nepieskaroties iekšējiem elementiem) un ieviest jaunu paplašināmu arhitektūru, pamatojoties uz spraudņiem. Projekta oriģinālās izstrādes tiek izplatītas ar Apache 2.0 licenci, bet pamata daļa tiek izplatīta ar Vim licenci. Gatavas komplektācijas ir sagatavotas operētājsistēmai Linux (appimage), Windows un macOS.

Viena no Vim problēmām, kas pamudināja izveidot Neovim, bija tā uzpūstā, monolīta koda bāze, kas sastāvēja no vairāk nekā 300 tūkstošiem C (C89) koda rindiņu. Tikai daži cilvēki saprot visas Vim kodu bāzes nianses, un visas izmaiņas kontrolē viens uzturētājs, kas apgrūtina redaktora uzturēšanu un uzlabošanu. Vim kodolā iebūvētā koda vietā, lai atbalstītu GUI, Neovim piedāvā izmantot universālu slāni, kas ļauj izveidot saskarnes, izmantojot dažādus rīku komplektus.

Neovim spraudņi tiek palaisti kā atsevišķi procesi, mijiedarbībai ar kuriem tiek izmantots MessagePack formāts. Mijiedarbība ar spraudņiem tiek veikta asinhroni, nebloķējot redaktora pamatkomponentus. Lai piekļūtu spraudnim, var izmantot TCP ligzdu, t.i. spraudni var palaist ārējā sistēmā. Tajā pašā laikā Neovim joprojām ir saderīgs ar Vim, turpina atbalstīt Vimscript (Lua tiek piedāvāts kā alternatīva) un atbalsta savienojumus lielākajai daļai standarta Vim spraudņu. Neovim uzlabotās funkcijas var izmantot spraudņos, kas izveidoti, izmantojot Neovim specifiskās API.

Šobrīd jau ir sagatavoti aptuveni 130 specifiski spraudņi, pieejami iesējumi spraudņu izveidei un saskarņu ieviešanai, izmantojot dažādas programmēšanas valodas (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) un ietvarus (Qt, ncurses, Node .js, Electron, GTK). Tiek izstrādātas vairākas lietotāja saskarnes iespējas. GUI pievienojumprogrammas līdzinās spraudņiem, taču atšķirībā no spraudņiem tie ierosina izsaukumus uz Neovim funkcijām, savukārt spraudņi tiek izsaukti no Neovim.

Dažas izmaiņas jaunajā versijā:

  • Vietējo mainīgo atbalsts ir pievienots vim skriptiem, kuru darbības jomu ierobežo tikai pašreizējais skripts.
  • Ievērojami uzlabots Lua valodas atbalsts spraudņu izstrādei un konfigurācijas pārvaldībai. Vim skriptos ir pievienota iespēja izsaukt Lua funkcijas kā metodes, norādot v:lua prefiksu (piemēram, “arg1->v:lua.somemod.func(arg2)”).
  • Ir paplašinātas iebūvētā LSP klienta (Language Server Protocol) iespējas, kuras var izmantot, lai pārsūtītu analīzes loģiku un koda pabeigšanu uz ārējiem serveriem. LSP izmantošana ļauj izmantot vairāk nekā 150 gatavus apdarinātājus dažādām programmēšanas valodām, kas sagatavoti Visual Studio koda redaktoram.
  • Uzlaboti rīki koda problēmu diagnosticēšanai. Pievienota iespēja parādīt diagnostikas ziņojumu tekstu un peldošos logus ar kodu, kas saistīts ar šādiem ziņojumiem. Tiek nodrošināta LSP servera pārraidīto diagnostikas ziņojumu apstrāde.
  • Pievienots atbalsts virtuālajām virknēm, kuras var izmantot, piemēram, lai parādītu blokus ar pakalpojumu informāciju.
  • Ir veiktas dažādas veiktspējas optimizācijas, piemēram, iezīmētajiem grupu nosaukumiem ir iespējota hash tabula.
  • Operētājsistēmas Windows 7 un Windows 32 bitu būvējumu atbalsts ir pārtraukts.

Avots: opennet.ru

Pievieno komentāru