Version 1.0.0
Formater ce que l'agent écrit
Déclarer une commande de formatage pour le terminal, et savoir ce que l'agent apprend du fichier juste après l'avoir écrit.
Après avoir écrit un fichier, l’agent le relit : il reçoit le fichier tel qu’il est sur le disque après formatage, et les erreurs que l’environnement signale sur ce fichier. Cette page décrit ce qu’il apprend, et ce que vous déclarez pour que le formatage ait lieu au terminal.
Ce qui se passe après chaque écriture
Section intitulée « Ce qui se passe après chaque écriture »Dans cet ordre :
- Le fichier est formaté. Dans l’IDE, votre éditeur s’en charge, avec le formatage que vous avez réglé pour l’enregistrement. Au terminal, il n’y a pas d’éditeur : c’est la commande que vous déclarez plus bas.
- Les erreurs du fichier sont relues : celles de ce fichier, et d’aucun autre.
- L’agent reçoit l’état réel du fichier : la différence qu’on lui montre est celle du fichier tel qu’il est sur le disque, et si le formatage l’a changé, il en est informé.
Sans le troisième point, l’agent enchaîne sur une modification fondée sur le texte qu’il croit avoir écrit, ne retrouve pas la ligne qu’il cherche, et rend une erreur.
Déclarer un formateur pour le terminal
Section intitulée « Déclarer un formateur pour le terminal »Dans le fichier de réglages de votre poste, ~/.lemniscate/workstation.yaml :
formatter: - command: prettier --write $FILE extensions: [".ts", ".tsx", ".js", ".json", ".md"] - command: black $FILE extensions: [".py"]$FILEest remplacé par le fichier à formater. Sans ce marqueur, le fichier est ajouté à la fin de la commande.- Les extensions se lisent avec leur point. La première déclaration qui réclame une extension l’emporte.
- Sans déclaration, rien ne se passe : le produit n’embarque aucun formateur et n’en installe aucun.
- La déclaration nomme la commande. Ce qu’elle a le droit de faire est décidé par la politique du projet, décrite ci-dessous.
La commande de formatage et la politique du projet
Section intitulée « La commande de formatage et la politique du projet »Un formateur est une commande lancée après chaque écriture. Elle passe par la politique de commandes du projet, comme toute autre commande : elle s’exécute sans validation lorsque l’administrateur l’a rangée parmi les commandes libres, où le formatage figure avec la compilation, les tests et l’analyse (livre blanc sécurité V3, section 5.1). Par défaut, aucune commande n’est libre. Quand la politique ne laisse pas passer la commande, le formatage n’a pas lieu et l’agent en reçoit la raison ; voir Quand le formatage n’a pas lieu.
La déclaration dans le fichier du dépôt
Section intitulée « La déclaration dans le fichier du dépôt »Un fichier .lemniscate/project.yaml qui porte cette déclaration est ignoré sur
ce point, et le produit nomme le réglage écarté. Un contenu lu dans le dépôt ne
décide pas de ce qui s’exécute (livre blanc sécurité V3, section 5.2).
Les fichiers de configuration du formateur
Section intitulée « Les fichiers de configuration du formateur »Le formateur lit ses propres réglages dans le dépôt : fichier de configuration, manifeste qui fixe sa version, hook qui le lance à l’enregistrement d’un commit. Ces fichiers sont exécutés ou lus plus tard par d’autres que la session : l’intégration continue, les postes de vos collègues. Ils relèvent des classes de fichiers sous contrôle dédié, que la politique du projet définit. Leur modification par l’agent est interdite par défaut, ou soumise à une validation distincte de la validation ordinaire d’une différence et signalée comme telle (livre blanc sécurité V3, section 5.3).
Ce que l’agent apprend des erreurs
Section intitulée « Ce que l’agent apprend des erreurs »Dans VS Code, les erreurs sont celles que votre environnement de développement connaît : celles que vous voyez soulignées dans votre code. L’agent reçoit seulement celles du fichier qu’il vient d’écrire ; un projet réel en contient des centaines d’autres, qui ne le concernent pas.
Un fichier sans erreur ne produit aucune ligne. Le silence veut dire « rien à signaler ».
Dans JetBrains, aucune erreur n’est relue : l’hôte répond sur le fichier sélectionné à l’écran et non sur le fichier demandé, et le produit préfère ne rien dire plutôt que de rapporter les erreurs d’un autre fichier.
Au terminal, il n’y a pas d’erreurs. Le terminal n’a aucun moyen de les connaître, et il ne prétend pas qu’il n’y en a pas.
Quand le formatage n’a pas lieu
Section intitulée « Quand le formatage n’a pas lieu »Votre écriture tient. Le formatage est un service par-dessus ; s’il échoue, il ne défait rien, et l’agent reçoit la raison :
| Ce que vous lisez | Ce qu’il faut faire |
|---|---|
| la commande est introuvable | installer le formateur, ou corriger son nom dans vos réglages |
| la commande s’est arrêtée sur sa borne | elle est trop lente pour un formatage automatique ; la restreindre à moins d’extensions |
| la commande a rendu un code de sortie non nul | la première ligne de sa sortie est reprise dans le message ; corriger la commande ou le fichier |
| la politique ne laisse pas passer la commande | la règle est nommée dans le message ; c’est à votre administrateur de trancher |
| aucun espace d’exécution n’a pu être ouvert | le terminal lance cette commande dans son espace confiné, comme toutes les autres ; le message dit ce qui manque sur le poste |
Le formatage du terminal s’exécute dans le bac à sable de la session, sans réseau, comme toute commande lancée par l’agent. Le formateur doit donc s’y trouver déjà installé ; voir Préparer le conteneur de session.