Dimensione: 2065
Commento:
|
← Versione 29 del 27/01/2025 22.29.52 ⇥
Dimensione: 6525
Commento: aggiunti C, C++, Markdown - spostato lldb in paragrafo dedicato
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
= Prova tabelle senza bordo = | ## page was renamed from jeremie2/Prove5 #format wiki #language it <<BR>> <<Indice(depth=1)>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=657114"; rilasci="24.04")>> |
Linea 3: | Linea 8: |
||<tablestyle="width:100%;" tableclass=noborder 5%>{{attachment:aiuto.png}}||<40%>'''Aiuto''' offre la guida di Ubuntu Desktop in italiano.||<5%>{{attachment:backup.png}}||<40%>'''[[AmministrazioneSistema/BackupDelSistema/DéjàDup|Backup]]''' permette di effettuare copie di sicurezza dei propri dati in maniera del tutto automatica e regolare.|| || || || || || ||{{attachment:calcolatrice.png}}||'''Calcolatrice''' con modalità finanziaria e scientifica.||{{attachment:contatti.png}} ||'''Contatti''' permette di gestire i contatti forniti da tutte le fonti disponibili (messaggistica istantanea, e-mail e altro).|| || || || || || ||{{attachment:dischi.png}}||'''Dischi''' è un tool utile per gestire le unità disco e i supporti removibili.||{{attachment:editor.png}}||'''Editor di testo''' storicamente conosciuto come '''Gedit''', è leggero e funzionale e supporta diverse funzionalità avanzate, come l'evidenziazione della sintassi del codice sorgente.|| |
= Introduzione = |
Linea 9: | Linea 10: |
= Contro prova tabelle con bordo = | I ''[[https://en.wikipedia.org/wiki/Language_Server_Protocol|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. |
Linea 11: | Linea 17: |
|| a || b || c || | 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.<<BR>> In questa guida vengono mostrati gli strumenti che '''Helix''' mette a disposizione per monitorare la presenza degli '''LSP''' supportati e alcuni esempi di installazione. |
Linea 13: | Linea 20: |
= Prova = | <<Anchor(health)>> = Monitoraggio LSP = |
Linea 15: | Linea 23: |
||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Testo della nota è leggero e funzionale e supporta diverse funzionalità avanzate, come l'evidenziazione della sintassi del codice sorgente. Testo della nota è leggero e funzionale e supporta diverse funzionalità avanzate, come l'evidenziazione della sintassi del codice sorgente.''|| | {{{#!wiki tip 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 17: | Linea 27: |
||<tablestyle="width:100%;" tableclass=noborder 5%><<Immagine(Icone/Piccole/note.png,,center)>>||''Testo della nota è leggero e funzionale e supporta diverse funzionalità avanzate, come l'evidenziazione della sintassi del codice sorgente. Testo della nota è leggero e funzionale e supporta diverse funzionalità avanzate, come l'evidenziazione della sintassi del codice sorgente.''|| | '''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.<<BR>> 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: ✓ }}} |
Linea 19: | Linea 42: |
||<tablestyle="width:100%;" tableclass=noborder 5%><<Immagine(Icone/Piccole/note.png,,center)>>||''Testo della nota.''|| | 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 [[#not_in_path|vedere esempio]]. = C/C++ = Installare il pacchetto ''clangd'':{{{ sudo apt install clangd }}} {{{#!wiki tip Per aggiungere funzionalità di debugging vedere il [[#lldb|paragrafo dedicato]]. }}} = Go = La procedura si riferisce a un'installazione del linguaggio '''[[https://go.dev/|Go]]''' effettuata con i pacchetti presenti nei repository di Ubuntu. 0. Installare '''LSP''' e debugger tramite pacchetti `.deb`:{{{ sudo apt install gopls delve }}} 0. Installare il [[https://it.wikipedia.org/wiki/Lint_(software)|linter]] tramite pacchetto `.snap`:{{{ sudo snap install golangci-lint --classic }}} 0. <<Anchor(not_in_path)>>Eseguendo il comando [[#health|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 }}} 0. Digitare il comando:{{{ sudo ln -s golangci-lint golangci-lint-langserver }}} = Markdown = 0. Installare il pacchetto ''marksman'':{{{ sudo snap install marksman }}} 0. Il comando `hx --health markdown` segnalerà che non viene trovato il percorso a `markdown-oxide`. Spostarsi quindi nella directory `/snap/bin`:{{{ cd /snap/bin }}} 0. Creare il link simbolico:{{{ sudo ln -s marksman markdown-oxide }}} = Python = Le funzionalità '''LSP''' sono state testate in una sessione in [[Programmazione/Python/Pip#venv|ambiente virtuale]].<<BR>> È sufficiente installare '''pylsp''':{{{ sudo apt install python3-pylsp }}} Da notare che non è l'unico software disponibile, a seconda delle esigenze possono essere installate eventuali [[https://github.com/helix-editor/helix/wiki/Language-Server-Configurations#python|alternative]]. <<Anchor(rust)>> = Rust = La procedura fa riferimento a una installazione di '''Rust''' tramite [[https://www.rust-lang.org/tools/install|script]] del sito ufficiale. 0. Installare '''rust-analyzer''' attraverso '''rustup''':{{{ rustup component add rust-analyzer }}} {{{#!wiki tip Per aggiungere funzionalità di debugging vedere il [[#lldb|paragrafo dedicato]]. }}} <<Anchor(lldb)>> = Debug = '''lldb''' è il debugger utilizzato per un gruppo di noti linguaggi compilati ('''C''', '''C++''', '''Rust''', '''Zig'''..). 0. Viene qui installata la versione più recente, la '''18''':{{{ sudo apt install lldb-18 }}} 0. Se si esegue ad esempio il comando [[#health|hx --health rust]], si noterà 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)) }}} 0. Creare link simbolico a '''lldb-dap''':{{{ sudo ln -s lldb-dap-18 lldb-dap }}} = Ulteriori risorse = * [[https://docs.helix-editor.com/lang-support.html|Sito ufficiale - Language Support]] * [[https://docs.helix-editor.com/languages.html|Sito ufficiale - Languages]] |
Linea 22: | Linea 144: |
CategoryHomepage | CategoryProgrammazione CategoryProduttivita |
Guida verificata con Ubuntu: 24.04
Problemi in questa pagina? Segnalali in questa discussione
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.
C/C++
Installare il pacchetto clangd:
sudo apt install clangd
Per aggiungere funzionalità di debugging vedere il paragrafo dedicato.
Go
La procedura si riferisce a un'installazione del linguaggio Go effettuata con i pacchetti presenti nei repository di Ubuntu.
Installare LSP e debugger tramite pacchetti .deb:
sudo apt install gopls delve
Installare il linter tramite pacchetto .snap:
sudo snap install golangci-lint --classic
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
Digitare il comando:
sudo ln -s golangci-lint golangci-lint-langserver
Markdown
Installare il pacchetto marksman:
sudo snap install marksman
Il comando hx --health markdown segnalerà che non viene trovato il percorso a markdown-oxide. Spostarsi quindi nella directory /snap/bin:
cd /snap/bin
Creare il link simbolico:
sudo ln -s marksman markdown-oxide
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.
Installare rust-analyzer attraverso rustup:
rustup component add rust-analyzer
Per aggiungere funzionalità di debugging vedere il paragrafo dedicato.
Debug
lldb è il debugger utilizzato per un gruppo di noti linguaggi compilati (C, C++, Rust, Zig..).
Viene qui installata la versione più recente, la 18:
sudo apt install lldb-18
Se si esegue ad esempio il comando hx --health rust, si noterà 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))
Creare link simbolico a lldb-dap:
sudo ln -s lldb-dap-18 lldb-dap