Evidenziazione della sintassi statica


L'evidenziazione sintattica statica è l'evidenziazione del codice che l'utente non può modificare. Include frammenti di codice, iterazioni e altro.

Note

L'editor online non usa l'evidenziazione sintattica statica, perché l'utente può modificare il codice in qualsiasi momento. Se vuoi saperne di più su come gestiamo l'evidenziazione sintattica nell'editor online, consulta la documentazione sull'evidenziazione sintattica dinamica.

Implementazione

L'evidenziazione sintattica statica si basa sulla libreria highlightjs.

Quando aggiungi il supporto per il tuo linguaggio, hai tre opzioni:

  1. Il linguaggio è supportato nativamente da highlightjs (cioè è elencato tra i linguaggi supportati). Se è così, passa alla sezione Configurare la track.
  2. Il linguaggio è supportato tramite un plugin di highlightjs già esistente. Se è così, passa alla sezione Usare un plugin esistente.
  3. Il linguaggio non è supportato. A questo punto hai tre opzioni:
    1. Scrivere un plugin di highlightjs da zero, come descritto nella sezione Creare un nuovo plugin.
    2. La sintassi del tuo linguaggio assomiglia (molto) a quella di un altro linguaggio (per esempio la sintassi di Unison assomiglia a quella di Haskell); in questo caso potresti usare l'evidenziazione sintattica di quel linguaggio per il tuo. Per maggiori informazioni, vedi la sezione Configurare la track.
    3. Rinunciare all'evidenziazione sintattica statica.

Configurare la track

Per abilitare il supporto di highlightjs per il linguaggio della tua track, devi modificare il file config.json della track. All'interno del file config.json, aggiungi o imposta la chiave online_editor.highlightjs_language con l'identificatore di linguaggio highlightjs appropriato (che trovi nella documentazione).

Esempio

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

Usare un plugin esistente

Per usare un plugin esistente, questo deve essere pubblicato su NPM. Se il plugin non è pubblicato su NPM, puoi procedere in uno di questi modi:

  1. Chiedere all'autore del plugin se vuole pubblicarlo su NPM.
  2. Fare un fork del repository e pubblicarlo tu stesso.
  3. Chiedere a noi (Exercism) di fare un fork del repository e pubblicarlo noi. Per farlo, apri un topic sul forum con la richiesta.

Il passo successivo è abilitare il plugin.

Abilitare il plugin

Per abilitare un plugin (che deve essere pubblicato su NPM), apri un topic sul forum chiedendoci di aggiungere il supporto per il plugin al sito. Noi (Exercism) creeremo poi una Pull Request che aggiunge il plugin al sito. Una volta che la PR è stata mergiata, puoi abilitare il supporto di highlightjs seguendo le istruzioni nella sezione Configurare la track.

Creare un nuovo plugin

Se vuoi creare un plugin, hai due possibilità per l'hosting:

  1. Creare un repository sul tuo account personale e pubblicarlo tu stesso.
  2. Chiedere a noi (Exercism) di creare un repository e lasciare che lo pubblichiamo noi. Per farlo, apri un topic sul forum con la richiesta.

Una volta che hai un repository, segui le istruzioni per contribuire a un linguaggio per implementare il plugin.

Dovrai poi pubblicare il plugin su NPM. Il passo successivo è abilitare il plugin.

Usare un altro linguaggio

La sintassi del tuo linguaggio assomiglia (molto) a quella di un altro linguaggio; in questo caso potresti usare l'evidenziazione sintattica di quel linguaggio per il tuo. Per farlo, configura la track in modo che usi l'identificatore di linguaggio highlightjs dell'altro linguaggio. Per maggiori informazioni, vedi la sezione Configurare la track.