Neovim 0.6.0, Vim-editorin modernisoitu versio, julkaisu

Neovim 0.6.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ä.

Joitakin muutoksia uuteen versioon:

  • Vim-skripteihin on lisätty tuki paikallisille muuttujille, joiden laajuutta rajoittaa vain nykyinen komentosarja.
  • Merkittävästi parannettu Lua-kielen tuki laajennusten kehittämiseen ja asetusten hallintaan. Vim-skripteissä mahdollisuus kutsua Lua-funktioita menetelminä on lisätty määrittämällä v:lua-etuliite (esimerkiksi "arg1->v:lua.somemod.func(arg2)").
  • Sisäänrakennetun LSP-asiakkaan (Language Server Protocol) ominaisuuksia on laajennettu, jonka avulla voidaan siirtää analyysilogiikka ja koodin viimeistely ulkoisille palvelimille. LSP:n käyttö mahdollistaa yli 150 valmiin käsittelijän käytön eri ohjelmointikielille, jotka on valmistettu Visual Studio Code -editoria varten.
  • Parannetut työkalut koodin ongelmien diagnosointiin. Lisätty mahdollisuus näyttää diagnostisten viestien tekstit ja kelluvat ikkunat, joissa on tällaisiin viesteihin liittyvä koodi. LSP-palvelimen lähettämien diagnostisten viestien käsittely on järjestetty.
  • Lisätty tuki virtuaalisille merkkijonoille, joita voidaan käyttää esimerkiksi palvelutietojen lohkojen näyttämiseen.
  • Erilaisia ​​suorituskyvyn optimointeja on tehty, esimerkiksi hajautustaulukko on otettu käyttöön korostetuille ryhmien nimille.
  • Windows 7:n ja 32-bittisten Windowsin koontiversioiden tuki on lopetettu.

Lähde: opennet.ru

Lisää kommentti