Vai al contenuto

Marksman - assistente del codice

Istruzioni errate

Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda la pagina principale della guida.

Marksman è uno strumento utile quando si redige un documento per Rocky Linux. Permette di inserire facilmente i simboli necessari per definire i tag del linguaggio markdown. Ciò consente di scrivere più velocemente e riduce la possibilità di errori.

NvChad/Neovim include già dei widget di testo che aiutano nella scrittura, come la ripetizione delle parole più usate indicizzate in base alla frequenza di inserimento. Le nuove opzioni incluse in questo server linguistico arricchiranno questi widget.

Marksman si integra con il vostro editor per aiutarvi a scrivere e mantenere i vostri documenti Markdown con il protocollo LSP, fornendo così funzioni come il completamento, la definizione di go-to, la ricerca di riferimenti, il refactoring dei nomi, la diagnostica e altro ancora.

Obiettivi

  • aumentare la produttività di NvChad nella scrittura di codice Markdown
  • produrre documenti conformi alle regole del linguaggio Markdown
  • affinare le proprie conoscenze riguardo al linguaggio

Requisiti e competenze

  • Una conoscenza di base del linguaggio Markdown, consigliata la lettura della Guida Markdown
  • NvChad sulla macchina in uso con il Template Chadr correttamente installato

Livello di difficoltà ⭐

Tempo di lettura: 20 minuti

Installazione di Marksman

L'installazione del server linguistico non comporta particolari problemi, poiché è disponibile nativamente in Mason. Installatelo direttamente dalla statusline con il comando:

:MasonInstall marksman

Il comando aprirà l'interfaccia di Mason e installerà direttamente il server linguistico richiesto. Una volta completata l'installazione binaria, è possibile chiudere la schermata di Mason con il tasto q.

La sua installazione, tuttavia, non comporta ancora la sua integrazione nell'editor. Per abilitare questa funzione, si deve modificare il file custom/configs/lspconfig.lua del Template Chadrc.

Integrazione nell'editor

LSP in NvChad

Il plugin nvim-lspconfig integra i server linguistici in NvChad. Questo plugin semplifica notevolmente la loro inclusione nella configurazione di NvChad.

Se durante l'installazione dell'editor si è scelto di installare anche il Template Chadrc, questo creerà il file lspconfig.lua nella cartella custom/configs.

Questo file si occupa di inserire le chiamate necessarie per utilizzare i server linguistici e consente anche di specificare quelli da voi installati. Per integrare marksman nella configurazione dei server linguistici dell'editor, è necessario modificare la stringa local servers aggiungendo il nuovo LSP.

Aprite il vostro NvChad sul file con il comando:

nvim ~/.config/nvim/lua/custom/configs/lspconfig.lua

E modificare la stringa local servers, che al termine avrà il seguente aspetto:

local servers = { "html", "cssls", "tsserver", "clangd", "marksman" }

Salvare il file e chiudere l'editor con il comando :wq.

Per verificare se il server linguistico viene attivato correttamente, aprire un file markdown in NvChad e usare il comando :LspInfo per visualizzare i server linguistici applicati a quel file. All'interno del sommario dovrebbe esserci qualcosa come:

 Client: marksman (id: 2, bufnr: [11, 156])
  filetypes:       markdown
  autostart:       true
  root directory:  /home/your_user/your_path/your_directory
  cmd:             /home/your_user/.local/share/nvim/mason/bin/marksman server

 Configured servers list: cssls, tsserver, clangd, html, yamlls, lua_ls, marksman

Questo indica l'attivazione del server marksman per il file aperto e che si è avviato automaticamente (autostart: true) poiché viene riconosciuto come file markdown filetypes: markdown. Le altre informazioni indicano il percorso dell'eseguibile utilizzato per il controllo del codice cmd:, che utilizza la modalità server marksman server e che utilizza la directory root your_directory per i controlli.

Cartella root

Il concetto di "cartella root" è importante nell'uso di un server linguistico, in quanto per eseguire controlli sul documento, come collegamenti ad altri file o immagini, deve avere una "visione globale" del progetto. Possiamo dire che le "cartelle root" equivalgono ai "progetti" presenti negli IDE grafici.

La root directory, detta anche "directory di lavoro", utilizzata dall'editor per il file aperto, è visualizzabile con il comando :pwd. È modificabile con il comando :lcd se non corrisponde a quella desiderata. Questo comando riassegna la directory di lavoro* solo a quel buffer, senza modificare le impostazioni degli altri buffer aperti nell'editor.

Uso di marksman

Una volta completati tutti i passaggi per l'inserimento, l'attivazione del server linguistico avviene ogni volta che si apre un file markdown nell'editor. Entrando in modalità INSERT, quando si digitano determinati caratteri si avranno nuove opzioni nei widget che aiuteranno a scrivere il documento. Nella schermata qui sotto si possono vedere alcuni degli snippet di markdown disponibili in questi widget.

Marksman Snippets

Chiavi principali

Il server linguistico fornisce molte scorciatoie che attivano l'assistenza alla scrittura. Questo include l'inserimento rapido di tag Markdown, la creazione di collegamenti e l'inserimento di immagini nel documento. Di seguito è riportato un elenco non esaustivo dei caratteri che attivano i vari snippet.

Questi snippet vengono visualizzati all'interno di widget che contengono anche altre scorciatoie. Utilizzare il tasto Tab per la navigazione del widget e selezionare quelli forniti da marksman.La chiave inserisce il tag superscript. TrademarkTM

++"sub"++ La chiave inserisce il tag subscript. Note1
<tr>
  <td>
    ++"table"++
  </td>

  <td>
    Questo tasto consente di creare rapidamente la struttura di una tabella e di scegliere tra numerose strutture di partenza
  </td>
</tr>

<tr>
  <td>
    ++"code"++
  </td>

  <td>
    Inserisce un blocco di codice in linea posizionando due backtick nella posizione in cui si trova il cursore, posizionandolo al centro dei due backtick.
  </td>
</tr>

<tr>
  <td>
    ++"codeblock"++
  </td>

  <td>
    Inserisce tre righe, due con triplo backtick e una vuota, dove si inseriscono i blocchi di codice. Da notare che inserisce anche la stringa <em x-id="3">language</em>, che deve essere compilata con la lingua usata nel blocco.
  </td>
</tr></tbody> </table>

<p spaces-before="0">
  !!! note "Dichiarazione del blocco di codice"
</p>

<pre><code>Le regole del codice Markdown raccomandano di dichiarare sempre il codice utilizzato nel blocco, anche senza la necessità di evidenziazione per una corretta interpretazione. Se il codice al suo interno è troppo generico, si consiglia di usare "text" per la sua dichiarazione.

<p spaces-before="0">
  Le chiavi di attivazione per le scorciatoie di Markdown includono anche altre combinazioni che si possono scoprire con l'uso del server linguistico.
</p>

Conclusione

Anche se non è strettamente necessario, questo server linguistico può diventare, col tempo, un ottimo compagno nella scrittura della documentazione per Rocky Linux.

Il suo utilizzo e la conseguente memorizzazione dei principali tasti per l'inserimento dei simboli del codice Markdown consentirà una scrittura più rapida, permettendo di concentrare l'attenzione sul contenuto.

Author: Franco Colussi

Contributors: Steven Spencer, Ganna Zhyrnova