Neovim 0.10 vĂ€ljalase on avaldatud, mis on Vim redaktori haru, mis keskendub laiendatavuse ja paindlikkuse suurendamisele. Projekt on juba ĂŒle 10 aasta töötanud Vim-i koodibaasi ĂŒmbertegemise kallal, mille tulemusena tehakse muudatusi, mis lihtsustavad koodi hooldust, pakkudes vahendeid töö jagamiseks mitme hooldaja vahel, eraldades liidese pĂ”hiosast (liidest saab muuta, ilma et see mĂ”jutaks sisemust) ning rakendades uut laiendatavat arhitektuuri, mis pĂ”hineb pistikprogrammide sĂŒsteemil. Projekti algupĂ€rased tööd on litsentsitud Apache 2.0 alusel, samas kui pĂ”hiosa on litsentsitud Vim-i alusel. Valmis buildid on ette valmistatud Linuxi (appimage), Windowsi ja macOS-i jaoks.
Vim-i probleemidest, mis inspireerisid Neovimi loomist, tĂ”statatakse paisutatud monoliitne koodibaas, mis koosneb rohkem kui 300 000 reas C (C89) keeles. KĂ”igis Vim-i koodibaasi nĂŒanssides mĂ”istab vaid mĂ”ned inimesed, samas kui kĂ”iki muudatusi kontrollib ĂŒks hooldaja, mis raskendab redaktori hooldust ja arendamist. Neovim pakub GUI toe toetamiseks kaasasoleva Vim-i koodi asemel universaalset kihte, mis vĂ”imaldab erinevate tööriistade kasutamist liideste loomisel.
Neovimi pluginate kĂ€ivitatakse eraldi protsessidena, mille suhtlemiseks kasutatakse MessagePack formaati. Pluginate vaheline suhtlus toimub asĂŒnkroonselt ning ei blokeeri toimetaja pĂ”hikomponente. Pluginatele juurdepÀÀsuks vĂ”ib kasutada TCP-soket, st plugin vĂ”ib töötada vĂ€lises sĂŒsteemis. Sellegipoolest on Neovim tĂ€ielikult ĂŒhilduv Vimi ka, toetades Vimscripti (alternatiivina on pakutud Lua) ning enamikku Viimi vaikimisi pluginaid. Neovimi tĂ€iendavaid vĂ”imalusi saab kasutada pluginate arendamisel, mis on loodud Neovimile spetsiifilist API-d kasutades.
Projekti eksisteerimise ajal on loodud rohkem kui tuhat spetsiifilist plugina, saadaval on sidumised pluginate loomise ja liideste rakenduste jaoks erinevate programmeerimiskeelte (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ja raamistikud (Qt, ncurses, Node.js, Electron, GTK). Arendatakse mitmeid kasutajaliidese variante. GUI-lisandid meenutavad palju pluginaid, kuid erinevalt pluginaist kutsuvad nad Neovimi funktsioone esile, samal ajal kui pluginaid kutsutakse Neovimist.
Uue versiooni muudatuste hulgas on:
- Vaikimisi on pakutud uut vÀrviskeemi, kus on vÀhendatud heledust, kasutatakse tasakaalus vÀrvikombinatsioone ja lahendatakse probleemid, millega puutuvad kokku vÀrvitundlikkusega inimesed.


- Olenemata on muudetud klahvivĂ”tmeid: 'K' - LSP-klienti sisse lĂŒlitades nĂ€itab see teavet funktsiooni ja muutuja kohta, millele kursor osutab; '[d' ja ']d' - liikumine diagnostiliste sĂ”numite vahel; d - tĂ€iendava teabe vĂ€ljatoomine diagnostilise sĂ”numi kohta.
- Vim-commentary plugina sisseehitatud funktsioon vĂ”imaldab kiiresti kommenteerida reade ja koodiplokke, arvestades konteksti (nĂ€iteks sildi sisu puhul kasutatakse symbole â//â, HTML-i jaoks aga ââ).
- Lisatud on valik âtermsyncâ, mis aktiveerib sĂŒnkroonitud vĂ€ljundi reĆŸiimi, kus vilkumise ja katkestuste vĂ€ltimiseks ekraanil kasutatakse liidese uuendusi ja neid kuvatakse terminalis ĂŒhe kogusena.
- SĂŒsteemi lĂ”ikepuhvri kirjutamiseks on kasutusel escape-jĂ€rjestus âOSC 52â, kui töö toimub SSH sessioonis, seadistus âclipboardâ pole sisse lĂŒlitatud ja terminal emulaator toetab âOSC 52â.
- Lisatud on eksperimentaalne tugi hĂŒperlinkide vormindamiseks escape-jĂ€rjestuse OSC 8 abil. See vĂ”imalus on vaikimisi rakendatud linkide esitlemiseks Markdown dokumentides, mis on vormindatud kujul â[example](https://example.com)â.

- Automaatne tuvastamine terminali 24-bitise vĂ€rvide toetamise (âtruecolorâ) kohta on tagatud.
- LSP (Language Server Protocol) kasutamisel tagatakse konteksti puhvrite nÀitamine virtuaalse tekstina, mida kuvatakse teistsuguse vÀrviga otse koodis, kuid ilma tegeliku lisamiseta lÀhtekoodidesse (ekraanipildil kuvatakse vihjed tumehallina).

- TĂ”hustatud on lĂ€htekoodi sĂŒntakspuu inspekteerimise vĂ”imalusi. Lisatud on interaktiivne reĆŸĂŒĂŒm sĂŒntakspuu pĂ€ringute kirjutamiseks, mida rakendatakse jooksvalt kohalolevale koodile.

- Lisatud on vÔimalus mÀÀrata modifikaatoreid kÀsus «:terminal», nÀiteks «:botright terminal» uue terminaliakna avamiseks ekraani paremas alanurgas.
Allikas: opennet.ru





