Evidenziazione della sintassi dinamica


L'evidenziazione dinamica della sintassi è l'evidenziazione del codice che l'utente può modificare. C'è un solo punto in cui questo accade: l'editor online.

Note

Gli snippet di codice, le iterazioni e simili sono statici, perché l'utente non può modificare il proprio codice al volo. Se vuoi saperne di più su come gestiamo l'evidenziazione statica della sintassi, consulta la documentazione sull'evidenziazione statica della sintassi.

Implementazione

L'evidenziazione dinamica della sintassi si realizza con la libreria CodeMirror.

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

  1. Il linguaggio è supportato nativamente da CodeMirror (cioè è elencato tra i linguaggi supportati). In questo caso, passa alla sezione Abilitare il linguaggio.
  2. Il linguaggio è supportato tramite un plugin CodeMirror esistente. In questo caso, passa alla sezione Usare un plugin esistente.
  3. Il linguaggio non è supportato. A questo punto hai tre opzioni:
    1. Scrivere un plugin CodeMirror da zero, come descritto nella sezione Creare un nuovo plugin.
    2. La sintassi del tuo linguaggio assomiglia (molto) a quella di un altro linguaggio (ad esempio la sintassi di Unison assomiglia a quella di Haskell): in questo caso potresti valutare di usare per il tuo linguaggio l'evidenziazione della sintassi di quell'altro linguaggio. Per maggiori informazioni, consulta la sezione Abilitare il linguaggio.
    3. Rinunciare all'evidenziazione dinamica della sintassi.

Abilitare il linguaggio

Per abilitare il supporto di CodeMirror per il tuo linguaggio, apri un argomento su il forum. Noi di Exercism creeremo poi una Pull Request che abilita il supporto di CodeMirror per il tuo linguaggio sul sito web.

Usare un plugin esistente

Per usare un plugin esistente, questo deve essere pubblicato su NPM.

Se il plugin non è pubblicato su NPM, puoi fare una di queste cose:

  1. Chiedere all'autore del plugin se vuole pubblicarlo su NPM.
  2. Fare il fork del repository e pubblicarlo tu stesso.
  3. Chiedere a noi (Exercism) di fare il fork del repository, così lo pubblichiamo noi. Per farlo, apri un argomento su il forum per richiederlo.
Note

Il passo successivo è Abilitare il linguaggio.

Creare un nuovo plugin

Ecco i passi per iniziare:

  1. Controlla il nostro elenco di repository per un codemirror-lang-... già esistente per assicurarti che non ne esista già uno.
  2. Apri un nuovo argomento su il forum di Exercism dicendoci per quale linguaggio vorresti creare un plugin CodeMirror.
  3. Una volta creato per te un repository del plugin CodeMirror, implementa la grammatica per il tuo track.
Note

Per aiutarti a iniziare, il repository creato per te contiene una grammatica di esempio minimale su cui puoi costruire e che puoi ritoccare.

Abbiamo una comunità incredibilmente cordiale e disponibile, che sarà felice di aiutarti mentre lavori su questo! Se ti blocchi, apri un nuovo argomento su il forum di Exercism o crea nuove issue su exercism/exercism se serve 🙂

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

Usare un linguaggio diverso

La sintassi del tuo linguaggio assomiglia (molto) a quella di un altro linguaggio: in questo caso potresti valutare di usare per il tuo linguaggio l'evidenziazione della sintassi di quell'altro linguaggio. Per farlo, configura il track usando il plugin CodeMirror dell'altro linguaggio. Per maggiori informazioni, consulta la sezione Abilitare il linguaggio.