Neovim 0.4 hè dispunibule, una versione mudernizzata di l'editore Vim

publicatu liberazione Neovim 0.4, un fork da l'editore Vim, cuncintratu in crescita di estensibilità è flessibilità. Sviluppi originali di u prugettu sparghje sottu a licenza Apache 2.0, è a parte di basa sottu a licenza Vim.

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 architettura estensibile basatu nantu à i plugins.

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à preparatu circa 80 plugins specifichi, associazioni sò dispunibuli per creà plugins è implementà interfacce chì utilizanu diversi linguaggi di prugrammazione (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) è frameworks (Qt5, 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 nova versione:

  • 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

Add a comment