Skip to content

Directives REPL

biface edited this page Oct 10, 2026 · 1 revision

Configuration des directives du REPL

English | Français

Depuis la v0.10.0 (DA-030).
Dernière mise à jour : 2026-10-10

Dans le REPL, une ligne qui commence par : est une directive traitée par le framework lui-même ; toute autre ligne est une commande de l'application. L'ensemble des directives est fixé par la version de dynamic-cli. La section facultative directives: de la configuration permet de renommer une directive et de remplacer ses alias et sa description, par exemple pour les traduire. Elle ne permet ni d'ajouter une directive, ni d'en retirer une, ni de modifier ses arguments.

Les directives n'existent que dans le REPL. En mode CLI, --help / -h s'utilisent comme avant ; ils restent aussi disponibles dans le REPL.


Table des Matières


Directives par défaut

implementation Saisie Alias Action
repl_help :help [command] :h, :? Afficher l'aide de l'application, ou celle d'une commande
repl_load :load <path> — Exécuter chaque ligne d'un fichier de script dans la session
repl_quit :quit :q Enregistrer l'historique de la session, puis quitter le REPL
repl_exit :exit — Quitter le REPL sans enregistrer l'historique de la session

Structure

directives:                      # Facultatif
  - implementation: string       # Obligatoire : directive à redéfinir (voir le tableau ci-dessus)
    name: string                 # Obligatoire : nouveau nom, saisi après ':'
    aliases: [string]            # Facultatif : nouveaux alias (défaut : [])
    description: string          # Obligatoire : texte affiché par :help

Champs

Champ Type Obligatoire Description
implementation string ✅ Oui Directive à redéfinir : repl_help, repl_load, repl_quit ou repl_exit
name string ✅ Oui Nom saisi après :, écrit sans le :
aliases array ❌ Non Autres noms saisis après : ; remplacent les alias par défaut
description string ✅ Oui Description affichée dans la liste de l'aide

Règle de fusion

Les entrées sont rattachées aux directives par implementation :

  • une entrée remplace le name, les aliases et la description de sa directive — les trois : une entrée sans aliases laisse donc la directive sans aucun alias ;
  • une directive sans entrée garde ses valeurs par défaut ;
  • les arguments d'une directive ([command], <path>) font partie de son action et ne sont pas configurables.

Exemple

Noms français pour :help et :quit ; :load et :exit gardent leurs valeurs par défaut :

directives:
  - implementation: repl_help
    name: aide
    aliases: [a, "?"]
    description: "Afficher l'aide, ou l'aide d'une commande"
  - implementation: repl_quit
    name: quitter
    aliases: [q]
    description: "Enregistrer l'historique et quitter"

Dans le REPL, :aide, :a et :? affichent maintenant l'aide, :quitter et :q quittent. :help et :h ne sont plus reconnus : l'erreur liste les directives disponibles.

Règles de validation

Un implementation inconnu échoue dès le chargement du fichier. Les autres règles sont vérifiées par le validateur de configuration, que CliBuilder::build() exécute toujours :

  • implementation doit être l'une des quatre valeurs ci-dessus ;
  • chaque implementation apparaît au plus une fois ;
  • name et chaque alias sont non vides, sans espace et ne commencent pas par : (le REPL l'ajoute) ;
  • noms et alias sont uniques sur l'ensemble des directives après la fusion, valeurs par défaut comprises : une redéfinition ne peut pas prendre q tant que :quit le garde comme alias.

Les noms de directive ne sont jamais comparés aux noms de commande, puisqu'une directive se saisit toujours avec son :. À l'inverse, les noms et alias de commande ne peuvent pas commencer par : (voir Définition de commande).

Comportement

  • :quit et :exit : :quit écrit l'historique de la session sur disque, puis quitte ; :exit quitte sans l'écrire. La fin de saisie (Ctrl-D) se comporte comme :quit. Toute autre sortie — un handler qui appelle std::process::exit, un plantage, un arrêt forcé du processus — laisse le fichier d'historique tel qu'il était au début de la session.

  • Noms saisis sans : : quit ou exit seul est cherché parmi les commandes de l'application. Quand le mot est un nom ou un alias de directive (tel que configuré) et que l'application n'a pas de commande de ce nom, l'erreur suggère la directive (:quit). L'exemple complet de la référence de configuration déclare sa propre commande quitter : quitter y exécute cette commande, :quit la directive (ou :quitter avec la redéfinition de l'exemple de cette page).

  • Scripts :load : chaque ligne s'exécute comme si elle était saisie, directives comprises, sauf :quit et :exit, qui sont signalées et ignorées.

  • Liste de l'aide : :help (et --help dans le REPL) affiche l'aide de l'application suivie d'une section DIRECTIVES, sous les noms effectifs :

    DIRECTIVES:
        :help [command]      Show the application help, or the help of a command [aliases: :h, :?]
        :load <path>         Run every line of a script file
        :quit                Save the session history and leave [aliases: :q]
        :exit                Leave without saving the session history
    
  • Complétion : après un : initial, Tab complète les noms et alias de directive, sous leurs noms configurés.

Clone this wiki locally