Jungle Ide (almost) ready!

Monkey Forums/Monkey Programming/Jungle Ide (almost) ready!

ziggy(Posted 2011) [#1]
Hello to everybody!

I'm developing a brand new IDE for monkey called Jungle Ide. This IDE is a fast, lightweight IDE for monkey with intelliprompt, folding, project management system, and all the features one would expect on a good modernd IDE. It's for windows only.

Some of you may know BLIde (the IDE I've done for BlitzMax). Well, Jungle Ide was born as the "natural" evolution of BLIde, with all focus on usability, simplicity and speed.

We're not ready to release a stable release, we have a private BETA version and we're accepting pre-orders. Anyway, a pre-order gives you full access to current private BETA version.

More info can be found here: http://www.jungleide.com


Xaron(Posted 2011) [#2]
Great! Will take a look at it!

Am I customer #1? :D


marksibly(Posted 2011) [#3]
Hi,

> Am I customer #1? :D

Yes, you are!


Xaron(Posted 2011) [#4]
Wow, I'm kind of proud. And thanks for your quick help! :)


Mahan(Posted 2011) [#5]
I am #2? :)


dopeyrulz(Posted 2011) [#6]
Ziggy,

Just purchased JungleIDE! The pre-order offer was too good to refuse! Good luck with the development.


ziggy(Posted 2011) [#7]
Thanks!
Let me know any issues you may find using the BETA version. It's been tested during months by some of the dev team members, so it is very stable and should be very near to production status. I'm still considering it a BETA becouse intelliprompt is a bit simple yet.


wiebow(Posted 2011) [#8]
Bought it. Thanks for making this, I've been enjoying BLIDE a lot, so...


Xaron(Posted 2011) [#9]
Just bought it without looking at it. Hehe. Exciting days... *g*


taumel(Posted 2011) [#10]
Sadly, the windows only makes it useless for me.


ziggy(Posted 2011) [#11]
Yes, it's windows only, and there are no plans to make a native Mac version of it. I'm not saying it is not going to happen, but there are no plans on it.
Jungle Ide has been developed with the idea of making it as VM friendly as possible, I've done most of the beta testing on XP running on a VMWare machine inside Windows 7. It also works as a native 64 bits app on 64 bits windows, etc. So it sohuld addapt very well to parallels or any other VM running on a Mac computer. anyway, using a VM just to run an IDE is a bit too much, but this is how the current Jungle Ide implementation works.


dopeyrulz(Posted 2011) [#12]

It also works as a native 64 bits app on 64 bits windows



Yep - runs fine on my Win7 64bit machine.


Raz(Posted 2011) [#13]
I'll give it a look when I'm home. BLide really helped me with my uni project a few years back.


Xaron(Posted 2011) [#14]
ziggy if I may make a suggestion:

I know I asked about this before but could you please add a:

"Replace tabs with spaces" option and the option to select the tab size?

I'm a bit picky about real tabs (no discussion here please *g*) and it's probably not that hard to include?

Thanks so much!


Skn3(Posted 2011) [#15]
other way round ... replace spaces with tabs! *stomps feet* ... ;)


Cartman(Posted 2011) [#16]
I've bought mine. I can't pass up another great tool from Ziggy.


Virtech(Posted 2011) [#17]
Another buyer :) Awesome Tool!


ziggy(Posted 2011) [#18]
@Skn3: Ok ok... Tabs to spaces will be in for the next BETA update... Just, the replacement of tabs to spaces in the whole document will still have to be done by Find & Replace, other than that, I've got it working now here, it was not that complicated...


Virtech(Posted 2011) [#19]
@ziggy
Can we have a button to open in explorer the location of compiled files (or as link in the compilation process log)?


Snader(Posted 2011) [#20]
Just bought Monkey and JungleIDE in one morning...


ziggy(Posted 2011) [#21]
It'll be Ctrl+E to open in explorer current file's folder, wich usually will be the project folder. This will be added very very soon.

@snader: Welcome! you'll see monkey rocks A LOT!


Tommo(Posted 2011) [#22]
Don't forget to add a "Alt-Enter for autocompletion" option.
:)


Volker(Posted 2011) [#23]
I want my CTRL-M back :-)
Well done ziggy, I directly felt like home again.


ziggy(Posted 2011) [#24]
Ok, small update available:
Jungle Ide BETA 11.03.03-A:
[*] Fixed an issue that was making the import intellisense incomplete or wrong after a file rename in the solution explorer

[*] Fixed a small mem leak in the HTML5 + JavaScript parser

[*] Fixed an issue that was making it impossible to horizontal-scroll source code

[*] Made the text editor scrollbars auto-adjust to the source-code size

[*] Added an option to explore current file folder by using Ctrl+E

[*] Added an option to block comment/uncomment source code

[*] Added an option to convert tab to spaces as the code is being written


Hope everybody is happier now :D


Xaron(Posted 2011) [#25]
Yay! Thanks ziggy! Do you want to marry me? :D


therevills(Posted 2011) [#26]
Just updated to 11.03.03-A and now I get this when I press the Enter key:

Wrong STACK end at document .0bb810f6-b446-48fe-ad7a-69c4ebff315a


Xaron(Posted 2011) [#27]
ziggy? Could you please add an option to change the tab size? :)


ziggy(Posted 2011) [#28]
Just updated to 11.03.03-A and now I get this when I press the Enter key:

Wrong STACK end at document .0bb810f6-b446-48fe-ad7a-69c4ebff315a


That means that your document is either malformed (mismatched END) or that the parser is not building a proper AST.
I've added this output to the console whenever the parser ends with an open "node", that is an open method, function, while, multiline if, etc.
Could I have a copy of the document that produces this? It can be a bug in the parser, or a bug in your code...


ziggy(Posted 2011) [#29]
ziggy? Could you please add an option to change the tab size? :)
Yes, will do.


Perturbatio(Posted 2011) [#30]
Hope everybody is happier now :D


So long as you don't do what Aptana did and change the default indentation from tabs to 4 spaces. I didn't notice until I was quite far into building something.

I've never understood why people can't just change the tab width.


ziggy(Posted 2011) [#31]
The Tab to spaces option if optional and OFF by default. If you are one of those monkeys that preffer spaces to tabs, you can enable it, otherwise, if you are a regular monkey, you do not have to change anything :D


therevills(Posted 2011) [#32]
mismatched END


The issue happens when you try to create a new class, just type in Class Blah <return>

JungleIDE doesnt complete the class with End Class so I guess thats why you get that error.


ziggy(Posted 2011) [#33]
The error then is correct. It is there mainly for me to catch any possible issues with the internal parser. When it goes out of BETA I'll remove this message, or change it to something more verbose and less intrusive. It's just for sanity and to help in stability of the monkey parser. So in the particular scenario you're describing, the message is expected.


therevills(Posted 2011) [#34]
Shouldnt JungleIDE just auto-complete the Class for me though? If it did you wouldnt need the error message?

[Edit 1]
Just tested again:

1. If I type in "Class Blah <return>", the IDE completes it with "End Class"

2. If I type in "Class Blah Extends Foo <return>", the IDE doesnt complete the class and you get the error.

[/Edit 1]

[Edit 2]
Okay... if there are alot of spaces between other code you get the error:

Also if you have a brand new doc and create a class straight away you get the error and the IDE doesnt complete for you.

Uploaded a video for you so you can see whats happening:
http://www.youtube.com/watch?v=uAhsu7pd3Ek

[/Edit 2]


ziggy(Posted 2011) [#35]
That's expected. I mean, the error means that the source code in the document is not complete and there are open code blocks. That's what we can see in your example. the only issue I may consider a bug, is that when you select the extended class, the autocompletion does not trigger. I'll be fixing this soon.
Also, I'm going to remove this text with something nicer, so people understand what it means. (it was just a dirty debug message for me, that ended up being very helpful while debugging the internal parser).
EDIT: all in all, if you get this error in the console window, with a properly formed source code, then there is a bug. Otherwise it is correct. I'll be improving this to make it not look like something is wrong, as it is just a debug message to help the beta testing process.

Thanks anyway, remember beta versions sometimes have beta-testing logs. That's one :D


therevills(Posted 2011) [#36]
Sometimes it does it and doesnt auto complete a non-extended class, so I think this is the bug ;)


ziggy(Posted 2011) [#37]
Sometimes it does it and doesnt auto complete a non-extended class, so I think this is the bug ;)
Yes, I think the auto-completion window focus is somehow confusing the auto-completion algorithm. I'll try to minimize this. Nice found :D


Raz(Posted 2011) [#38]
Hi Ziggy, is there an option to increase the output console text size?

It appears as

http://img836.imageshack.us/i/jungleide.png/

for me.


ziggy(Posted 2011) [#39]
There's no such option. It's using your system window-text size. I'll add an option to change this (font and size) for the console window, in the preferences dialog.


BigAnd(Posted 2011) [#40]
Hi Ziggy.

I have a .monkey file that crashes Jungle. Its a rather large array. It hangs Jungle when I reload a solution. The only way to get Jungle working again is to load the file into Monk and delete the contents and re-save the file from there.

I can send the file (its only 16k when zipped) to your email address if it will help?


ziggy(Posted 2011) [#41]
Yes please!
I would love to see what going on there :D


Raz(Posted 2011) [#42]
Nice one, thank you!


ziggy(Posted 2011) [#43]
Latest update, I forgot to inform on the changes:

Jungle Ide 11.03.05-A:

[*] Fixed an issue that could cause text getting mangled after a very concrete chain of find & replace & cut & paste operations.

[*] Improved the Fold All / Unfold All algorithm. Now it prevents the caret changing position and accidentally getting hidden.

[*] Implemented the virtual white spaces to mimic cursor positioning of ancient source code Ides, such as Turbo Pascal or QuickBasic (By default it is off)

[*] Folder selection on the preferences dialog now tries to select the previously selected folder.

Update on: Help / Check for Updates.


ziggy(Posted 2011) [#44]
Another small update out:
Jungle Ide 11.03.09-A:
[*] Implemented the dynamic keywords highlighting. Highlighting on Jungle Ide for Monkey is finished. Yay!!

[*] Fixed an issue in the If lexical parser that was making the parser consider multi line Ifs that were single line ifs with complex expressions.

[*] Fixed a parsing problem when parsing the trans modules.



Xaron(Posted 2011) [#45]
Out of curiosity what kind of version numbering do you use? I mainly use x.y.z where x is the major version number, y is a minor number for changes within a major version and z is the patch level for bug fixes.


therevills(Posted 2011) [#46]
@Xaron: Ziggy uses the date as the version number :P

11.03.09-A = 9th of March 2011 Version A

@Ziggy: "dynamic keywords highlighting", which keywords will now highlight?


Xaron(Posted 2011) [#47]
Ouch. :D Never thought about that it's so easy. lol


ziggy(Posted 2011) [#48]
"dynamic keywords highlighting", which keywords will now highlight?

Well, if you import mojo, all mojo commands, otherwise not. It will addapt to the modules you're importing every time. That's what makes it soo cool :D
Play with it commenting uncommenting the import sentences and see the whole highlighting of the document change automatically.
Also classes and commands (functions) defined in custom files being imported (as long as there is a solution involved) will provide highlighting too. If you don't see a class name highlighted, you're not importing this class, or you're writing it wrong.


ziggy(Posted 2011) [#49]
Out of curiosity what kind of version numbering do you use

As therevills has pointed out, it's the release date of the update, being the first 2 digits the year, the second 2 digits the month, then the day, and then the letter indicates revision (just in case I need to release a quick fix just after an update is released).


therevills(Posted 2011) [#50]
It will addapt to the modules you're importing every time. That's what makes it soo cool :D



Sounds great!

Im just using a single monkey file atm, but I can't see the Mojo commands highlighting (eg DrawImage), do you have to use a solution?


ziggy(Posted 2011) [#51]
Im just using a single monkey file atm, but I can't see the Mojo commands highlighting (eg DrawImage), do you have to use a solution?

No, have you downloaded the latest update? It should be working. Be sure to be using 11.03.09-A. You should see DrawImage highlighted as long as you import mojo (lowcase).


Amon(Posted 2011) [#52]
When will a demo be available? I'm wanting to use the ide but want to test first. :)


ziggy(Posted 2011) [#53]
Hopefully soon. I have a test-version running and I'm just finishing some small details. The DEMO will be a peek view of the current official BETA. Once the product goes out of beta, a new demo will be released. Anyway, the current Beta is quite stable. I'm using it in a daily basis and it works quite well. Every day a small fix here and there, but it's almos near a release candidate.


ziggy(Posted 2011) [#54]
Small update available

Jungle Ide 11.03.14-A
[*] Open documents list in the IDE will be sorted alphabetically by document name

[*] Recent documents list added to the file menu

[*] F1 contextual keywords help implemented and running nicely

[*] Fixed an issue that was considering the SAR identifier as an operator

[*] Fixed an issue that was ignoring some of the bit operators in the lexical parser

[*] Multi-line / single-line If parser recognition is a bit faster



Beaker(Posted 2011) [#55]
Hi ziggy - I sometimes have multiple files open with the same file name (but different locations). Is it possible to show the current tabs path somewhere? Either the titlebar, statusbar, or when mouse rolls over the tab itself?

I like the new F1 help stuff, but is it possible to do what the old Blitz3D IDE used to do:
1) Pressing F1 once would show the command syntax in the status bar. Twice for help page.
2) If the cursor isn't actually over a command (when you press F1) then search back along the line until it finds one.


ziggy(Posted 2011) [#56]
Pressing F1 once would show the command syntax in the status bar. Twice for help page.
I'll add F2 for this, as I want to make it as similar to BLIde as possible. and it won't be on status bar, it'll be a pop-up so you have it at hand. I have a big screen... :D
If the cursor isn't actually over a command (when you press F1) then search back along the line until it finds one.
Not sure about this one. the whole help engine of Monkey is self-contained, so I can't check if there's any help for a given command (or word) or not. So not really possible at all, by now...


ziggy(Posted 2011) [#57]
I sometimes have multiple files open with the same file name (but different locations)
Maybe I could write the modulename in the tab (that is foldername.filename without the monkey extension)?


ziggy(Posted 2011) [#58]
Ok, I've just commit an update that adds lots of functionality:

Jungle Ide 11.03.21
[*] Changed Undo shortcut to Ctrl+Y to mimic BLIde standards

[*] Completelly implemented public/private modifiers on the internal document parser. Now private areas of modules are not available on the Monkey database, so it's smaller, loads faster and provides more accurate information on intelliprompt.

[*] Added an option to allow F1 help request to be opened on an external html browser, for users having issues with embeded IE component

[*] Added an automatic visual tip that will provide full path information for files sharing the same filename, so you can easilly diferenciate wich one you're editing. While having files with the same name is something not recommended, now Jungle Ide helps you diferenciate them easilly. No action required.

[*] Added the expected dictionary-predictive intelliprompt. It works the same as BLIde, but a lot faster

[*] Added Ctrl+Space autolist scope-based requests

[*] Added an option to change Ctrl+Space to Alt+Enter for asian users



dopeyrulz(Posted 2011) [#59]
Great work Ziggy - the intellisense stuff look terrific!


GfK(Posted 2011) [#60]
Are a lot of keywords undocumented? I get a blank page when I press F1 over a hell of a lot of things, for example; class, extends, etc.


ziggy(Posted 2011) [#61]
@Gfk: Yes, the "search" implementation on the documentation is based on commands defined inside modules, so native keywords (such as class, etc) will not bring any documentation page. This is how the monkey documentation js-based system works now. I supose it'll be improved on the monkey side, so we can benefit from the improvements too in jungle ide. currently, all I can do is to provide the information available in the official help sources.


Snader(Posted 2011) [#62]
Great work Ziggy! Can't live without JungleIDE anymore!


Raz(Posted 2011) [#63]
Am I going nuts, or did the return key used to close the intellisense popup only, but now it closes the popup AND adds a new line?


therevills(Posted 2011) [#64]
but now it closes the popup AND adds a new line


Go to Tools > Preferences > Editor and untick "Start a new line after pressing ENTER on autolists"


ziggy(Posted 2011) [#65]
Am I going nuts, or did the return key used to close the intellisense popup only, but now it closes the popup AND adds a new line?

Well, on Jungle Ide, intellisense completion is a bit more clever in latest version. Let me explain:

Intellisense on Jungle Ide works the same as BLIde. All operators perform completion, so you just have to press whatever it comes after the word you're completing. Enter included.

That is, instead of using Enter to close the intellisense popup always, it is much better to just use whatever you're going to write. I mean, if after the word there's a "(" just, write it. If it is a space or an operator or a dot, just press it and, if it is a new line, just press enter.

This is a way to improve writing speed and this make things a lot easier than having to scroll and select and press Enter as in other IDEs, but you have to get used to it first (it does not take too much).

If you're so used to use the Enter key to perform completion, that you can't use anything else, in that case, you can modify the default settings as therevills suggests. I wouldn't recommend it unless you've given it a proper try, it's worth it, but you have to get used to it.


Rhodesy(Posted 2011) [#66]
Oh yes, visible special characters! I can now carry on my perverse fetish of keeping all structures perfectly indented!

*Edit* Not sarcasm... I have problems. :(


Raz(Posted 2011) [#67]
thanks for the responses :) I think it was just because I was going back and changing code instead or writing new stuff.

ill give it a proper go!


ziggy(Posted 2011) [#68]
Update 11-03-26-A available:
Jungle Ide 11.03.26-A

[*] Improved string-matching selection on autolist to prevent casing problems with classes and modules that share the name, but not the casing.

[*] Added an option to automatically download the Monkey Demo from the first configuration wizard.

[*] Added a page in the configuration wizard to set the license number and the username at jungleide.com

[*] Improved performance, look and feel of the file downloader system for Jungle Ide updates

[*] Fixed a small GDI resource leak.

[*] Fixed a small bug with drawing ascent character when printing/previewing.

[*] Fixed a bug that could make the Ide crash when closing.

[*] Fixed a crash when displaying code completion for extension methods on C#.

[*] Fixed a bug with code completion for namespaces in the XNA C# parser

[*] Fixed an issue that was making Jungle Ide throw some error messages when Jungle Ide was launched with the "check for updates at start-up" option enabled, and there was not a working internet connection.

[*] Fixed an issue that was making Jungle Ide show some modal message windows from the wrong thread, not blocking properly the application, and leaving Jungle in a potentially inconsistent status

[*] Support for advanced windows 7 shell apis, so Jungle now display progress and status also in the taskbar, among other small things. Previous windows versions supported too, but without the advanced windows 7 shell features.

[*] Fixed several issues on autolists item selection, specially when there were several available casing options for the same "word" such as List and list, app and App. etc.

[*] Fixed an issue that was making the language item selectors of the editor window to not be updated until the edited document had focus, for documents that are not part of a project.




Samah(Posted 2011) [#69]
If you're so used to use the Enter key to perform completion, that you can't use anything else, in that case, you can modify the default settings as therevills suggests. I wouldn't recommend it unless you've given it a proper try, it's worth it, but you have to get used to it.

Being "used to it" isn't the problem. Just because intellisense has given me a suggestion doesn't necessarily mean I want to use it. I should be able to just keep typing and ignore the suggestions. As it stands, I need to press escape if I want to use exactly what I've typed. It seems like this would slow most people down.

Also can we pleeeassssee have an option to remove keywords and/or modules and/or primitives from the list?

<3


ziggy(Posted 2011) [#70]
Being "used to it" isn't the problem. Just because intellisense has given me a suggestion doesn't necessarily mean I want to use it.
You can do this. There's nothing stopping you to do this AFAIK.
I should be able to just keep typing and ignore the suggestions. As it stands, I need to press escape if I want to use exactly what I've type
But in wich situations the suggestion is wrong? and....
Also can we pleeeassssee have an option to remove keywords and/or modules and/or primitives from the list?
Then you better turn off the "alow automatic predictive completion". This is what provides completion including primitves, etc. If you turn this off, you'll get only autolists for class members and the like, which is a lot less intrusive, if you prefer to code this way. Anyway, I'll add this option for the next update.


Samah(Posted 2011) [#71]
But in wich situations the suggestion is wrong? and....

Specifically, when using generics. Intellisense currently doesn't show class parameters. If I have a parameter called E, then when I type E as my variable type, I get Enumerator and have to hit escape. Also sometimes I haven't defined the variable/method/class yet and I'm referencing it ahead of time.

The main reason I want to be able to turn off autocompletion for keywords and primitives is so that it doesn't change the case of what I've typed. It ignores the case anyway, which is why I can type "List" and it will jump to the module "list" instead.

Also, pressing Ctrl+Space when your cursor is immediately after a : or a . should be the same as if you'd just typed it. That would be incredibly helpful! :)

However, this really belongs in the Jungle forums.