Primate IDE for Monkey

Monkey Archive Forums/Monkey Discussion/Primate IDE for Monkey

degac(Posted 2011) [#1]
I decided to adapt my own IDE from BlitzMax to Monkey.
At the moment it is in a beta stage, but it works.

Update: 05 apr 2011 - v.0.42

Major improvements respects Monk (the standard IDE for Monkey) are:
- advanced code tree;
- autohighlight of all the 'commands' taken from the 'modules' folder;
- 'new source code' template for rapid typing;
- per target parameters (at the moment in early stages, and working only for HTML5,FLASH targets: more to come)
- options panel supports more information/parameters

The IDE is free and once I'll 'clean-up' the source code (read it: it's a total mess!) I will release it 'public'.

PS: I've tested it only on WindowsXP - no Mac test.
PPS: beware - it is a 'beta'... something could be get wrong!

Have fun!


okee(Posted 2011) [#2]
I get "Unable to create monkey "tmp" directory"

on XP SP 3

degac(Posted 2011) [#3]
Ok, thanks, bug fixed!

Edit: I've updated the v0.4 release.

It creates all the needed folders.

matty47(Posted 2011) [#4]
I get the same. I have placed program in its own directory. Did it need to be in a certain folder??
Win 7 Home Pr. 64bit

pinete(Posted 2011) [#5]
Getting several errors (process gets freezed, exception errors...) but it seems very good just looking the improvements, as the bunch of bugs comes when I try to open a program or load a sample from the main monkey screen...
I encourage you to finish this editor, for sure it will be great!!
BTW I'm using Windows 7....


degac(Posted 2011) [#6]
Thanks for testing.
It seems there are some (obvious) problems under Windows7...

okee(Posted 2011) [#7]
Under windows xp if primate crashes it seems to delete the current
file you're working on, happened 3 times, but it does create a backup
How do you set the default browser

degac(Posted 2011) [#8]
I'm working on a new release, fixed some bugs (showed only on Windows7...) - today I should upload the latest one.

About default browser: at the moment it's a still a WIP; in Options you can 'add' what browser you want to use; then you should choose the 'preferred' one for Flash or HTML5 (ps: at the moment you need to restart the IDE to 'see' the browsers to choose... it will be fixed).
When you 'play' a program (in HTML5 or FLASH) you should be able to choose what browser you want to run.

And here the 'comic' part: I've added IE, FF4 and Chrome, but only IE or Chrome open the program. FF4 gives me problems...

PS: as I said in my starting post, the IDE is still in beta and something can be wrong... I dont' want anyone loses their data! So be careful!


slenkar(Posted 2011) [#9]
looks nice, i tried it out in WinXP,
when i pressed the save icon i got a crash

a couple of little requests

-set build target once (instead of everytime you build)
-projects... so i dont have to press F5 on the right file everytime

degac(Posted 2011) [#10]
I've uploaded v.0.42 that should fix some bugs/problems under Windows7 and XP.
Same links of my first post.

-set build target once (instead of everytime you build)


-projects... so i dont have to press F5 on the right file everytime

? can you explain better what exactly do you need/want?

At the moment the 'code-tree' in the 'home' panel is unuseful on my IDE. I'm still working on what 'put' on it...

Unfortunately (or not, it depends) Monkey has an help documentation system completely different from BlitzMax, so I'm doing some 'reverse engineering' to understand how to make things useful in the IDE (the 'search' box function in HTML under MaxGUI doesn't work... so it's useless at the moment)

slenkar(Posted 2011) [#11]
a project is just something that tells the IDE to compile a certain file like main.monkey every time you press F5,
instead of the current file.

in my game I have

when I press F5 I want it to compile main.monkey

you seem to have fixed that bug with the save icon thanks

when I try to compile it says process failed to start
(this is what I get when I try to run a .bmx file usually but this time its a monkey file)

degac(Posted 2011) [#12]

in my game I have

You could to 'lock' main.monkey (see under Program)...everytime you hit F5 the 'locked' panel is compiled.

About the error: can you post please the ide.log.txt file (in cfg folder) so - I hope - I could see where it is generated?

slenkar(Posted 2011) [#13]
'lock' is what i wanted :)

heres the log file:
09:54:10 : LOG NAME: <cfg/ide.log.txt>
09:54:10 : LOG FILE: 06 Apr 2011 - 09:54:10
09:54:10 : ----------------------------------------------
09:54:10 : Free memory: GC COLLECT 39652
09:54:10 : GCMemAlloced            12562
09:54:10 :  
09:54:10 : MonkeyPath <C:/My Dropbox/monkey>
09:54:11 : GetPlatforms: start
09:54:11 : CmdPath <C:/My Dropbox/monkey/bin/trans_winnt.exe>
09:54:11 : Output: <TRANS monkey compiler V1.06
TRANS Usage: trans [-update] [-build] [-run] [-clean] [-config=...] [-target=...] [-cfgfile=...] [-modpath=...] <main_monkey_source_file>
Valid targets: html5 flash glfw xna stdcpp
Valid configs: debug release
09:54:11 : --- supported platforms ---
09:54:11 : [html5]
09:54:11 : [flash]
09:54:11 : [glfw]
09:54:11 : [xna]
09:54:11 : [stdcpp]
09:54:11 : IDE: Initialize
09:54:11 : MonkeyPath: <C:/My Dropbox/monkey>
09:54:11 : bmxpath   : <C:/My Dropbox/monkey>
09:54:11 : transpath : <C:/My Dropbox/monkey/bin/>
09:54:11 : BMKpath   : <C:/My Dropbox/monkey/bin/>
09:54:11 : Checkversion...
09:54:11 : Splashscreen...
09:54:11 : Window: created
09:54:11 : CmdLineReq: created
09:54:11 : gotoreq: created
09:54:11 : findreq: created
09:54:11 : replacereq: created
09:54:12 : [Write options...]
09:54:12 : options: created
09:54:12 : projectreq: created
09:54:12 : projectprops: created
09:54:12 : searchreq: created
09:54:12 : aboutreq: created
09:54:12 : TMonkeyRequester: Create
09:54:12 : ReadMonkeyTargets...
09:54:12 : RMT: start
09:54:12 : TMonkeyRequester: Finish
09:54:12 : monkeyreq: created
09:54:12 : Update Progress Bar...
09:54:12 : ReadConfig...
09:54:12 : [Write options...]
09:54:12 : ReadConfig: DONE
09:54:12 : Initialize: Create toolbar
09:54:12 : Initialize: Create Splitter
09:54:12 : Init: LoadCommandsTxt
09:54:12 : Init: HelpPanel
09:54:17 : check if already open 
09:54:17 : path <c:/my dropbox/monkeygames/junglecatz/junglecatz.monkey>
09:54:17 : --- Create new source code ---
09:54:17 : Code.Path = <C:/My Dropbox/monkeygames/Junglecatz/junglecatz.monkey>
09:54:22 : Target : html5
09:54:22 : File   : C:/My Dropbox/monkeygames/Junglecatz/junglecatz.monkey
09:54:22 : Config : 1
09:54:22 :  
09:54:31 : Locked Panel {1 build:junglecatz.monkey} Icon: 0

slenkar(Posted 2011) [#14]
I had a field in my type called 'scale'

the IDE make it Scale with a capital S

degac(Posted 2011) [#15]
...mmm things starts to become a little complicated.
Adapting the existing maxide code to a case-sensitive language requires too much acrobatics... I'm start to think I need to restart the project from zero.

slenkar(Posted 2011) [#16]
all you have to do is not change fields

degac(Posted 2011) [#17]

all you have to do is not change fields

Oh, this is the 'easy' part.
To be honest in one of my test I 'resolved' the problem 'lowering' all the fields (so if you type Field Scale:int=10 becomes Field scale:int=10...) but of course this will cause other problems.
But I can rewrite the function to leave the original type or check if there is a way to turn on/off AutoCapitalize in the source code... this should make things easier.

The problems are after...
I need to 'interpret' every single line typed to understand if user is referring to a command (Scale) or a field/var (scale) or a method...

If I type self.scale the 'dot' can be used as 'marker' to understand I want to use a field (and this should work).
In all the other cases the interpretation is ambiguous...

slenkar(Posted 2011) [#18]
oh ok, it does sound difficult