Questassure VHDL Extension for VS Code
Cette extension intègre les outils de productivité VHDL de Questassure directement dans Visual Studio Code. Elle apporte le support linguistique natif, la coloration syntaxique, le reformatage esthétique de code, l'analyse syntaxique (linting) en temps réel avec GHDL, la sauvegarde automatique instantanée (250 ms) et le lancement automatique de la simulation avec Surfer.
📋 Prérequis d'installation (macOS & Linux)
Pour que l'ensemble des fonctionnalités de l'extension fonctionnent de manière optimale, les outils externes doivent être présents sur votre machine :
1. Python 3 et les dépendances Questassure
Le formateur et la CLI Questassure nécessitent Python 3. L'extension cherche automatiquement à exécuter l'environnement virtuel .venv du projet Questassure pour importer les modules requis (comme customtkinter).
2. GHDL (Compilation & Analyse de syntaxe)
GHDL est indispensable pour surligner en direct les erreurs de syntaxe de vos fichiers VHDL.
- macOS : Installez GHDL via Homebrew :
brew install ghdl
- Linux (Ubuntu/Debian) : Installez GHDL via apt :
sudo apt install ghdl
Vérifiez l'installation en tapant ghdl --version dans votre terminal.
3. Surfer (Visualiseur d'ondes)
Permet d'ouvrir automatiquement les chronogrammes (.ghw) dès que la simulation de votre testbench se termine avec succès.
- macOS : Installez-le simplement via Homebrew (recommandé) :
brew install surfer
- Linux : Installez-le via Cargo (Rust) :
cargo install surfer
- Alternative : Vous pouvez également placer le binaire
surfer directement dans le dossier bin/ situé à la racine du projet Questassure (ex: Questassure/bin/surfer).
- Repli (Fallback) : Si Surfer n'est pas installé ou détecté, l'extension vous propose une notification interactive avec le bouton Copy Wave Path pour copier le chemin absolu du fichier d'ondes généré afin de l'ouvrir manuellement.
✨ Fonctionnalités clés
1. Support Linguistique & Coloration Syntaxique
- Enregistre le langage VHDL au sein de VS Code.
- Coloration syntaxique complète pour les mots-clés (insensible à la casse), les types de données, les commentaires, les chaînes, les constantes de caractères et les expressions.
- Auto-fermeture automatique des parenthèses, crochets et guillemets.
2. Sauvegarde Automatique & Analyse en Direct (Linter)
- L'extension active par défaut la sauvegarde automatique après 250 ms d'inactivité pour tous vos fichiers VHDL.
- Dès qu'une sauvegarde automatique a lieu, l'analyse syntaxique s'exécute en arrière-plan et surligne instantanément vos erreurs en rouge (les détails s'affichent dans l'onglet Problèmes de VS Code).
Utilise la commande de formatage native de VS Code (Shift + Alt + F ou Clic droit -> Format Document) :
- Indentation propre avec 4 espaces.
- Passage en minuscules de tous les mots-clés et types standards VHDL.
- Alignement des colons (
:) sur les déclarations consécutives (signaux, variables, constantes) et dans les ports/génériques.
- Alignement des valeurs conditionnelles : Aligne les expressions ou résultats dans les structures conditionnelles multi-lignes par rapport au symbole
<=.
4. Lancement de Simulations avec Surfer
- Lancez la simulation du testbench d'un clic droit -> Questassure: Run Simulation/Testbench (ou via la palette de commandes
Cmd + Shift + P).
- Les logs de compilation s'affichent en direct dans le canal Questassure Simulation.
- À la fin, Surfer est lancé automatiquement en tâche de fond avec vos ondes déjà préchargées.
🚀 Installation locale
Pour charger l'extension dans votre VS Code (sur macOS ou Linux) :
- Créez le lien symbolique vers votre répertoire d'extensions VS Code :
mkdir -p ~/.vscode/extensions
rm -rf ~/.vscode/extensions/questassure-vscode
ln -s "/Users/user/Documents/Questassure/vscode-extension" ~/.vscode/extensions/questassure-vscode
- Rechargez la fenêtre de VS Code (
Cmd + Shift + P -> Developer: Reload Window).
🎨 Coloration syntaxique Questassure
L'extension applique automatiquement la charte graphique de coloration syntaxique Questassure (keywords, types, chaînes de caractères, nombres, commentaires et opérateurs) spécifiquement aux fichiers VHDL, sans modifier le thème global de VS Code (barre de statut, barre latérale, etc.).
Les styles s'appliquent automatiquement grâce aux réglages configurationDefaults pour le langage [vhdl] intégrés dans l'extension.