🐀 Ratatouille Language Support for VS Code
Extension VS Code complète pour le langage Ratatouille (projet Glados) - Un langage de programmation basé sur le modèle d'acteurs.

✨ Fonctionnalités
🎨 Coloration Syntaxique
- Mise en évidence des mots-clés (
proc
, receive
, spawn
, state
, let
)
- Coloration des atomes (
:increment
, :get
, etc.)
- Support des chaînes de caractères et nombres
- Reconnaissance des opérateurs spéciaux (
<-
, ->
)
- Commentaires avec
#
🔍 Linter Intelligent
Le linter détecte automatiquement plusieurs types d'erreurs et problèmes :
Syntaxe des Processus
- Vérification des noms de processus valides
- Convention de nommage (suggestion d'utiliser une majuscule)
Blocs receive
- Détection des blocs
receive
mal formés
- Vérification des patterns avec
|
Correspondance des Parenthèses/Accolades
- Détection des parenthèses non fermées
- Détection des accolades mal assorties
Syntaxe des Atomes
- Validation des identifiants après
:
- Détection des atomes mal formés
Opérateur d'Envoi de Messages
- Vérification que
<-
a une cible valide
Gestion d'État
- Avertissement si
state =
est utilisé sans déclaration initiale
Variables Non Utilisées
- Détection des variables
let
qui ne sont jamais utilisées
Indentation
- Détection du mélange tabs/espaces
- Recommandations pour une indentation cohérente
💡 Autocomplétion
- Suggestions automatiques pour les mots-clés
- Complétion des atomes communs (
:get
, :set
, :increment
, etc.)
- Détection et suggestion des processus définis dans le fichier
⚙️ Configuration
- Activer/désactiver le linter
- Configurer le nombre maximum de problèmes affichés
- Optionnel : chemin vers le compilateur Glados
📦 Installation
Via VS Code Marketplace (Recommandé) 🌟
L'extension est publiée sur le marketplace officiel VS Code !
# Installation en 1 commande
code --install-extension glados-team.ratatouille-language-support
Ou via l'interface VS Code :
- Ouvrir l'onglet Extensions (
Ctrl+Shift+X
)
- Chercher "Ratatouille"
- Cliquer sur "Install"
Installation Locale (Pour développement)
# 1. Installer les dépendances
cd bonus-linter
npm install
# 2. Compiler l'extension
npm run compile
# 3. Installer dans VS Code
./install-permanent.sh
# 4. Redémarrer VS Code
Mode Développement
Pour tester l'extension sans l'installer :
cd bonus-linter
code .
# Puis appuyer sur F5
Une nouvelle fenêtre VS Code s'ouvre avec l'extension active.
🎨 Icônes de Fichiers
Pour voir l'icône du rat 🐀 à côté des fichiers .rat
dans l'explorateur :
Ctrl+Shift+P
→ Preferences: File Icon Theme
- Sélectionner :
Seti (Visual Studio Code)
L'icône de rat s'affichera automatiquement pour tous vos fichiers .rat
!
🚀 Utilisation
- Ouvrez un fichier
.rat
dans VS Code
- La coloration syntaxique s'active automatiquement
- Le linter analyse le code en temps réel
- Les erreurs et avertissements apparaissent dans l'éditeur et le panneau "Problèmes"
Commandes Disponibles
- Ratatouille: Lint Current File (
Ctrl+Shift+P
)
- Force le linting du fichier actuel
📝 Exemples de Code
Hello World
proc Greeter() {
receive {
| { :hello, sender } -> sender <- "Hello, World!"
| { :goodbye, sender } -> sender <- "Goodbye!"
}
}
Compteur avec État
proc Counter(initial) {
state: initial,
receive {
| :increment -> state = state + 1
| :decrement -> state = state - 1
| { :get, sender } -> sender <- state
| :reset -> state = 0
}
}
⚙️ Configuration
Ajoutez ces paramètres dans votre settings.json
:
{
// Activer/désactiver le linter
"ratatouille.linter.enabled": true,
// Nombre maximum de problèmes à afficher
"ratatouille.linter.maxProblems": 100,
// Chemin vers le compilateur Glados (optionnel)
"ratatouille.linter.gladosPath": "/path/to/glados"
}
🧪 Test et Démo
Exemples de Code Fournis
test.rat
- Test simple
examples/linter_test.rat
- Tests du linter avec erreurs
examples/showcase.rat
- Exemples complets du langage
Tester le Linter
Pour voir le linter en action, ouvrez examples/linter_test.rat
et décommentez les lignes avec des erreurs intentionnelles :
- Erreur : Parenthèse non fermée → ❌ Ligne soulignée en rouge
- Warning : État sans déclaration → ⚠️ Ligne soulignée en jaune
- Info : Variable non utilisée → ℹ️ Ligne soulignée en bleu
Mode Debug
Pour développer l'extension :
- Ouvrir le projet dans VS Code :
code bonus-linter
- Appuyer sur
F5
- Une nouvelle fenêtre s'ouvre avec l'extension active
- Modifier le code et recharger avec
Ctrl+R
🛠️ Structure du Projet
bonus-linter/
├── package.json # Manifest de l'extension
├── src/
│ ├── extension.ts # Point d'entrée (activation, commandes)
│ └── linter.ts # 8 règles de linting
├── syntaxes/
│ └── ratatouille.tmLanguage.json # Grammaire de coloration
├── icons/
│ ├── rat-icon.png # Icône de l'extension
│ └── ratatouille-file-icons.json # Thème d'icônes
├── examples/ # Fichiers de test
└── install-permanent.sh # Script d'installation
🐛 Règles du Linter
Règle |
Sévérité |
Description |
Proc Syntax |
Error |
Validation des définitions de processus |
Receive Syntax |
Error/Warning |
Vérification des blocs receive |
Bracket Matching |
Error |
Correspondance des parenthèses |
Atom Syntax |
Error |
Validation des atomes |
Message Send |
Error |
Vérification de l'opérateur <- |
State Assignment |
Warning |
Utilisation cohérente de l'état |
Unused Variables |
Info |
Détection des variables inutilisées |
Indentation |
Warning |
Cohérence de l'indentation |
🎓 Bonus Epitech
Cette extension a été créée comme bonus pour le projet Glados (Functional Programming - Epitech).
Points Forts
- ✅ Coloration syntaxique complète avec 9 patterns
- ✅ Linter intelligent avec 8 règles de validation
- ✅ Autocomplétion contextuelle des mots-clés et processus
- ✅ Icône personnalisée pour les fichiers
.rat
- ✅ Documentation exhaustive et exemples
- ✅ Installation simple avec script automatisé
- ✅ Architecture extensible pour futures améliorations
Démo pour l'Évaluation
# Installation en 30 secondes
cd bonus-linter
npm install && npm run compile && ./install-permanent.sh
# Redémarrer VS Code puis ouvrir examples/showcase.rat
🤝 Contribution
Ce projet fait partie du projet Glados-On-Top (Epitech).
Équipe : Glados Team
Langage : Ratatouille (fichiers .rat
)
Projet : Compilateur et VM pour langage basé sur le modèle d'acteurs
📄 Licence
MIT License - Voir le fichier LICENSE pour plus de détails.
🐀 Codez avec style en Ratatouille !
Développé avec ❤️ pour le projet Glados - Epitech 2025
👥 Équipe Glados
Développé avec ❤️ par l'équipe Glados pour le projet de Functional Programming à Epitech.
Note: Cette extension est un bonus pour le projet Glados et fournit un support IDE complet pour le langage Ratatouille (.rat).