Coloration syntaxique dynamique


La coloration syntaxique dynamique désigne la coloration du code que l'utilisateur peut modifier. Un seul endroit est concerné : l'éditeur en ligne.

Note

Les extraits de code, les itérations et autres éléments du même genre sont statiques, car l'utilisateur ne peut pas modifier son code à la volée. Si tu veux en savoir plus sur la façon dont nous gérons la coloration syntaxique statique, consulte la documentation sur la coloration syntaxique statique.

Implémentation

La coloration syntaxique dynamique est assurée par la bibliothèque CodeMirror.

Pour ajouter la prise en charge de ton langage, tu as trois options :

  1. Le langage est pris en charge nativement par CodeMirror (c'est-à-dire listé comme langage pris en charge). Dans ce cas, passe à la section Active le langage.
  2. Le langage est pris en charge via un plugin CodeMirror existant. Dans ce cas, passe à la section Utilise un plugin existant.
  3. Le langage n'est pas pris en charge. Trois options s'offrent alors à toi :
    1. Écrire un plugin CodeMirror de zéro, comme décrit dans la section Crée un nouveau plugin.
    2. La syntaxe de ton langage ressemble (de près) à celle d'un autre langage (par exemple, la syntaxe d'Unison ressemble à celle de Haskell), auquel cas tu peux envisager d'utiliser la coloration syntaxique de ce langage pour le tien. Voir la section Active le langage pour plus d'informations.
    3. Ne pas avoir de coloration syntaxique dynamique.

Active le langage

Pour activer la prise en charge de CodeMirror pour ton langage, ouvre un sujet sur le forum. Nous (Exercism) créerons ensuite une Pull Request qui active la prise en charge de CodeMirror pour ton langage sur le site.

Utilise un plugin existant

Pour utiliser un plugin existant, il doit être publié sur NPM.

Si le plugin n'est pas publié sur NPM, tu peux soit :

  1. Demander à l'auteur du plugin s'il souhaite le publier sur NPM.
  2. Faire un fork du dépôt et le publier toi-même.
  3. Nous demander (à Exercism) de faire un fork du dépôt, et c'est nous qui le publions. Pour cela, ouvre un sujet sur le forum pour le demander.
Note

Le site de CodeMirror propose une liste de plugins de langage créés par la communauté.

L'étape suivante consiste à activer le langage.

Crée un nouveau plugin

Voici les étapes pour démarrer :

  1. Vérifie notre liste de dépôts pour un codemirror-lang-... existant pour t'assurer qu'il n'en existe pas déjà un.
  2. Ouvre un nouveau sujet sur le forum d'Exercism pour nous dire pour quel langage tu souhaites créer un plugin CodeMirror.
  3. Une fois qu'un dépôt de plugin CodeMirror a été créé pour toi, implémente la grammaire de ton parcours.
Note

Pour t'aider à démarrer, le dépôt créé pour toi contient une grammaire d'exemple minimale sur laquelle tu peux t'appuyer et que tu peux ajuster.

Nous avons une communauté incroyablement sympathique et bienveillante, qui se fera un plaisir de t'aider tout au long de ce travail ! Si tu es bloqué, n'hésite pas à ouvrir un nouveau sujet sur le forum d'Exercism ou à créer de nouvelles issues sur exercism/exercism selon tes besoins 🙂

Tu devras ensuite publier le plugin sur NPM. L'étape suivante consiste à activer le langage.

Utilise un autre langage

La syntaxe de ton langage ressemble (de près) à celle d'un autre langage, auquel cas tu peux envisager d'utiliser la coloration syntaxique de ce langage pour le tien. Pour ce faire, configure le parcours avec le plugin CodeMirror de l'autre langage. Voir la section Active le langage pour plus d'informations.