Liberazione di Neovim 0.7.0, una versione mudernizzata di l'editore Vim

Neovim 0.7.0 hè statu liberatu, una furchetta di l'editore Vim focu annantu à l'aumentu di l'estensibilità è a flessibilità. U prugettu hè stata rielaborazione di a basa di codice Vim per più di sette 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 a parte di basa (l'interfaccia pò esse cambiatu senza toccu l'internu) è implementà una nova architettura estensibile basatu annantu à i plugins. I sviluppi originali di u prugettu sò distribuiti sottu a licenza Apache 2.0, è a parte basica hè distribuita sottu a licenza Vim. L'assemblei pronti sò preparati per Linux (appimage), Windows è macOS.

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, circa 130 plugins specifichi sò digià stati preparati, i vincoli sò dispunibuli per creà plugins è implementà interfacce cù diversi linguaggi di prugrammazione (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) è frameworks (Qt, ncurses, Node .js, Electron, GTK). Diversi opzioni di interfaccia d'utilizatore sò sviluppati. Add-ons GUI sò assai simili à i plugins, ma à u cuntrariu di i plugins, inizianu chjamati à e funzioni di Neovim, mentre chì i plugins sò chjamati da Neovim.

A nova versione offre un supportu iniziale per u travagliu remoto, chì vi permette di eseguisce Neovim nantu à u servitore è cunnette cù u sistema di u cliente utilizendu un ui_client separatu. L'altri cambiamenti includenu: u supportu per Python 2 hè stata interrotta, l'usu di e funzioni Lua in keymap hè statu permessu, novi cumandamenti sò stati aghjuntu à l'API, a capacità di utilizà a lingua Lua per u sviluppu di plugins è a gestione di cunfigurazione hè stata allargata significativamente, Strumenti per diagnosticà i prublemi in u codice sò stati migliurati, u supportu per a barra di statutu glubale hè statu aghjuntu, l'optimizazione di u rendiment hè stata realizata. E capacità di u cliente LSP integratu (Language Server Protocol) sò stati allargati, chì ponu esse utilizati per trasfirià a logica di l'analisi è u cumpletu di codice à i servitori esterni.

Source: opennet.ru

Add a comment