Mise en évidence du code avec des guillemets échappés

La mise en surbrillance du code semble ignorer les guillemets échappés (simples et doubles). Cela signifie que si une chaîne de caractères dans une section de code contient des guillemets échappés, certaines parties de la chaîne sont mises en surbrillance comme du code normal. Sur ce forum, la mise en surbrillance du code semble être désactivée, c’est pourquoi j’inclus le lien vers le message spécifique du forum où je l’ai remarqué pour la première fois.


Lien vers mon message de forum capturé : https://unofficialnextion.com/t/set-vale-on-page2/1679/3

Détails supplémentaires :

  • Le forum en question fonctionne avec Discourse v2.9.0.beta9
  • La mise en surbrillance du code est activée pour bash, cs, cpp, xml, ini, json, makefile, markdown, python, c, c-like. La valeur par défaut est cpp. La réinitialisation de ces paramètres de mise en surbrillance de langage par défaut ne résout pas le problème.
  • Le problème est également présent en mode sans échec
  • Le problème est également présent lors de l’échappement de guillemets simples dans une chaîne de guillemets simples (l’échappement d’un guillemet simple dans une chaîne de guillemets doubles et vice versa fonctionne correctement).

Cordialement,
Max

C’est la bibliothèque highlightjs, donc tout bug serait en amont.

De plus, il semble que cela fonctionne en mode cpp ?

const char* NXT_CMD_END = "\xff\xff\xff";
Serial.print("page2.t0.txt=\"Any text\"");
Serial.print(NXT_CMD_END);

Vous pouvez définir une langue explicite en utilisant la fonctionnalité « chaîne d’informations » dans un bloc de code :

```cpp
votre code ici
```

créera un bloc de code au format cpp.

3 « J'aime »

Merci pour votre réponse rapide et les informations !

En effet, la coloration syntaxique C++ fonctionne si elle est définie explicitement. Cependant, en examinant cela de plus près, j’ai trouvé un autre comportement… inattendu.
J’ai supprimé toutes les langues de la liste des langues mises en surbrillance à l’exception de cpp et rétabli la langue par défaut à auto. Le résultat était toujours une coloration syntaxique incorrecte. L’ouverture de l’inspecteur dans Firefox a révélé que le code est apparemment reconnu comme vbnet - une langue qui n’a jamais figuré dans la liste des langues mises en surbrillance (ni la langue par défaut, ni aucune langue personnalisée que j’ai essayée pour ce problème) ? Est-ce censé se produire ?

Cordialement,
Max

Avez-vous regénéré le post contenant le bloc de code après avoir modifié les paramètres ?

1 « J'aime »

J’ai rechargé la page. Bien que le message du forum lui-même n’ait jamais changé - même en redémarrant Firefox ou en rechargeant la page avec CTRL+F5 - j’ai remarqué que l’aperçu pour la modification du message utilise les paramètres modifiés lors du rechargement de la page.

Ainsi, avec cpp comme seule langue dans la liste (pour simplifier les choses), si je définis la langue par défaut sur cpp, la coloration syntaxique dans l’aperçu de la modification du message est correcte. Si je définis la langue par défaut sur auto et que je recharge à nouveau la page, ce n’est plus correct comme décrit dans le message précédent.

Cordialement,
Max

Redémarrer le navigateur ne suffira pas. Dans Discourse, les publications sont “cuites” (converties de markdown en HTML) sur le serveur une seule fois, et le HTML résultant est mis en cache dans la base de données. Pour mettre à jour une publication “cuite”, vous devez la “recuire”. Cela peut être fait par un utilisateur administrateur en utilisant le menu clé à molette sur une publication ou par l’auteur de la publication en modifiant le contenu de ladite publication.

1 « J'aime »

Merci. Le re-cuisson donne le même comportement qu’avec l’aperçu de la modification. auto sélectionne une langue (vbnet) qui ne figure pas dans la liste des langues à mettre en surbrillance. Définir explicitement la langue par défaut sur cpp (soit dans les paramètres du forum, soit comme vous l’avez montré ici) fonctionne comme signalé précédemment.
La question demeure donc : auto est-il censé utiliser d’autres langues que celles de la liste ?

Cordialement,
Max