Yli viiden vuoden ajan Neovim-projektissa on muokattu Vim-koodikantaa, minkä seurauksena tehdään muutoksia, jotka yksinkertaistavat koodin ylläpitoa, tarjoavat työkaluja työnjakoon useiden ylläpitäjien välillä, erottavat käyttöliittymän perusosasta (rajapinta). voidaan vaihtaa koskettamatta sisäosia) ja ottaa käyttöön uusi
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.
Jo tällä hetkellä
Jotkut muutoksista
- Suuri osa uusia API-toimintoja ja käyttöliittymätapahtumia on lisätty.
- Lisätty uusi Nvim-Lua-standardikirjasto Lua-laajennusten kehittämiseen.
- Käyttöliittymäprotokollan jatkuva kehittäminen, joka päivittää tiedot näytöllä rivitasolla yksittäisten merkkien sijaan.
- Lisätty tuki täysimittaisille kelluville ikkunoille, jotka voidaan sijoittaa mielivaltaiseen paikkaan, liittää, linkittää erillisiin muokkauspuskureihin, ryhmitellä Multigrid-tilassa.
- Lisätty 'pumblend'-vaihtoehto läpikuultaviin pudotusvalikoihin.
Lähde: opennet.ru