Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » BIDE - Basic IDE
Zezombye En ligne Rédacteur Points: 1754 Défis: 13 Message

BIDE - Basic IDE

Posté le 26/08/2016 19:36

Je vous présente mon nouveau projet : un IDE pour le Basic (casio bien entendu).

Lien de téléchargement


Un petit malin a écrit :
Mais ça va faire un bide ton projet !

...
(bref, si quelqu'un a un meilleur nom pour ça, qu'il le dise. )

En particulier pour les prochains CPC, un IDE pour le basic serait assez utile (enfin pour tout programme basic, c'est horriblement chiant de faire de grands programmes illisibles sur un écran monochrome (donc sans coloration syntaxique) de 21*6 sans aucune indentation).

Todo list (ça c'est pour moi) :
- Conversion des lignes des options en \r\n (ou édition directement dans BIDE)
- Optimisation : enlèvement des accolades, crochets et parenthèses fermants
- Conversion optimisée png -> multi drawstat
- Importation automatique sur la calculatrice
- Option pour générer du super drawstat

Les features de cet IDE seraient :

- Remplacement automatique des caractères spéciaux : par exemple si l'utilisateur tape "- >" (sans l'espace bien entendu) ça le remplacera automatiquement par "→". Pareil pour =>, <=, >=, etc. (pas fait)
Pour les autres caractères qui n'ont pas vraiment de représentation ASCII (disp par exemple) le remplacement s'effectue en tapant un '&' avant le nom de caractère, dans ce cas taper "&disp" le remplaçera par "◢".
Si l'utilisateur ne veut pas le remplacement (par exemple, s'il veut avoir "- >" et non pas "→") il lui suffit de séparer le "mot-clé" en deux parties et de les recoller après. Le remplacement se fera uniquement si l'utilisateur tape tout le mot d'un coup.
Cela remplace aussi les noms de fonction, si l'utilisateur tape "locate" ce sera remplacé automatiquement par "Locate".

Là où vous pouvez m'aider : me fournir les caractères unicode correspondant à chaque caractère ("◢" = 0x0C, etc).

- Possibilité de nommer ses variables. Il sera possible par exemple de mettre "vieJoueur" comme nom de la variable "A", et dans ce cas la variable A sera remplacée par "vieJoueur" dans le programme. Ca évite de se rappeler à chaque fois de l'utilité de chaque variable. (pas fait, utiliser les octets de header pour identifier les g1m)

- Aide au niveau des fonctions graphiques : survoler une fonction graphique montrera son résultat dans une petite pop-up. (pas fait)

- Indentation automatique lors de l'importation du projet (fait), et lors de l'écriture (pas fait) (par exemple, écrire "If A=2" puis faire une nouvelle ligne mettra automatiquement un ":Then" après le "A=2", un "IfEnd", puis augmentera le niveau d'indentation).

- La coloration syntaxique (c'est la base ), dites si vous voulez un style du type notepad++, eclipse, ou autre. Je préfère personnellement celui de notepad++. (fait à moitié)

- D'autres fonctions assez utiles inspirées d'eclipse : survoler une fonction affiche sa documentation, l'auto-completion, la sidebar à droite montrant les todos/warnings/erreurs, etc. (pas fait)

- Optimisation automatique lors de la compilation : enlever les guillemets/crochets/parenthèses/accolades à la fin d'une instruction (d'autres suggestions pour optimiser ?). La désoptimisation se fera à l'importation du .g1m (parce que des parenthèses pas fermées c'est chiant (pas fait)

- Support de B2C pour pouvoir tester sur l'émulateur facilement (pas fait)

- L'IDE refusera de compiler le programme s'il y a un quelconque goto dedans (j'ai du compromettre)

- Support de commentaires style C (// et /*...*/) (pas fait)

Voilà, si vous avez d'autres suggestions n'hésitez pas à les dire et aussi, si quelqu'un a un bon tutoriel sur les GUI en java, ça me serait bien utile (sachant que j'en ai trouvé aucun de compréhensible et que j'y comprends toujours rien).


Maxjgolf Hors ligne Membre Points: 118 Défis: 0 Message

Citer : Posté le 11/05/2018 18:56 | # | Fichier joint


Salut,
Comme tu m'a demander par message je te passe en fichier joint le g1m contenant un extrait de mon problème avec BIDE,
- A partir de la ligne 90 jusqu'à la ligne 238, toutes les commandes sont remplacées (on peut remettre les vraies commandes mais à la réouverture du programme les commandes sont à nouveau modifiées)
- Pour ce qui est du problème des suites de caractères l'exemple est ligne 118, normalement la mise en forme est identique à la ligne 86
J'espère que cela te sera utile.
En tout cas cela reste un très bon éditeur de programme

PS: c'est un PRGM de "Cours" je préfère prévenir
Zezombye En ligne Rédacteur Points: 1754 Défis: 13 Message

Citer : Posté le 11/05/2018 20:26 | #


En fait c'est parce qu'à la ligne 26, tu as :
Text 23, 2, "● (√x)²=x ; √x²=x""


Le guillemet en trop à la fin fait que BIDE considère tout ce qui suit comme string, et ça provoque un effet inverse : ce qui doit être dans un string ne l'est pas, et ce qui ne doit pas être dans un string l'est (ce qui explique aussi ton 2ème bug).

Du coup, BIDE 4.1 :
- Lors de l'importation des g1m, les retours à la ligne sont considérés comme fin de string
- Correction du rectangle rouge qui s'affichait sur le sélecteur de caractères lors du démarrage
http://puu.sh/Akl7Y.zip

Ajouté le 16/06/2018 à 07:28 :
BIDE 4.2 :
- La sauvegarde en .bide ne reset pas les modifications faites depuis la dernière sauvegarde (en .g1m)
- Correction d'un bug de taille lors de l'importation des pictures en png
- Importer une picture en png ne créait pas correctement la picture
- Ajout d'une alerte lors de la sortie d'une nouvelle version

http://puu.sh/AGblB.zip
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 16/06/2018 10:34 | #


C'est vraiment un IDE intérressant pour débuter en Basic Casio. De plus, tout est pensé pour que l'utilisateur s'y retrouve et puisse programmer dans de bonnes conditions !

J'ai vu qu'il faut Java pour l'installer, tu pourrais pas l'inclure directement dans l'exécutable ?
In Arch, I trust ! And you ?
Dark storm En ligne Labélisateur Points: 11549 Défis: 176 Message

Citer : Posté le 16/06/2018 10:39 | #


J'ai vu qu'il faut Java pour l'installer, tu pourrais pas l'inclure directement dans l'exécutable ?

Lol, nope
C'est le principe de Java : t'installes Java une fois, et il exécute ce que tu lui donnes. Sinon ça s'appelle Electron (installer x fois la même usine à gaz pour x programmes).
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 16/06/2018 10:41 | #


Je veux juste dire que si tu ne l'as pas sur ton pc, BIDE s'occupe d'installer Java puis l'IDE sinon, il installe directement BIDE
In Arch, I trust ! And you ?
Dark storm En ligne Labélisateur Points: 11549 Défis: 176 Message

Citer : Posté le 16/06/2018 10:43 | #


Ah, j'ai eu peur
Le truc c'est que l'installation de Java dépend complétement du système sur lequel tu l'installes. Windows a pas le même mode de fonctionnement qu'OSX, sans parler des n distros Gnunux qui ont chacune leur gestionnaire de paquets
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Zezombye En ligne Rédacteur Points: 1754 Défis: 13 Message

Citer : Posté le 30/06/2018 12:25 | #


BIDE 4.3 : http://puu.sh/AOun8.zip
Le changelog sera dans la RDP.

Ajouté le 17/08/2018 à 23:34 :
BIDE 4.4 : https://puu.sh/BfYju.zip
Le changelog sera dans la RDP.
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir En ligne Administrateur Points: 21388 Défis: 149 Message

Citer : Posté le 18/08/2018 22:38 | #


Le choix de U+E064 dans la Private Use Area pour représenter le E majuscule des exposants n'est pas très judicieux, il existe un caractère dédié :

ᴇ U+1D07 Latin Letter Small Capital E

Le caractère actuel ne s'affiche pas quand on copie/colle depuis BIDE sur le forum, comme par exemple dans ce message de Drak : #156659.

Il faudrait utiliser le caractère approprié à la place, qui lui s'affiche bien, comme dans mon message plus bas : #156666.
Zezombye En ligne Rédacteur Points: 1754 Défis: 13 Message

Citer : Posté le 19/08/2018 00:45 | #


En effet, je pense que je l'avais réservé pour le petit E dans les caractères, mais vu que j'ai mis tout ça en caractères privés on peut le mettre pour l'exposant. Je ferai ça pour la prochaine version.
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir En ligne Administrateur Points: 21388 Défis: 149 Message

Citer : Posté le 19/08/2018 08:43 | #


Ah, je vois l'intérêt. On se sert moins des petits caractères, toutefois.
Roma_da_1901 Hors ligne Membre Points: 12 Défis: 0 Message

Citer : Posté le 06/02/2019 21:01 | #


Je t'aime lmao en 5 secondes je l'ai installé sous linux. Je dit mille fois oui
Redcmd Hors ligne Membre Points: 306 Défis: 5 Message

Citer : Posté le 26/08/2019 11:53 | #


Im getting
ERROR: Could not find memory menu, check the offset of the emulator screen

I've tried a bunch of differents cords (and restarted BIDE each time)
But it keeps saying that

What is defined as the top left corner?
is it the top left calc screen pixel?
where the black case starts? or ends?
of the emulator window?
RedCMD#4299 - Discord
Mandelbrot SNKEmini Minesweeper Sudoku
Zezombye En ligne Rédacteur Points: 1754 Défis: 13 Message

Citer : Posté le 26/08/2019 21:37 | #


The top left is the top left calculator screen pixel, you can use "take emulator screenshot" to get what BIDE sees as the window, and "take emulator screen screenshot" to get what BIDE sees at the screen.

Note that you have to be on the main menu; it could be that you need to replace the image of the main menu (if you have a color calculator, for example).
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Redcmd Hors ligne Membre Points: 306 Défis: 5 Message

Citer : Posté le 26/08/2019 23:36 | #


I updated the 3 different images
memMenu, confirmation and complete
It now detects the memory menu correctly
File explorer opens up like instantly, but BIDE doesn't detect it and times out 10sec later

If I manully select the file and press enter, BIDE doesn't detect the confirmation screen
Im on Windows 10
and the g1m file is on my D: drive

When BIDE switches to the emulator, it takes it out of maximised mode
RedCMD#4299 - Discord
Mandelbrot SNKEmini Minesweeper Sudoku


Mrvoxy Invité

Citer : Posté le 05/01/2020 22:31 | #


Whenever I try to download BIDE from puu.sh, I always get the error "That puush cannot be found"
The version that I downloaded from Planet Casio says version=1.1, so it is not the latest, right?

How can I get newer BIDE versions?
Breizh_craft En ligne Modérateur Points: 1104 Défis: 7 Message

Citer : Posté le 05/01/2020 22:33 | #


On the top of this topic, there is a big centered link to this page, where you can download the latest version (it seems to be the 4.4).

Breizh.pm – Un adminsys qui aime les galettes.
Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 29/01/2020 14:31 | #


Hey, j'ai essayé de lancer BIDE avec le sous-système Linux pour Windows, et une magnifique ClassNotFoundException apparait:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/swing/plaf/basic/FixedTabbedPaneUI
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at zezombye.BIDE.BIDE.<clinit>(BIDE.java:62)
Caused by: java.lang.ClassNotFoundException: javax.swing.plaf.basic.FixedTabbedPaneUI
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 10 more

Appart ça, le code source n'est plus dispo sur le gitea...
Lephenixnoir En ligne Administrateur Points: 21388 Défis: 149 Message

Citer : Posté le 29/01/2020 14:36 | #


BIDE supporte déjà Windows, tu peux le lancer directement avec Java sans WSL.
Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 29/01/2020 14:37 | #


Mais le problème c'est qu'il crash au démarrage (en double cliquant sur le .jar)
Krevo_ Hors ligne Maître du Puzzle Points: 408 Défis: 2 Message

Citer : Posté le 29/01/2020 15:30 | #


Ouvrir une console ("cmd"), faire "java -jar BIDE.jar" et voir ce que ça dit ...

Découvrez mon projet principal : Casio Basic Web Interpreter, le basic Casio dans votre navigateur web !
Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 29/01/2020 15:31 | #


En faisant ça, y'a pas d'erreurs, mais c'est chiant de lancer un cmd pour lancer bide ensuite

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 82 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd