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

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

Alcune di i cambiamenti in a nova versione:

  • U supportu per i variàbili lucali hè statu aghjuntu à i script vim, u scopu di quale hè limitatu solu da u script attuale.
  • Supportu di lingua Lua significativamente miglioratu per u sviluppu di plugins è a gestione di cunfigurazione. In vim scripts, l'abilità di chjamà funzioni Lua cum'è metudi hè stata aghjunta specificandu u prefissu v:lua (per esempiu, "arg1->v:lua.somemod.func(arg2)").
  • 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. L'usu di LSP permette di utilizà più di 150 gestori pronti per diverse lingue di prugrammazione preparate per l'editore di Visual Studio Code.
  • Strumenti migliurati per diagnosticà i prublemi in codice. Aghjunghjite a capacità di vede u testu di i missaghji di diagnostichi è i finestri flottanti cù u codice assuciatu cù tali missaghji. U trattamentu di i missaghji di diagnostichi trasmessi da u servitore LSP hè furnitu.
  • Added support for strings virtuale, chì pò esse usatu, per esempiu, per vede blocchi cù informazioni di serviziu.
  • Diversi ottimisazioni di u rendiment sò stati fatti, per esempiu, una tavola hash hè attivata per i nomi di gruppi evidenziati.
  • U supportu per Windows 7 è e build 32-bit di Windows hè stata interrotta.

Source: opennet.ru

Add a comment