Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Ufficio/EditorDiTesto/Helix/Lsp"
Differenze tra le versioni 25 e 26
Versione 25 del 25/11/2024 02.06.25
Dimensione: 5749
Autore: jeremie2
Commento:
Versione 26 del 25/11/2024 02.18.53
Dimensione: 5692
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 24: Linea 24:
Viene qui trattato il principale strumento per individuare i pacchetti da installare che però, a seconda dei casi, potrebbe non dare risposte esaustive. In tal caso è consigliata la consultazione delle pagine wiki del progetto [[https://github.com/helix-editor/helix/wiki/Language-Server-Configurations|Language Server Configurations]] e [[https://github.com/helix-editor/helix/wiki/Debugger-Configurations|Debugger Configurations]]. Viene qui trattato il principale strumento per individuare i pacchetti da installare che però, a seconda dei casi, potrebbe non dare risposte esaustive. In tal caso consultare le pagine [[https://github.com/helix-editor/helix/wiki/Language-Server-Configurations|Language Server Configurations]] e [[https://github.com/helix-editor/helix/wiki/Debugger-Configurations|Debugger Configurations]].
Linea 28: Linea 28:
Più in particolare è possibile utilizzare il comando per uno specifico linguaggio nella forma:{{{ In particolare è possibile direzionare il comando su uno specifico linguaggio nella forma:{{{
Linea 64: Linea 64:
La procedura riportata si riferisce a un'installazione del linguaggio '''[[https://go.dev/|Go]]''' effettuata con i pacchetti presenti nei repository di Ubuntu. La procedura si riferisce a un'installazione del linguaggio '''[[https://go.dev/|Go]]''' effettuata con i pacchetti presenti nei repository di Ubuntu.


Guida verificata con Ubuntu: 24.04

Introduzione

I Language Server Protocol (LSP) sono uno strumento attraverso il quale all'interno degli editor di testo vengono messe a disposizioni varie funzionalità per la scrittura del codice sorgente. Sia che si tratti di linguaggi di programmazione o di markup, si avranno a disposizione funzionalità di:

  • auto completamento;
  • formattazione del testo;
  • riferimenti alla documentazione ufficiale del linguaggio;
  • segnalazione di errori;
  • e altro.

Contrariamente ad altri editor di testo Helix non implementa un sistema di plugin per l'aggiunta di funzionalità supplementari come gli LSP. Questo ha lo svantaggio di non avere una procedura standard di installazione, ma sarà necessario installare manualmente i pacchetti dal gestore pacchetti di sistema o del linguaggio stesso.
In questa guida vengono mostrati gli strumenti che Helix mette a disposizione per monitorare la presenza degli LSP supportati e alcuni esempi di installazione.

Monitoraggio LSP

Viene qui trattato il principale strumento per individuare i pacchetti da installare che però, a seconda dei casi, potrebbe non dare risposte esaustive. In tal caso consultare le pagine Language Server Configurations e Debugger Configurations.

Helix mette a disposizione il comando hx --health che come output restituisce un lungo elenco in cui per ogni singolo linguaggio viene mostrato quali LSP, debugger e funzionalità siano supportate.
In particolare è possibile direzionare il comando su uno specifico linguaggio nella forma:

hx --health NOME_LINGUAGGIO

Ad esempio per valutare lo stato relativo al linguaggio python il comando diviene:

hx --health python

L'output sarà:

Configured language servers:
  ✘ pylsp: 'pylsp' not found in $PATH
Configured debug adapter: None
Configured formatter: None
Highlight queries: ✓
Textobject queries: ✓
Indent queries: ✓

dove il significato dei simboli è così riassumibile:

Simbolo

Significato

pieno supporto

None

totale mancaza

supportato ma necessita installazione

Nell'esempio di cui sopra, una volta installato il pacchetto relativo a pylsp, eseguendo nuovamente il comando si otterrà:

Configured language servers:
  ✓ pylsp: /usr/bin/pylsp
Configured debug adapter: None
Configured formatter: None
Highlight queries: ✓
Textobject queries: ✓
Indent queries: ✓

dove la riga che mostrava il simbolo e il messaggio di errore, adesso riporta la spunta e il percorso al file eseguibile.

Talvolta può tuttavia capitare che nonostante i pacchetti siano correttamente installati, Helix non riesca a localizzare l'eseguibile continuando a riportare l'errore not found in $PATH. In tal caso sarà necessario aggiungere manualmente un link simbolico vedere esempio.

Go

La procedura si riferisce a un'installazione del linguaggio Go effettuata con i pacchetti presenti nei repository di Ubuntu.

  1. Installare LSP e debugger tramite pacchetti .deb:

    sudo apt install gopls delve
  2. Installare il linter tramite pacchetto .snap:

    sudo snap install golangci-lint --classic
  3. Eseguendo il comando hx --health go si noterà che il percorso al file eseguibile di golangci non viene trovato. Sarà necessario aggiungere manualmente un link simbolico. Spostarsi nella directory /snap/bin:

    cd /snap/bin
  4. Digitare il comando:

    sudo ln -s golangci-lint golangci-lint-langserver

Python

Le funzionalità LSP sono state testate in una sessione in ambiente virtuale.
È sufficiente installare pylsp:

sudo apt install python3-pylsp

Da notare che non è l'unico software disponibile, a seconda delle esigenze possono essere installate eventuali alternative.

Rust

La procedura fa riferimento a una installazione di Rust tramite script del sito ufficiale.

  1. Installare rust-analyzer attraverso rustup:

    rustup component add rust-analyzer
  2. Installare il debugger lldb se si desiderano funzionalità di debugging. Viene qui installata la versione più recente, la 18:

    sudo apt install lldb-18
  3. Il comando hx --health rust mostrerà che il percorso al file eseguibile di lldb non viene trovato. Sarà necessario aggiungere manualmente un link simbolico. Spostarsi nella directory ospitante il file eseguibile:

    cd $(dirname $(which lldb-18))
  4. Creare link simbolico a lldb-dap:

    sudo ln -s lldb-dap-18 lldb-dap

Ulteriori risorse


CategoryProgrammazione CategoryProduttivita