# TODO - Extension VSCode RISC-V ## Tâches terminées ### Étape 1: Coloration Syntaxique - [x] Configuration du langage RISC-V (.s, .asm, .rv) - [x] Grammaire TextMate pour coloration syntaxique - [x] Support des instructions, registres, directives, commentaires - [x] Support des nombres (décimal, hexadécimal, binaire) - [x] Configuration des brackets et auto-fermeture ### Étape 2: Snippets de Base - [x] Snippets pour instructions arithmétiques (add, addi, sub, etc.) - [x] Snippets pour instructions mémoire (lw, sw, lb, sb, etc.) - [x] Snippets pour instructions de branchement (beq, bne, blt, etc.) - [x] Snippets pour pseudo-instructions (li, la, mv, j, ret, etc.) - [x] Snippets pour directives d'assembleur (.text, .data, .global, etc.) - [x] Navigation avec Tab entre les placeholders ### Étape 4: Exécution dans QEMU - [x] Commande de compilation avec riscv64-linux-gnu-gcc - [x] Détection automatique du type de programme (_start vs main) - [x] Options de compilation adaptées (standalone vs avec libc) - [x] Commande d'exécution dans QEMU - [x] Terminal intégré pour l'exécution - [x] Boutons dans la barre d'outils - [x] Support du clic droit et palette de commandes ### Étape 5: Debugging et Diagnostics - [x] Validation syntaxique en temps réel - [x] Vérification des instructions RISC-V - [x] Validation des noms de registres - [x] Détection des labels non définis - [x] Vérification du nombre d'arguments des instructions - [x] Warnings pour directives inconnues - [x] Hover documentation pour instructions - [x] Hover information pour registres - [x] Hover documentation pour directives - [x] IntelliSense avancé avec auto-complétion contextuelle - [x] Complétion des instructions selon le contexte - [x] Complétion des registres - [x] Complétion des labels définis dans le document - [x] Complétion des directives d'assembleur - [x] Complétion des constantes système courantes - [x] Navigation Go to Definition pour labels - [x] Find All References pour labels - [x] Configuration du debugging avec GDB - [x] Support gdb-multiarch pour RISC-V - [x] Compilation avec informations de debug (-g) - [x] Configuration de debugging avec QEMU - [x] Commandes de debugging intégrées ## Tâches en cours - [ ] Tests des fonctionnalités de debugging ## Tâches futures possibles ### Étape 6: Templates et Boilerplate - [ ] Commande "New RISC-V Program" - [ ] Templates multiples (Hello World, calcul, tableaux) - [ ] Snippets avancés (boucles, fonctions) - [ ] Génération automatique de structure de base ### Étape 7: Intégration avancée - [ ] Génération automatique de Makefile - [ ] Support des projets multi-fichiers - [ ] Outline view des labels et fonctions - [ ] Folding avancé par sections - [ ] Refactoring de base (renommage de labels) ### Étape 8: Émulation et Testing - [ ] Terminal QEMU intégré dans VSCode - [ ] Memory viewer pour inspection mémoire - [ ] Register viewer en temps réel - [ ] Step-by-step execution avec interface graphique - [ ] Breakpoints visuels dans l'éditeur ### Améliorations techniques - [ ] Support des macros assembleur - [ ] Validation sémantique avancée - [ ] Support des différentes variantes RISC-V (RV32, RV64) - [ ] Support des extensions (M, A, F, D) - [ ] Intégration avec simulateurs alternatifs - [ ] Export vers différents formats (Intel HEX, etc.) ### Distribution et maintenance - [ ] Tests automatisés - [ ] Documentation utilisateur complète - [ ] Empaquetage pour VS Code Marketplace - [ ] CI/CD pour les releases - [ ] Support multi-plateforme (Windows, macOS) ## Notes techniques - Extension basée sur TypeScript - Utilise l'API VSCode pour language servers - Intégration avec toolchain GNU RISC-V - Compatible avec QEMU user mode - Support debugging via GDB multiarch