Coloration et auto-complétion VS Code pour .quest
Grammaire TextMate du format .quest (dsl-v2 §14) : en-têtes, répliques, choix, sauts, actions, bq "…", paramètres ${…} et textes joueur.
Aperçu des couleurs Minecraft
Les textes sont peints selon leurs codes (&a, §l, &o, &r, &#rrggbb…), comme en jeu ; le code lui-même prend la couleur qu'il installe. Le style retombe à chaque guillemet, à chaque ; de lore et avant ->. Sur thème clair, un fond sombre façon chat garde &f/&e lisibles. Désactivable avec le réglage quest.minecraftColors.
La syntaxe utilise des couleurs vives prises dans les teintes que la convention de texte (docs/quest-text-style.md : &f &a &b &d &e &7) n'emploie pas : orange pour la structure, bleu pour les identifiants, violet pour les actions, rouge pour les opérateurs. Elle est fournie via editor.tokenColorCustomizations par défaut : un editor.tokenColorCustomizations dans vos réglages utilisateur la remplace.
Auto-complétion
completion.js propose, selon la position du curseur :
- en colonne 0 : les en-têtes de bloc (en snippets),
== et les locuteurs déjà présents dans le dialogue ;
- en début de ligne indentée : les mots-clés du bloc (
journal, objective, !, ->, requires, start when, default, at…) ;
- après
! : les actions, puis leurs arguments (give → objets, teleport → lieux, stage → étapes et fins…) ;
- dans un critère ou une condition (
when, requires, […], if, and, or) : les critères, puis les identifiants attendus (dialogue arven. → nœuds d'Arven dans la quête, done quête. → ses étapes, deliver … to → PNJ) ;
- après
-> et sur un choix > : étapes et fins, ou nœuds du dialogue, end et service <service> (services seulement) ;
use : les modèles, leurs paramètres nom=, les valeurs selon le type du paramètre, then <sortie> -> ; ${ dans un modèle : ses paramètres.
Les identifiants viennent de tous les .quest, .service, .npc, .shared et .template du workspace (les item, place, tag, point d'un .quest ou d'un .service ne sont proposés que dans leur fichier, §3.2). Rien n'est proposé dans le texte joueur ni dans les chaînes.
Installation
Depuis les extensions de l'éditeur, chercher Quest (.quest) (éditeur nefald-community) :
L'extension se met ensuite à jour seule. Publication d'une nouvelle version : docs/publication-extension-vscode.md du dépôt.
Installation depuis la CI
Le job vscode-extension produit quest-language.vsix en artefact (sur main, les tags, et toute branche qui touche editors/vscode/). Sur main et les tags, il le dépose aussi sous un lien fixe, qui donne toujours le dernier VSIX construit (connexion GitLab requise) :
https://git.nefald.fr/api/v4/projects/354/packages/generic/quest-language/latest/quest-language.vsix
Pour une branche précise : https://git.nefald.fr/minecraft/tools/quest-compiler/-/jobs/artifacts/<branche>/raw/quest-language.vsix?job=vscode-extension.
Puis dans VS Code : Extensions → … → « Installer à partir d'un VSIX », ou code --install-extension quest-language.vsix.
Installation locale
Copier ce dossier dans le dossier des extensions VS Code, puis recharger la fenêtre :
~/.vscode/extensions/nefald-community.quest-language-0.4.0/ (Windows : %USERPROFILE%\.vscode\extensions\…)
Ou empaqueter avec npx @vscode/vsce package et installer le .vsix (Extensions → « Installer à partir d'un VSIX »).
La grammaire ne valide rien : quest-compiler check reste la seule source de vérité.