Extension VS Code de détection et correction automatique du Coding Style C d'Epitech (C-*).
Conçue pour les étudiants d'Epitech et les développeurs C exigeants, EpiCancel Marvin analyse vos fichiers source .c et .h en temps réel, signale les infractions aux normes (Banana) et fournit des correctifs automatiques instantanés en un seul clic.
✨ Fonctionnalités
Analyse en temps réel : Détection instantanée dès la saisie (debounce 250 ms), à l'ouverture et à la sauvegarde des fichiers .c et .h.
Bouton magique "Fix All" : Une icône dans la barre de titre de l'éditeur pour corriger automatiquement toutes les erreurs réparables du fichier actif en un clic.
Bouton StatusBar Toggle : Activez ou désactivez le linter d'un simple clic dans la barre d'état ($(check) EpiCancel).
Actions de correction rapide (Quick Fix) : Chaque erreur propose son correctif via l'ampoule VS Code (Ctrl+.).
Header Epitech officiel : Insertion et remplacement automatique du header conforme aux normes officielles actuelles (format Banana).
Zéro dépendance externe : Fonctionne nativement sans nécessiter d'outils tiers installés sur la machine.
📋 Règles du Coding Style supportées
Règle
Description
Correction automatique (Fix)
C-G1
Header standard Epitech manquant ou invalide
✅ Oui
C-G2
Séparation des fonctions par une et une seule ligne vide
✅ Oui
C-A3
Saut de ligne obligatoire en fin de fichier (\n)
✅ Oui
C-G6
Fins de ligne UNIX (\n) et antislash en fin de ligne interdit
✅ Oui
C-G7
Espaces superflus en fin de ligne (trailing whitespace)
✅ Oui
C-F6
Fonctions sans paramètre devant déclarer (void)
✅ Oui
C-F8
Commentaires interdits à l'intérieur du corps d'une fonction
✅ Oui
C-L1
Une seule instruction par ligne de code
✅ Oui
C-L2
Indentation par multiples de 4 espaces (tabulations interdites)
Placement des accolades (nextLine pour les fonctions, fin de ligne pour les blocs)
✅ Oui
C-L5
Déclarations de variables au début de la fonction (une par instruction)
✅ Oui
C-L6
Une seule ligne vide autorisée après les déclarations, aucune à l'intérieur
✅ Oui
C-V3
Astérisque de pointeur collé au nom de variable (char *str)
✅ Oui
C-F3
Longueur de ligne supérieure à 80 colonnes
❌ Manuel
C-F4
Corps de fonction dépassant 20 lignes
❌ Manuel
C-F5
Plus de 4 paramètres par fonction
❌ Manuel
C-O3
Maximum 10 fonctions par fichier
❌ Manuel
C-C1
Branchements conditionnels (> 3 branches ou imbrication > 2)
❌ Manuel
C-C3
Utilisation interdite de goto
❌ Manuel
🚀 Utilisation
Bouton de correction automatique (Fix All)
Ouvrez n'importe quel fichier C : une icône d'étincelle $(sparkle) apparaît en haut à droite dans la barre d'outils de l'éditeur. Cliquez dessus pour corriger instantanément toutes les erreurs réparables.
Raccourcis & Menu contextuel
Clic droit dans un fichier C :
EpiCancel Marvin: Fix all CodingStyle errors in this file
EpiCancel Marvin: Insert the Epitech file header
EpiCancel Marvin: Show problems for this file
Quick Fix : Placez le curseur sur une erreur et pressez Ctrl+. pour appliquer la correction unitaire ou globale.
Palette de commandes (Ctrl+Shift+P) : tapez EpiCancel Marvin pour afficher toutes les commandes disponibles.
⚙️ Configuration
Vous pouvez personnaliser l'extension dans les paramètres VS Code (Ctrl+,) :
epicancelMarvin.enabled : Activer / désactiver le linter (synchronisé avec la barre d'état).
epicancelMarvin.braceStyle.function : Style des accolades pour les fonctions (nextLine par défaut, conforme à la norme Epitech C-L4).
epicancelMarvin.header.project : Nom du projet inséré dans le header (défaut : my_project).
epicancelMarvin.header.description : Description insérée dans le header (défaut : File description).
epicancelMarvin.rules.* : Activer ou désactiver individuellement chaque règle selon vos besoins.
👤 Auteur
Créé par Nathan Kyo (QUIX) pour la communauté Epitech.