Neovim 0.7.0, modernizētas Vim redaktora versijas, izlaidums

Ir izlaists Neovim 0.7.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.

Jaunā versija piedāvā sākotnējo atbalstu attālinātam darbam, ļaujot darbināt Neovim serverī un izveidot savienojumu ar to no klienta sistēmas, izmantojot atsevišķu ui_client. Citas izmaiņas ietver: Python 2 atbalsts ir pārtraukts, ir atļauta Lua funkciju izmantošana taustiņu kartē, API ir pievienotas jaunas komandas, ir ievērojami paplašināta iespēja izmantot Lua valodu spraudņu izstrādei un konfigurācijas pārvaldībai, ir uzlaboti rīki koda problēmu diagnosticēšanai, ir pievienots globālās statusa joslas atbalsts, veikta veiktspējas optimizācija. 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.

Avots: opennet.ru

Pievieno komentāru