Watch

Watch relance automatiquement les vérifications sélectionnées après des modifications de fichiers lors d'une session d'édition active.

Ce que fait Watch

Watch relance une vérification BranchPy sélectionnée après chaque sauvegarde de fichier — aucune relance manuelle nécessaire pendant une session d'édition.

Watch est un déclencheur de relance, pas un moteur d'analyse en temps réel. Il ne maintient pas le modèle BranchPy complet continuellement à jour. Chaque sauvegarde déclenche une exécution unique et délimitée de la commande configurée, puis attend le prochain changement.

Ce qui est surveillé

Modèle Toujours surveillé Uniquement avec media-missing
**/*.rpy — tous les fichiers de script Ren'Py
.branchpy.toml — configuration du projet
assets/** — fichiers d'assets
game/** — fichiers du répertoire game

Les modifications de configuration (.branchpy.toml) sont toujours surveillées afin que les ajustements de paramètres déclenchent immédiatement une nouvelle exécution.

Comment démarrer

branchpy watch --project <path>

Cette commande démarre Watch avec la commande par défaut (checks). Appuyez sur Ctrl+C pour arrêter.

Spécifier la commande à relancer

branchpy watch --project <path> --cmd stats

Commandes disponibles : checks (par défaut), stats, tests, media-missing, doctor.

Remarque : Watch prend en charge uniquement les commandes légères. Les commandes nécessitant une analyse complète du projet — comme analyze, compare et flowchart — ne sont pas prises en charge en mode Watch. Exécutez-les manuellement ou en CI.

Ajuster le délai de rebond

branchpy watch --project <path> --debounce 500

La valeur par défaut est 300 ms. Augmentez cette valeur sur les grands projets si plusieurs exécutions successives se déclenchent après une seule sauvegarde.

Intégration VS Code

branchpy watch --project <path> --emit-notify

--emit-notify fait émettre des événements à Watch après chaque exécution, permettant à VS Code d'afficher les résultats dans le panneau Problèmes et le Control Center sans changer de fenêtre.

Dans VS Code, la fonctionnalité Watch du Control Center relance toujours Analyze et Stats lors des modifications de fichiers. Compare n'est pas surveillé — il compare des résultats enregistrés et doit être actualisé manuellement après la génération de nouvelles analyses.

Exemple de sortie

[BranchPy Watch] Monitoring project: C:\projects\mygame
[BranchPy Watch] Command: checks
[BranchPy Watch] Debounce: 300ms
[BranchPy Watch] Press Ctrl+C to stop

[BranchPy Watch] File changed: game/script.rpy
... résultat de checks ...
[BranchPy Watch] Command completed with exit code: 0

Quand utiliser Watch

Watch est conçu pour les sessions d'édition actives — démarrez-le quand vous commencez à écrire, arrêtez-le quand vous avez terminé. Il n'est pas prévu pour tourner en arrière-plan en permanence. Le laisser tourner indéfiniment accumule du CPU (interrogation toutes les 500 ms), maintient les chemins de fichiers en mémoire jusqu'à l'arrêt, et risque de déclencher de longues exécutions pendant les périodes d'inactivité.

CPU — La surveillance interroge le système toutes les 500 ms, qu'il y ait ou non des changements. C'est léger sur les projets petits à moyens, mais le coût s'accumule lors de longues périodes d'inactivité.

Mémoire — Watch conserve en mémoire le chemin et l'horodatage de dernière modification de chaque fichier surveillé. Sur un grand projet (des milliers de fichiers .rpy et d'assets), cela représente typiquement 0,5 à 2 Mo — peu significatif en soi, mais non libéré avant l'arrêt de Watch.

Terminal — Watch s'exécute au premier plan. Gardez une fenêtre de terminal dédiée pour éviter de bloquer votre terminal principal.

Délai d'expiration des commandes — Chaque exécution déclenchée est interrompue après 5 minutes si elle n'a pas terminé. Si votre projet prend régulièrement plus longtemps à analyser, préférez exécuter la commande manuellement.

Recommandation : Démarrez Watch quand vous vous installez pour éditer, arrêtez-le quand vous avez terminé. Évitez de le laisser tourner toute la nuit ou en CI — utilisez plutôt des exécutions CI planifiées ou déclenchées par événements.

Conseils

  • Utilisez --cmd doctor pour obtenir un retour de diagnostic à chaque sauvegarde lors de la configuration d'un nouveau projet.
  • Utilisez --cmd media-missing lors du travail sur les assets pour voir immédiatement si un sprite de personnage nouvellement ajouté est référencé mais pas encore sur disque.
  • Combinez avec --emit-notify dans VS Code pour maintenir le panneau Problèmes à jour sans changer de fenêtre.
  • Sur les grands projets (milliers de fichiers .rpy), utilisez --cmd checks ou --cmd doctor — ce sont les options les plus légères.

En savoir plus : Référence CLI