98 lines
3.7 KiB
Plaintext
98 lines
3.7 KiB
Plaintext
# 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 |