O realce de sintaxe dinâmico é o realce do código que o utilizador pode alterar. Só há um sítio onde isto acontece: o editor online.
Os fragmentos de código, as iterações e coisas do género são estáticos, porque o utilizador não pode alterar o código à medida que escreve. Se quiseres saber mais sobre como tratamos o realce de sintaxe estático, consulta a documentação sobre realce de sintaxe estático.
O realce de sintaxe dinâmico é feito com a biblioteca CodeMirror.
Quando adicionas suporte para a tua linguagem, há três opções:
Para ativar o suporte do CodeMirror para a tua linguagem, cria um tópico no fórum. Nós (o Exercism) criamos então um Pull Request que ativa o suporte do CodeMirror para a tua linguagem no site.
Para usar um plugin existente, este tem de estar publicado no NPM.
Se o plugin não estiver publicado no NPM, tens várias hipóteses:
O site do CodeMirror tem uma lista de plugins de linguagem criados pela comunidade.
O passo seguinte é ativar a linguagem.
Estes são os passos para começar:
codemirror-lang-..., para garantir que ainda não existe nenhum.Para te ajudar a começar, o repositório criado para ti contém uma gramática de exemplo mínima que podes usar como base e ajustar.
Temos uma comunidade incrivelmente simpática e prestável, que terá todo o gosto em ajudar-te ao longo deste trabalho! Se ficares bloqueado, cria um novo tópico no fórum do Exercism ou abre novas issues em exercism/exercism, conforme for necessário 🙂
Depois, tens de publicar o plugin no NPM. O passo seguinte é ativar a linguagem.
A sintaxe da tua linguagem é (muito) parecida com a de outra linguagem; nesse caso, podes considerar usar o realce de sintaxe dessa linguagem para a tua. Para isso, configura o track com o plugin do CodeMirror da outra linguagem. Consulta a secção Ativar a linguagem para mais informações.