Un IDE avancé pour Casio - Idées et roadmap
Posté le 22/02/2025 13:23
Hello,
il y a quelques semaines, nous parlions avec la sortie du mod MPM+ pour la Math+ de nous lancer dans un projet d'IDE (
Integrated Development Environment) capable de gérer possiblement divers langages.
Il s'agirait pour faire simple de partir d'une base connue type
PythonExtra et de lui ajouter un module d'édition de code.
Idéalement cet IDE ferait :

permettre d'éditer du code "on-calc" avec lecture/modification/écriture dans des scripts existants et/ou créés directement depuis la partie éditeur. On aimerait avoir les features avancées suivantes :
- Coloration syntaxique pour les langages les plus courants (sur calculatrices) : Python / Basic / Lua / ...
- Recherche dans le code d'une occurrence
- Frappe avancée et optimisée du code : catalogue de fonctions, raccourcis claviers malins (éventuellement configurables)

naviguer dans les fichiers de sources
- possibilité d'uploader/downloader des fichiers depuis/vers un PC directement depuis l'application
- possibilité d'ouvrir le script dans l'éditeur, de lancer son execution
- pourquoi pas faire un backup, une compression, ...
- voir un asset graphique (BMP)

exécuter du code
- possibilité de lancer du code et de suivre son évolution dans un shell intégré (graphique/console)
- entrée/sorties de valeurs
Ce fil est pour échanger sur le sujet, pour éventuellement demander des trucs en plus, dans la limite du raisonnable (on compilera pas du C++ on-calc), sachant qu'on a déjà testé 2/3 trucs avec Lephé et qu'il y a des limites techniques à être sur une calculatrice (RAM, puissance, taille écran) et avec lesquelles il faut fonctionner. Notamment l'option Tree-Sitter pour la coloration syntaxique nous a fortement refroidie (c'est trop gourmand pour une calculatrice).
A priori à ce stade, on utiliserait une base entre PythonExtra et
TextViewer "boosté aux amphétamines", donc interface JustUI et gint/fxlibc en motorisation.
On se donne un peu de temps pour poser bien le projet car c'est un gros truc et on veut faire ça bien, sans être dans la précipitation.
Il faut aussi qu'on regarde comment éventuellement supporter d'autres langages car autant notre connaissance de Python est pas mal (via micropython), autant pour d'autres langages on a pas encore checké (Lua/LuaFX, Basic, Malical, ...).
N'hésitez pas à partager vos avis/idées. C'est le moment.
Citer : Posté le 22/02/2025 23:14 | #
Salut Sly
Pourquoi pas un Github Copilot intégré dans l'IDE?
Sinon, j'ai une question, tous ça sera un seul add-in ou plusieurs? Car par exemple, moi qui suis intéressé au Python et au Lua, si il y aura un interpreteur Malical inclu dans l'addin, je pourrais le considérer comme stockage "gaspillé" si tu comprends ce que je veux dire.
Mais en même temps, avoir plusieurs différents add-in peut être un peu mal organisé ou "all over the place"... (je n'aide pas en fait xD)
D'ailleurs, j'y ai pensé que le HTML pourrais être cool mais comme tu as dit, les dimensions de l'écran de la calculatrice est limitant mais en mettant les texts verticals (et du coup tourné l'écran 90°) pourrais peut être le faire?
Sinon, j'espère pouvoir m'acquérir une G90 d'ici début avril alors ce projet m'intéresse beaucoup
Voilà tout ce que je voulais dire
Bonne soirée
Par ce que Oct 31= Dec 25
Citer : Posté le 22/02/2025 23:32 | #
Salut.
Le but est d'avoir une base commune au maximum, donc assez souple, mais qui ensuite est intégrée dans différents addins, un par langage.
On se bat pour les ressources alors faire un addins qui permettrait de gérer 2, 3 ou plus langages ne semble pas très pertinent.
En plus beaucoup seront intéressés seulement par 1 ou 2 langages différents donc auraient plein de modules en trop inutiles.