Neovim 0.7.0, Vim-editorin modernisoitu versio, julkaisu

Neovim 0.7.0 on julkaistu, Vim-editorin haarukka, joka keskittyy laajennettavuuden ja joustavuuden lisäämiseen. Projektissa on muokattu Vim-koodipohjaa yli seitsemän vuoden ajan, minkä seurauksena tehdään muutoksia, jotka yksinkertaistavat koodin ylläpitoa, tarjoavat mahdollisuuden työnjakoon useiden ylläpitäjien kesken, erottavat rajapinnan perusosasta (rajapinta voidaan muutettu koskematta sisäosaan) ja ottaa käyttöön uusi laajennettava arkkitehtuuri, joka perustuu laajennuksiin. Projektin alkuperäiset kehitystyöt jaetaan Apache 2.0 -lisenssillä ja perusosa Vim-lisenssillä. Valmiit kokoonpanot valmistetaan Linuxille (appimage), Windowsille ja macOS:lle.

Yksi Vim-ongelmista, jotka saivat aikaan Neovimin luomisen, on paisunut, monoliittinen koodikanta, jossa on yli 300 89 riviä C-koodia (CXNUMX). Vain harvat ihmiset ymmärtävät Vim-koodikannan kaikki vivahteet, ja kaikkia muutoksia hallitsee yksi ylläpitäjä, mikä vaikeuttaa editorin ylläpitoa ja parantamista. GUI:ta tukevan Vim-ytimeen sisäänrakennetun koodin sijaan Neovim ehdottaa universaalin kerroksen käyttöä, jonka avulla voit luoda käyttöliittymiä erilaisilla työkalusarjoilla.

Neovimin lisäosat käynnistetään erillisinä prosesseina, joiden kanssa MessagePack-muotoa käytetään. Vuorovaikutus laajennusten kanssa suoritetaan asynkronisessa tilassa ilman, että editorin peruskomponentit estetään. TCP-pistorasiaa voidaan käyttää liitännäiseen pääsyyn, ts. laajennus voi toimia ulkoisessa järjestelmässä. Samaan aikaan Neovim pysyy taaksepäin yhteensopivana Vimin kanssa, tukee edelleen Vimscriptiä (Lua tarjotaan vaihtoehtona) ja tukee useimpien tavallisten Vim-laajennusten yhdistämistä. Neovimin edistyneitä ominaisuuksia voidaan käyttää laajennuksissa, jotka on rakennettu Neovim-kohtaisen API:n avulla.

Tällä hetkellä valmiina on jo noin 130 erityistä lisäosaa, sidoksia on saatavilla lisäosien luomiseen ja käyttöliittymien toteuttamiseen eri ohjelmointikielillä (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ja kehyksillä (Qt, ncurses, Node .js, Electron, GTK). Useita käyttöliittymävaihtoehtoja kehitetään. GUI-lisäosat ovat paljon kuin laajennuksia, mutta toisin kuin laajennukset, ne käynnistävät kutsuja Neovim-toimintoihin, kun taas laajennuksia kutsutaan Neovimin sisältä.

Uusi versio tarjoaa alustavan etätyön tuen, jolloin voit käyttää Neovimia palvelimella ja muodostaa yhteyden siihen asiakasjärjestelmästä erillisen ui_client-sovelluksen avulla. Muita muutoksia ovat: Python 2:n tuki on lopetettu, Lua-toimintojen käyttö näppäinkartassa on sallittu, API-liittymään on lisätty uusia komentoja, mahdollisuus käyttää Lua-kieltä lisäosien kehittämiseen ja konfiguraatioiden hallintaan on laajentunut merkittävästi, työkaluja koodin ongelmien diagnosointiin on parannettu, globaalin tilapalkin tuki on lisätty, suorituskykyä on optimoitu. Sisäänrakennetun LSP-asiakkaan (Language Server Protocol) ominaisuuksia on laajennettu, jonka avulla voidaan siirtää analyysilogiikka ja koodin viimeistely ulkoisille palvelimille.

Lähde: opennet.ru

Lisää kommentti