In u quadru di u prugettu Neovim, a basa di codice Vim hè stata riformulata per più di cinque anni, per via di quali cambiamenti sò fatti chì simplificà u mantenimentu di u codice, furnisce un mezzu di dividendu u travagliu trà parechji mantene, separà l'interfaccia da u parte di basa (l'interfaccia pò esse cambiata senza toccu l'internu) è implementà una nova
Unu di i prublemi cù Vim chì hà pruvucatu a creazione di Neovim era a so basa di codice bloated, monoliticu, custituitu di più di 300 mila linee di codice C (C89). Solu uni pochi di persone capiscenu tutte e sfumature di u codice di Vim, è tutti i cambiamenti sò cuntrullati da un mantenente, chì rende difficiule di mantene è migliurà l'editore. Invece di u codice integratu in u core Vim per sustene a GUI, Neovim prupone l'usu di una capa universale chì permette di creà interfacce cù diversi toolkits.
I plugins per Neovim sò lanciati cum'è prucessi separati, per l'interazzione cù quale u formatu MessagePack hè utilizatu. L'interazzione cù i plugins hè realizatu in modu asincronu, senza bluccà i cumpunenti basi di l'editore. Per accede à u plugin, un socket TCP pò esse usatu, i.e. u plugin pò esse eseguitu nantu à un sistema esternu. À u listessu tempu, Neovim resta cumpatibile cù Vim, cuntinueghja à supportà Vimscript (Lua hè offru cum'è alternativa) è sustene e cunnessione per a maiò parte di i plugins Vim standard. E funzioni avanzate di Neovim ponu esse aduprate in plugins custruiti cù l'API specifichi di Neovim.
Attualmente digià
Alcune di i cambiamenti in
- Aggiunta una grande parte di novi funzioni API è avvenimenti di l'interfaccia d'utilizatore.
- Aggiunta una nova biblioteca standard Nvim-Lua per sviluppà plugins in lingua Lua.
- U sviluppu di u protokollu di l'interfaccia d'utilizatore cuntinueghja, aghjurnà l'infurmazioni nantu à u screnu à u livellu di e linee, invece di i caratteri individuali.
- Aghjunghje un supportu per i finestri flottanti cumpletu, chì ponu esse posti in ogni locu, attaccati, ligati à buffers di editazione individuali, è raggruppati in modu Multigrid.
- Aggiunta l'opzione "pumblend" per i menu a tendina traslucidi.
Source: opennet.ru