Uscita del editor di testo Neovim 0.10

È stata pubblicata la versione Neovim 0.10, una fork dell'editor Vim, focalizzata sul miglioramento della scalabilità e flessibilità. Il progetto da oltre 10 anni sta rielaborando il codice sorgente di Vim, apportando modifiche che semplificano la manutenzione del codice, offrono strumenti per la divisione del lavoro tra diversi maintainers, separano l'interfaccia dalla parte sottostante (l'interfaccia può essere modificata senza toccare gli interni) e implementano una nuova architettura estensibile basata su plugin. I materiali originali del progetto sono distribuiti sotto licenza Apache 2.0, mentre la parte di base è sotto licenza Vim. Le versioni pronte sono disponibili per Linux (appimage), Windows e macOS.

Tra i problemi di Vim che hanno portato alla creazione di Neovim, si segnala una base di codice monolitica e gonfiata, composta da oltre 300.000 righe di codice in C (C89). Solo poche persone conoscono tutti i dettagli della base di codice di Vim, e tutte le modifiche sono controllate da un unico maintainer, il che rende difficile il supporto e il miglioramento dell'editor. Invece del codice integrato nel core di Vim per il supporto GUI, Neovim propone di utilizzare un'interfaccia universale che consente di creare interfacce con vari toolkit.

I plugin per Neovim vengono eseguiti come processi separati, interagendo tramite il formato MessagePack. L'interazione con i plugin avviene in modo asincrono, senza bloccare i componenti fondamentali dell'editor. Per accedere a un plugin può essere utilizzato un socket TCP, ovvero il plugin può essere eseguito su un sistema esterno. Neovim rimane comunque compatibile con Vim, continua a sostenere Vimscript (con Lua come alternativa) e supporta le connessioni per la maggior parte dei plugin standard di Vim. Le funzionalità avanzate di Neovim possono essere utilizzate nei plugin costruiti con API specifiche per Neovim.

Nel corso della vita del progetto sono stati creati oltre mille plugin specifici, disponibili binding per la creazione di plugin e implementazioni di interfacce utilizzando vari linguaggi di programmazione (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) e framework (Qt, ncurses, Node.js, Electron, GTK). Sono in fase di sviluppo diverse varianti dell'interfaccia utente. I wrapper GUI assomigliano molto ai plugin, ma a differenza dei plugin, essi avviano chiamate alle funzioni di Neovim, mentre i plugin sono invocati da Neovim.

Tra le modifiche nella nuova versione:

  • Di default è stata proposta una nuova palette di colori, in cui la luminosità è stata ridotta, sono state utilizzate combinazioni di colori più bilanciate e sono state risolte problematiche per le persone con disabilità visive.
    Uscita del editor di testo Neovim 0.10Uscita del editor di testo Neovim 0.10
  • Sono state modificate le binding da tastiera: 'K' - quando l'LSP client è attivato mostra informazioni sulla funzione e sulla variabile su cui il cursore è posizionato, '[d' e ']d' - navigano tra i messaggi diagnostici, d - fornisce ulteriori informazioni sul messaggio diagnostico.
  • È stata integrata la funzionalità del plugin vim-commentary per l'inserimento rapido di simboli di commento attorno a righe e blocchi di codice, tenendo conto del contesto (ad esempio, per il contenuto del tag verranno utilizzati i simboli '//' e per l'HTML - ''
  • È stata aggiunta l'opzione 'termsync' che attiva una modalità di output sincronizzato, in cui accumula aggiornamenti dell'interfaccia per eliminare sfarfallii e interruzioni sullo schermo e li visualizza nel terminale in un'unica volta.
  • Per la scrittura nel buffer di sistema è stata utilizzata una sequenza di escape 'OSC 52', se si sta lavorando in una sessione SSH, senza attivare il setting 'clipboard' e avendo un emulatore di terminale che supporta 'OSC 52'.
  • È stata aggiunta una supporto sperimentale per formattare collegamenti ipertestuali utilizzando la sequenza di escape OSC 8. Di default, questa funzionalità viene applicata per evidenziare i collegamenti nei documenti Markdown, formattati come '[example](https://example.com)'.
    Uscita del editor di testo Neovim 0.10
  • È stata garantita l'automazione del riconoscimento del supporto a 24 bit per la visualizzazione dei colori ('truecolor').
  • Utilizzando LSP (Language Server Protocol) vengono forniti suggerimenti in loco, sotto forma di testo virtuale, mostrati in un colore diverso direttamente nel codice, senza l'aggiunta effettiva ai testi sorgente (nelle schermate i suggerimenti appaiono in grigio scuro).
    Uscita del editor di testo Neovim 0.10
  • Sono state ampliate le capacità di ispezione dell'albero sintattico del codice sorgente. È stato aggiunto un modo interattivo per scrivere query sull'albero sintattico, applicabili al volo al codice corrente.
    Uscita del editor di testo Neovim 0.10
  • È stata aggiunta la possibilità di specificare modificatori nel comando ':terminal', ad esempio, ':botright terminal' per aprire una nuova finestra del terminale nell'angolo in basso a destra dello schermo.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster