Jungle Ide update available

Monkey Forums/Monkey Programming/Jungle Ide update available

ziggy(Posted 2011) [#1]
For newcomers: Jungle ide is an advanced IDE for the Monkey programing language, for windows. More info here: http://www.jungleide.com

(continued from here)
Notes on the new update:

This new Jungle Ide iteration comes with a complete “Connections” system that provides a better management of child processes in you coding session.

A connection is a GUI based system that allows you to manage any external program being run by Jungle Ide, like the Monkey compiler, when you’re compiling source code.

This new system lets you monitor the external programs status (process) and abort their execution at any time, in a clean and resource leak free way.

All in all, to summarize how it works, you should understand connections this way:

The connections system displays any running sub-process (ie. a compilation & run process) in a separated TAB in the console panel. This simple addition involves some very nice features (both in low level efficiency and in usability):

•This new system lets you monitor when a process execution has ended. (no need to Ctrl+Del any more)

•This new system prevents the Jungle Ide console to get mixed contents (compilation results contents with Jungle Ide usage information, etc.)

The most important thing: This new system provides a drastically improved process management system that allows process interruption at any time granting that any child process is also detected and collected and all resources from any process and sub-process in the same branch are properly released.

In other words, the Connections engine integrates a tree-based process identification system that allows any running application, as instance a XNA or GLFW application, to be closed properly. When you do this, Jungle will be closing also any child process that the application may have started.

As instance, with this new and improved connections approach, when you cancel execution of a XNA Monkey game, you’ll see how the connection closes:
•The Trans tool
•The cmd shell tool used by trans to launch the running application
•The MonkeyGame XNA application being run
•The XNA game proxy engine being automatically started by the game.

This provides a clean way to manage this resources which is much more effective and clean than just deleting the MonkeyGame child process from program manager.

Additionally, if the application being run does itself start secondary processes, they will be automatically detected and destroyed whenever the “connection” is killed.

Apart from this, this is the complete changelog of this new version:


Jungle Ide 11.10.04-A

[*] Implemented a new bug report system that does not require the IDE user to provide a valid email address in order for us to contact him or she. This new system uses part of the license information to identify the bug report user, in case we need to contact him or she to provide a quick fix. (sending bug reports is optional, as always).

[*] Integrated a new Connections based build system. This new system allows parallel execution of several compiler instances and also provides an efficient mechanism to develop solutions that contains modules and sample applications.

[*] Added a new "bypass" build mode, specially designed for modules in solutions. Projects with a "bypass" build mode won't be compiled as standalone, only saved to disk so they're ready to be imported by other projects in the same solution.

[*] Made some small speed optimizations to the Monkey modules database builder

[*] "Build and Run" on a solution now builds all projects in the solution. If a project does not have to be built, you can set it to the new "bypass" build mode.

[*] Added a new text renderer to the console. This new text renderer uses different text colors to differentiate warnings and errors from regular console text.

[*] Added a "Refresh" button to the solution explorer so any changes in the folder structure can be loaded into Jungle Ide.

[*] Fixed an issue that could generate an "out of memory" error or crash after a find and replace operation on very big solutions

[*] Fixed an issue that could generate a hard crash on a replace operation.

[*] Fixed an issue that was making the document generator get confused with < and > symbols on class definitions

[*] Fixed an issue that could crash Jungle Ide when getting the list of recent document or solutions, when there was concurrent access to the serialized file in several Jungle Ide instances.

[*] Fixed an issue tha could potentially make Jungle Ide fail to compile a project when the entry point of that project was renamed.




hardcoal(Posted 2011) [#2]
finally cool


hardcoal(Posted 2011) [#3]
how do you cancel the multi compile option!!?


ziggy(Posted 2011) [#4]
What's your scenario? How's your solution?


hardcoal(Posted 2011) [#5]
I got two projects on each one there is an entery point.
when I run a compile on one project the other one also being compiled.

the one i compile is glfw and the other one that i dont want to compile is html5


ziggy(Posted 2011) [#6]
Set the compile mode for the one you don't want to compile to "bypass" and it'll be ignored in the compilation project. You know, in the "Run / Update / Clean, etc." there's a new build mode called "Bypass" that means: do not build


hardcoal(Posted 2011) [#7]
Tnx, Understood tnx for the fast reply great job there :)


ziggy(Posted 2011) [#8]
Forgot to mention that Jungle Lite (and demo) will also be updated in some days time.


ziggy(Posted 2011) [#9]
Ok, another update for Jungle Ide:
Jungle Ide 11.10.13-A (QuickFix)

[*] Fixed an issue that could give a "misconfiguration" error when a file was imported into the solution, but the file was already open as a non-project (stand alone) file.

[*] Fixed an issue that could make Jungle Ide crash on a large "find in all files" operation, in some computers, when the text in the editor was being scrolled using the mouse scroll wheel

[*] Added a new build option to build current project only (this mimics Build option of previous versions). This will allow you to build a project in the solution instead of having to build the whole solution always


Jungle Lite/Demo will be updated soon too. Jungle Lite and demo have been updated too.


Armitage1982(Posted 2011) [#10]
Thank you !
Quite a few nice features already :D


siread(Posted 2011) [#11]
[*] Fixed an issue that could make Jungle Ide crash on a large "find in all files" operation, in some computers, when the text in the editor was being scrolled using the mouse scroll wheel


How do you do a "find in all files" search?

Edit: Doh! Immediately spotted the drop-down list in the find box after posting.

It would be nice if this could return a list in a window though, similar to Blide. :)


Volker(Posted 2011) [#12]
It would be nice if this could return a list in a window though, similar to Blide.

Yep, that was better.


ziggy(Posted 2011) [#13]
Update available to version 11.12.05-A

This is the changelog:
Jungle Ide 11.12.05

[*] Added a proper "Go To Line" dialog to the text editor.Added an option to customize the temporary folder in order to facilitate temp compilation for targets that require a specific location for source code files, such as Android

[*] Added a context menu on the Solution Explorer to set the desired target for a project without having to open a file on the project

[*] Fixed an issue that could make Jungle Ide crash when a Find operation was requested on some rare situations

[*] Added an option to the Local Shortcuts panel to show only current file instead of all files. It's a switch and it can be turned on/off. Also available from the preferences dialog.

[*] Several small stability fixes from the crash reports we've been getting from users.


Small changelog, but new features.


hardcoal(Posted 2011) [#14]
I still cant download from the server erm..


ziggy(Posted 2011) [#15]
@hardcoal: Please, if you still have issues, tell me. I can't guess. Did you try disabling your download manager? Does it work from the IDE itself? If it does, just get the update from the Jungle Ide Framework folder. You'll see a "Stored updates" folder there. You'll see all your accumulative updates there, just in case you want to keep them in a backup or anything.


hardcoal(Posted 2011) [#16]
I did disable the download manager, still didnt work.

I downloaded the demo instead for now.

the update works from the IDE no probs there.
but i still want to download it from the website to have a backup...


Amon(Posted 2011) [#17]
I'm just waiting for an option to purchase updates extension. My update time ran out.


TheRedFox(Posted 2011) [#18]
Update working fine here.


ziggy(Posted 2011) [#19]
@hardcoal: Be sure to be autenticating properly. The program update process and the online update process use the same protocol and autentication data, so it looks like the "manual" part of it is being done wrong. Be sure all caps are correct, etc.

@Amon: Updates time extension will come soon before new year, with a one year license too. The lifetime license option will be removed soon tho, as it was just a launch time offer. All this will change at some point before january.


TheRedFox(Posted 2011) [#20]
Hopefully, we won't be kicked out!


ziggy(Posted 2011) [#21]
All purchases of Beta versions during Jungle Ide launch are lifetime licenses. All in all, only the six months licenses are not lifetime licenses, so don't panic! You can check your license expiration date in your account at jungleide.com, but currently there are only lifetime licenses and 6 months of updates licenses.


Gerry Quinn(Posted 2011) [#22]
Will 6-month update versions stay working in the long-term, just missing new Jungle features, and anything that gets broken by new Monkey features?


ziggy(Posted 2011) [#23]
Will 6-month update versions stay working in the long-term

Yes, the 6 monthns of updates licenses can be used forever, but only give six months of updates. When the updates period has ended, the program won't autoupdate to latest release with all the fixes and new features untill another updates period is purchased. You can of course just not update it and leave as it is when the six months ends.


ziggy(Posted 2012) [#24]
Hello,
As some of you have asked about the new background compiler we're integrating to Jungle Ide, I've added this small explanation and video in the Jungle Ide website, just in case anyone is interested:

http://www.jungleide.com/?page_id=33/jungle-ide-group4/general-discussion-forum5/jungle-ide-background-compiler-thread231.0


DrT(Posted 2012) [#25]
I love the Jungle IDE. Can't wait to use the background compiler. Keep up the good work.


dopeyrulz(Posted 2012) [#26]
Nice work ziggy! One question - how will this work with new releases of Trans from Mark?


Beaker(Posted 2012) [#27]
Sounds great.


ziggy(Posted 2012) [#28]
how will this work with new releases of Trans from Mark?

Short answer: It'll work well
Long answer: The background compiler is a custom made compiler that works side-by-side with the official compiler you may have installed. Whenever a breaking change is added to the official Monkey compiler, we'll add the change to the background compiler too. That said, keep in mind that our background compiler is not used to generate final compilation, when you press F5, Jungle Ide will use whatever compiler there is in your monkey Bin folder. So compilation (real compilation) will still be like it is now. But when you make a change in the source code window, Jungle will call its own background compiler to get any source code error. They are two separete processes.


therevills(Posted 2012) [#29]
Is your Trans compiler open? For example if someone has made changes to the Offical Trans could they alter your Trans?


ziggy(Posted 2012) [#30]
@therevills: I hadn't thought about this, but I don't see any reason to not opening it, so yes, it'll be open and available from the jungle ide website. Anyway, not very usable without Jungle, as it uses Pipes to comunicate with the IDE itself in a ultra simple-small protocol that allows a sort of "files" redirection, to alow this compiler compile unsaved source code. Anyway, it's not exactly very well documented, etc. but if it is useful, I'll open it.


therevills(Posted 2012) [#31]
Could your trans be generated on the fly?

For example when you launch Jungle it scans the current Monkey trans and generate itself, therefore you wont need to maintain a version of trans youself and the developer only needs to change trans in one place.


ziggy(Posted 2012) [#32]
No it can't. It's not that simple. I wish it could! Anyway, there is a chance that it won't need much recompilation, and maintenance should be quite simple, as there are just some small bits of the official trans modified, and they are properly identified as such. I've already made a version from Monkey 50 to Monkey 51 in less than one hour of work. And, additionally, this kind of changes will only be needed when there are changes in the official compiler that do modify Monkey syntax, wich won't happen very often.

And to the opening the trans. It will be done, but it will require some changes to official modules, so we'll see how I do open it. I supose that putting the modified modules in the same folder as the trans source code should prevent the compiler from using the modules in the modules folder. I'll investigate it before opening it.


dopeyrulz(Posted 2012) [#33]
Thanks ziggy - sounds fine :)


ziggy(Posted 2012) [#34]
Ok, the update is public.
Here's the changelog for this version:
Jungle Ide 12.01.06

[*] Implemented a new Monkey Background compiler that inform on code errors as you type. It's based on a modified version of the Monkey compiler.

[*] Fixed an stability issue with the SuperTreeView component of the Lemonbytes CK-IDE framework. This was making the local shortcuts tree throw an unhandled exception after a specific history of hide/show nodes

[*] Fixed a visualization problem in the preferences dialog

[*] Added a new system that should detect file changes from outside the IDE.

[*] Fixed an issue that was clearing the clipboard contents when Ctrl+C was pressed and there was no selection in the source code window

Important Breaking Change:
The new background compiler system, in order to operate, will add a new tool called junglembc in your Monkey BIN folder. (junglembc means Jungle Monkey Background Compiler)

This utility is a small executable that contains the background compiler itself. You don't have to make anything special for this tool to get copied and installed in the right folder. Jungle Ide will do this for you. It's just a modified version of the Trans Monkey Compiler used to allow Jungle Ide perform background compilation and provide feedback on syntax/lexing errors in your source code.

Current version covers syntax for Monkey V51. This tool will self-update when needed using the regular Jungle Ide update system.

Notes on this version:
The new background compiler service can take a bit of CPU time, on single core machines, it can be a good idea to disable it if you experience important slowdowns on Jungle Ide performance. It's been tested to work wonderfully well on a Quad Core machine on very large solutions, and also tested on a core-solo machine with large solutions and it worked perfectly well.



This update is available for Jungle Ide users due regular updates system. It'll be available too for Jungle Lite, but the background compiler system is not included in Jungle Lite. It is a Jungle Ide "Pro" feature.


bruZard(Posted 2012) [#35]
thank you for that update, but i've got a question:

is it possible to weight types? For example: often i write "Field myVar:In" and press tab to get the autocomplete. But i get no ":Int" but a ":InputDevice". I think an "Int" is more in use as "InputDevice". I hope you know what i mean :D


Amon(Posted 2012) [#36]
What about updates time purchase? I'm still waiting for this.


wiebow(Posted 2012) [#37]
Thanks for this new version, Ziggy


ziggy(Posted 2012) [#38]
Hey, small stability update available. Some mouse movements over the code window could make Jungle Ide throw an unhandled exception. This has been fixed in a "B" version that is available as always.

@Amon: Soon. I need to make some changes to BLIde too, hopefully by the end of this week the additional updates time option will be available.


ziggy(Posted 2012) [#39]
is it possible to weight types?
It's not possible in current version. Keeping a history of previously selected items for each autolist window could help in this scenario, but that's not an easy addition. Will think on something...

EDIT. Forgot to mention that the background compiler works in a per-project base. Files that are not part of a project won't use any kind of background compilation syntax check. The good news is that a change in a file that affects any other file is detected and that makes it a very handy addition.


hsutuo(Posted 2012) [#40]
the ide only for windows?


wiebow(Posted 2012) [#41]
yes.


Xaron(Posted 2012) [#42]
Thanks ziggy, incredible great IDE and well worth its money, keep it up! :)


Soap(Posted 2012) [#43]
Everyone who buys Monkey should also buy Jungle IDE. It makes dev a joy. :)


samowitsch(Posted 2012) [#44]
make a mac version of it and i buy it ;o)


Xaron(Posted 2012) [#45]
As soon as Mac supports .NET. ;)


dmaz(Posted 2012) [#46]
As soon as Mac supports .NET.

it's been available for some time.


ziggy(Posted 2012) [#47]
As soon as Mac supports .NET.

it's been available for some time.

Yes, but Jungle ide does not ONLY use .net a port would take lots of dev time, the final price of the Mac version would be too expensive. As instance (just to name some things that should be rewriten) all the text renderer is not based on the .net GDI+ implementation, but uses direct calls to the windows native GDI apis, becouse this is a lot faster on Windows, but it does not exists on Mac and this is just an example. Not to mention how much I dislike coding on a Mac (I love macs for many things, and I use a Power Mac in a dayly basis on my recording studio, I don't want to start a war here or anything)


ziggy(Posted 2012) [#48]
I've added a new page in the Jungle Ide website filled under the "Support" menu item. This new page is called "Free stuff and utilities". There, you can download the Jungle Monkey Background Compiler source code if you need it to add your own tweaks. This page also has a link to the open source fontmachine module. I'll be adding there any additional resources or utils that may appear in the future.


hsutuo(Posted 2012) [#49]
could u add new function to setup application's name and application's view size? default is 640x480.


ziggy(Posted 2012) [#50]
A new version is available.
This is the changelog:

Jungle Ide 12.02.08-A

• Fixed an issue that could make the Monkey parser to throw an unhandled exception when a function or method has a very rare signature.

• Fixed an issue that could make the Jungle Ide connection system throw an unhandled exception when a connection was trying to recover status from a not-alive connection

• Fixed an issue that could make Jungle Ide throw an unhandled exeption when a search operation was done on a document that had never been open before by Jungle Ide

• Fixed an issue that could make Jungle Ide crash when there was a syntax error in a file being imported and shared by several projects at the same time, in the same solution

• Improved the background compiler handling in a way that it detects file changes in a cascade way, so a change in a module file will be detected when editing a program that imports this module, even if the buildmode of the module is set to bypass.

• Improved the detection of external file editions

• Added background compilation support for stand-alone non project files.

• Jungle Monkey Background Compiler updated to be compatible with Monkey compiler version 1-29 (present at Monkey v53)

• Fixed an issue that could make Jungle Ide crash after trying to open an already disposed document

• Fixed an issue that could make Jungle Ide crash when trying to resolve the intelliprompt items of a given local variable

• Fixed some incompatibility issues with new Monkey documentation system, while keeping backwards compatibility with older Monkey versions, and with Monkey demo



As a side note, Jungle Lite will be updated soon. Also, as some of you have asked this before. I'm preparing the jungleide website, so users with an expired updated license can get six months of additional updates for a small fee. this will be available in some hours if everything goes as expected.

Enjoy!

EDIT: Jungle Lite and Demo have been already updated.


Amon(Posted 2012) [#51]
Cool! I went and bought a second license anyway so that I can update. I buckled in the end as I wanted to try out the background compiler thingymyjiggy! :)


ziggy(Posted 2012) [#52]
Ok, jungle ide additional updates time can now be purchased from the "My licenses and downloads" section of the Jungle Ide website.


ziggy(Posted 2012) [#53]
Hi all, a new update is available. This one comes with a bunch of fixes and improvements, some of the fixes are not trivial.
Info:
Jungle Ide 12.02.23-A

•Added proper highlighting for the Final keyword.

•Any change in the compiler parameters now resets the idle status of the background compiler.

•Fixed some sync design problems on the communications protocol between the JungleMBC and the IDE. There was an issue that was making the background compiler to stop responding when there were several concurrent I/O requests.

•Fixed an issue that could make Jungle Ide crash when a file that had been already renamed in disk was renamed in the solution explorer.

•Background compilation now takes less resources and is a bit faster.

•Modified the comment and uncomment selection icons, so they do not look like indenting, unindenting icons.

•Implemented a shortcut (Ctrl+D) that allows the duplication of current line of source code in any language.

•Added a way to customize matching braces highlighting. Current modes are: Box, Bold and Nothing

•Jump to definition has better understanding of data type and data instances when processing Jump to definition request.

•Fixed a serious problem with solutions layout serialization that could cause some issues on non synchronized solutions.

BREAKING CHANGE: Created a separated document for project session options (opened documents, cursor pos, etc.), so project are much version control friendly and easier to merge on SVN, Github, etc. This system is backwards compatible with older Jungle Ide versions. To be good, exclude JIPO files from your repositories.

•Fixed an issue that was making Jungle Ide convert a document to a panel if there was a single stand-alone document loaded in the session, and a solution without any open document was restoring an empty layout.

•Modified Parameter Hint Pop-up does not appear when cursoring around with the Up and Down cursor keys.

•Jungle Ide load time has been slightly optimized

•Jungle Ide now defaults the internal Monkey documentation to the on online version, but this is configurable on the preferences dialog.

•New feature: If the user makes a double click on a compilation error line, in the connections output window, Jungle Ide will bring the offending source code file and document location to the front of the IDE.

•Added a new feature that allows the generation of documentation for a whole solution, at once.

•Added a setting that will allow users to define a custom color to highlight matching braces.

•Small margin improvement on the generated CSS for automatically generated documentation.

•Now Jungle Ide can store expanded/collapsed status for folders in a project solution explorer, using the separated JIPO file (that can be excluded from any version control system)



Jungle Lite to be updated soon too.

EDIT: Anyone using a self-modified version of the background compiler should dowload latest official source code version from the Jungle Ide site, here: http://www.jungleide.com/?page_id=579 As there have been several important changes in the I/O sort-of protocol between Jungle Ide and the compiler itself.


Xaron(Posted 2012) [#54]
Great! Thanks!


ziggy(Posted 2012) [#55]
Just to inform that the free Junge Lite has been updated too, for anyone interested. To get the update, just go to help / check of Jungle updates.


ziggy(Posted 2012) [#56]
Another update available for Jungle Ide. This is a stability update:

Jungle Ide 12.02.29-A (Stability update)

• Fixed an issue that could make Jungle Ide crash when a compile operation was being performed on a file that had not been loaded into Jungle Ide

• Fixed a scaling problem in the jungle lite to pro conversion dialog when the Jungle Lite was being used from windows XP and the os DPI scaling was active.

• Fixed an issue that could make Jungle Ide crash when a regex find&replace operation was requested and the regex expression was generating some compilation errors.

• Fixed an issue that could make Jungle Ide crash when an error was being rendered in the code window and the code window had no active document horizontal view enabled.

• Fixed an issue that was preventing the syntax errors balloons to be displayed from the above area of a split source code document.

• Slightly modified the Jungle Ide skin to use rectangular tabs instead of round tabs. This is customizable on the preferences dialog. Rectangular tabs are rendered faster and look nicer on windows 8.

• Updated Jungle Ide license information to reflect the 2012 copyright, and added additional information about using Jungle Ide license as a "seat" license.




ziggy(Posted 2012) [#57]
This is important:
Anyone using Jungle Ide with Monkey version 55 or 56, please update your Monkey version to latest v56b as there are some issues with Trans providing information about compilation errors. Users of pre 55 versions are good too as it seems it was a small issue introduced in Monkey version 55 and it has been already fixed by Mark on latest 56b version.


Farflame(Posted 2012) [#58]
Err, I'm being a bit dim here. I've downloaded the latest version of Monkey and my Jungle Ide is up to date, but I have Monkey in a new folder now. Where do I tell Jungle Ide how to locate the new version of Monkey?


ziggy(Posted 2012) [#59]
Go to "tools / Preferences", select the "Monkey" preferences page, and you can set there the monkey compiler location.
There's more details on the Jungle Ide manual, here: http://www.jungleide.com/docs/index.htm?Selectthemonkeylocationindisk.html

Also see: http://www.jungleide.com/docs/MonkeySettings.html


Farflame(Posted 2012) [#60]
Thanks, got it.


JIM(Posted 2012) [#61]
Hey ziggy,

There's a little problem with JungleIDE (and with Blide I think). Say I have this line of code:

Local bl:Bullet = Bullets[ActiveBullets]


If I type this:

Local bl:Bullet = Bul


The intelisense refuses to show up. If I force it open (Ctrl+Space) it opens up and then closes very fast. If I force it for the second time it finally works.

It's not a huge issue, but it's been bugging me for eons :)
Any chance to have it fixed soon? Or is it the kind of small issue that takes a big rewrite to fix?


dopeyrulz(Posted 2012) [#62]
If I force it open (Ctrl+Space) it opens up and then closes very fast. If I force it for the second time it finally works.

Noticed this just today myself.

Also in the right-click pop-up menu you have spelt 'Duplicate current line' incorrectly.

Nice work though Ziggy!


ziggy(Posted 2012) [#63]
'Duplicate current line' incorrectly.
wow haven't seen that and I have read it lots and lots of times... Fixing!

Say I have this line of code:

Local bl:Bullet = Bullets[ActiveBullets]


I'm disabling the predictive dictionary in this scenario as otherwise it was impossible to case-correct a variable name. I need to improve this, and only disable it if the word being written is the variable name, but this would require a bit more of "tokenizing" the current line, etc, and this can be a bit slow... I'll try something

And to the pop-up opening and closing fast. This is a known issue I'm trying to fix but have had no luck just yet. there's something on a third party API I'm using that is causing a problem here but haven't managed to isolate the issue yet. I do really hope to be able to fix it anytime, as it is annoying me too.


dopeyrulz(Posted 2012) [#64]
there's something on a third party API I'm using that is causing a problem here but haven't managed to isolate the issue yet. I do really hope to be able to fix it anytime, as it is annoying me too.

I feel your pain! good luck!


ziggy(Posted 2012) [#65]
Ok, another update is available.
This is the cangelog:
Jungle Ide 12.03.29-B

Version A:
•Fixed several visualization issues on some color schemas for the Monkey programming language.

•Fixed an issue that was throwing the background compiler in addition to the regular compiler when a regular compilation process was started.

•Fixed an issue that was making the "Save as" operation fail and leave Jungle in a inconsistent state after a "save as" operation over a modified file.

•Fixed a parsing issue with the var keyword (inherited from an ancient BlitzMax parser). It's been removed. it's not a keyword on Monkey

•Fixed a typo on the "Duplicate current line" option on the Edit menu.

•Fixed an issue that could leave a child process of a running connection alive when the connection execution was stoped, on 64 bits windows.

•Added drag & drop support on the Find & Replace text fields.

•Modified the Find and replace tab colors to match the selected tab header color, so it looks much more standard.

•Added a shortcut to the system calculator on the Tools menu.

•Added an auto-formatting feature that helps you keep your code clean and equal in all your files. (Experimental, it's off by default).

•Added a feature to the auto formatting that converts data type shortcuts to data type names, so source code is easier to read and follow.

•Added a setting that allows the background compiler to be disabled while a connection is active (as instance, when a regular compilation process is being executed).

•Added drag & drop support of files in the editor window.

•Added a feature that monitors memory usage of any open connection and automatically closes the connection if it gets more than 3/4 of the total system phisical ram (this is off by default).

•Improved background compiler error tooltips rendering, so they look and read much nicer.

Version B:
•Fixed a small issue that was making Jungle Ide not show properly inherited members of a class on the predictive member's list autocompletion.

•Removed some internal debug info from the console window (it was there during internal development and it should not be showing in the production version).


To get the update, just go to help / check for updates (or restart Jungle if you haven't disable the "check for updates at start-up). The Jungle Lite version will be updated too soon.


wiebow(Posted 2012) [#66]
Thank you, Ziggy.


ziggy(Posted 2012) [#67]
Hello,
A new Jungle Ide update is available. This is its changelog:

Jungle Ide 12.04.18-A

• Added a context-menu "set compilation target" to the solution explorer's main project node. (it was only available on the file's context menu)

• Added an automatic module updater for modules supporting it. For more information about how to add this functionality to your own modules see: http://www.jungleide.com/?p=678

• Made some small improvements to intelliprompt.

• Improved Generics support on autolists and class lists

• Added a Update/Repair tool for modules that support the new updates control system available in this new Jungle Ide version

•The array braces operator in Monkey was not being treated as a proper delimiter on the code completion box autlist. This has been fixed



This new Jungle Ide version has what I think can be a very interesting addition, that is, an automatic module-has-been-updated notifier system.

This new system will allow this:
1.- As a module user, you'll be notified every time a new version of one of your modules is available, giving you the option to automatically install the latest version. The process works more or less the same way Jungle Ide updates are notified to you. This system will take care of making a backup of previous versions for you.

2.- As a module user, if you ever break a module, you'll be able to "repair" it by reinstalling latest available version from internet, automatically

3.- As a module developer, you'll be able to provide this functionality to your module users just by placing a module signature file (an XML document) in your module root folder.

Obviously, modules have to support this feature. For more information about how to implement this functionality in your own modules, see:

http://www.jungleide.com/?p=678

http://www.jungleide.com/?p=663

If you are a module developer and do not understand how this works, just contact me with any questions and I'll happily help as much as I can. (contact me here: http://www.jungleide.com/?page_id=57 )

Also, if anyone wants to implement this feature on any other thirdparty IDE, I'll be happy to help as much as I can. This feature will be freely available on Jungle Lite too. It's just I think we can all benefit from this.

More or less, that's all.

Enjoy!


Supertino(Posted 2012) [#68]
Ta very much.. but I've got an annoying bug stopping me working :( I've posted in the jungle forums, is it possible to roll back?


ziggy(Posted 2012) [#69]
I'll be releasing a fix in a while. to roll-back go to your Jungle Ide Framework folder in your Windows documents folder. open the stored updates folder and apply any of the available updates. you can also download any version from the Jungle Ide website in the section "My licenses and downloads".


Aman(Posted 2012) [#70]
Jungle is great. I can't imagine myself using Monkey without it.

Just a thought:
It would be wonderful to be able to get a list modules and download them directly through Jungle.


Soap(Posted 2012) [#71]
+1 to Jungle IDE is extremely useful and worth purchasing. I sent an e-mail but no reply yet. Is there any easy way to buy multiple additional licenses?


ziggy(Posted 2012) [#72]
Hello, there was a small (but irritating) bug in latest release, I've just released a "B" quick fix. Updating is highly recommended as it is a stability release.

So all in all, the final changelog is:
Jungle Ide 12.04.18-A

• Added a context-menu "set compilation target" to the solution explorer's main project node. (it was only available on the file's context menu)

• Added an automatic module updater for modules supporting it. For more information about how to add this functionality to your own modules see: http://www.jungleide.com/?p=678

• Made some small improvements to intelliprompt.

• Improved Generics support on autolists and class lists

• Added a Update/Repair tool for modules that support the new updates control system available in this new Jungle Ide version

• The array braces operator in Monkey was not being treated as a proper delimiter on the code completion box autlist. This has been fixed

Version B changes: (Quick stability fix)
• Fixed a crash that was happening when a data-type autolist was requested on the global data scope of the Monkey source code. Updating is highly recommended.



@Aman:
It would be wonderful to be able to get a list modules and download them directly through Jungle.

Yes, that will happen if module developers do provide the module signature with their modules. It should be easy to do so and provide an automatic setup for the modules from within the ide itself.


ziggy(Posted 2012) [#73]
@Soap: I've just replied to you in the email. Let me know if you have any additional questions. But, in order to buy more licenses, just go to the Jungle Ide Store. Select a product and then, you can modify the quantity (add or remove items) in the Avangate checkout page.

As a side note, notice that Jungle Ide lifetime license option has volume discount if you buy more than 5 licenses (and more dicount if you buy more than 10, etc...) Just in case anyone is purchasing for an entire studio.

EDIT:
By the way, thanks to all of you for the possitive comments. They're very appreciated.


Aman(Posted 2012) [#74]
What do you mean by module signature?


Xaron(Posted 2012) [#75]
I'm curious as well. How do I add such a signature let's say to my MNet module?


Soap(Posted 2012) [#76]
You can get checksum of a directory.


ziggy(Posted 2012) [#77]
Ok, the "signature" of modules, etc. I'm coping and pasting the information available here: http://www.jungleide.com/?p=678 and here: http://www.jungleide.com/?p=663 But all in all, keep in mind that a module signature file (with extension lbms) is just an XML file that has information for Jungle Ide (and BLIde soon) about where to find an update, latest available version, etc.

It works this way (copied from the links I've provided):

Jungle Ide integrates an automatic module updater tool. This tool allow module developers to provide an automatic update availability notification system for Jungle Ide users. this system will inform your module users when there is a new version of the module available, and will allow them to automatically update to latest version with easy.

This system works in the following way:

Any “updatable” module will integrate a module signature file (lbms) that has information about current module update and information about where in the Internet to check for the availability of additional updates. So, when Jungle Ide finds that an installed module update has a lmbs signature, it can then look in the Internet to see if current version is the latest available one and, if it is not, it can provide an automated download mechanism that automatically updates the module to the latest version.

To do so, a Lemon Bytes Module Signature file (lbms) has the following information:
• Name: The name of the module in the current update. As instance: FontMachine
• Version: The version number of current update.
• Update URL: The location where this speciffic update version can be found in the Internet. This allows this system to “repair” the module in case the module user breaks it by mistake or disk failure. The system will be able to use this information to locate this version in the Internet and download it again replacing the broken installation.
• Short description: This information describes briefly the changes introduced in this update of the module.
• More info URL: This is an Internet location where more general information regarding the module and the current update can be found. This will usually be the official module website on the net.

Additionally, this module update signature file will contain this information:

• Remote signature URL: This is an URL where the module signature of latest module version can be found. This location has to be the same for all updates of the same module. The idea is that Jungle Ide will use this URL as a “function” that returns information about latest available version. At the end, Jungle Ide will be able to compare the local version information, with the one in the Remote Signature URL to determine wether an update operation should be performed or not.

In other words, Jungle Ide will be able to download the lmbs available on the remote signature URL and compare it with the current local lmbs file and determine if versions are not the same. It is very important that all the module signtarues for every update of the same module share the same RemoteSignatureURL value. That grants access to latest available version of the module. Otherwise the module update process could not work properly.

So all in all, in pseudo code:
RemoteSignature = DownloadSignature (LocalSignature.RemoteSignatureURL)
If LocalSignature.Version = RemoteSignature.Version Then
  No Updates Available
ElseIf LocalSignature.Version <> RemoteSignature.Version Then
   NewUpdate = DownloadUpdate (RemoteSignature.UpdateURL)
   PerformUpdate (LocalOutdatedModule, NewUpdate)
End


Now, if you want to add this functionality to your own module, you can have a detailed step-by-step guide here: http://www.jungleide.com/?p=663


Now I'm coping & pasting the information on the step-by-step way to implement this on your own module:

1 How to deliver automatic updates for your module

Jungle Ide provides a way for module developers to automatically allow module users to get latest available version. This system does notify your module users when an update is available, giving them the option to automatically update it. Jungle Ide will take care of backing up previous module version, download the latest version ZIP module and install it on the user hard drive.

As a module developer, there’s very little to do in order for your module to be automatically handled by Jungle Ide:

First Step. Create a Module signature file

You’ll need to create a module signature file. A module signature file is a xml document in plain text, with extension lmbs (lemonbytes module basic signature). This file is used by Jungle Ide to determine whether a module has to be updated or not. This file also contains information about where to get the downloads etc. It’s very easy to set up, all you need to do is to create a plain document text file (notepad will do the job) and fill it with the following structure.

This document has to contain the following information:

<?xml version=”1.0&#8243;?>
<ModSignature xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<Name>module display name</Name>
<MajorVersion>Major version number</MajorVersion>
<MinorVersion>Minor version number</MinorVersion>
<Revision>Revision</Revision>
<Build>Build</Build>
<Kind>ZipFolder</Kind>
<UpdateURL>update location in internet</UpdateURL>
<RemoteSignatureURL>remote signature location in internet</RemoteSignatureURL>
<ShortDescription>Description of this latest version</ShortDescription>
<RequireCredentials>True or False if the update download requires authentication</RequireCredentials>
<MoreInfoURL>Module additional info</MoreInfoURL>
</ModSignature>


All the parameters marked in bold are the parameters that have to be customized for each module signature file (lmbs). As instance, for the Fontmachine module, we’ve created this lmbs file:

<?xml version=”1.0&#8243;?>
<ModSignature xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<Name>FontMachine module for Mojo</Name>
<MajorVersion>12</MajorVersion>
<MinorVersion>02</MinorVersion>
<Revision>17</Revision>
<Build>A</Build>
<Kind>ZipFolder</Kind>
<UpdateURL>http://www.jungleide.com/fontmachine-12-02-20-A.zip</UpdateURL>
<RemoteSignatureURL>http://www.jungleide.com/fontmachine.lmbs</RemoteSignatureURL>
<ShortDescription>This new version features some additional methods and has several visualization fixes</ShortDescription>
<RequireCredentials>false</RequireCredentials>
<MoreInfoURL>http://www.jungleide.com/fontmachine/</MoreInfoURL>
</ModSignature>


I’ll explain here each parameter:
Name: This parameter is the module display name. The name that the module is given. It can be any natural name, if does not need to match the module folder name, but it has to be clear which module it is.

MajorVersion, MinorVersion, Revision and Build: This parameters are used to identify the current module version. As instance, in the fontmachine module description above, the module version is 12.02.17-A (being, major, minor, revision and build). It is recommended that the major version contains the year of the module version, while the minor version contains the month, and the revision contains the day of the month when it was released. Also, a build letter to identify possible version released in the same day (quick fixes).

Kind: This parameter indicates the way the module update is delivered. Currently only ZipFolder is supported. So this parameter is always ZipFolder (other uses are reserved for future version of the module updater tool).

UpdateURL: This parameter has the URL location of the ZIP file containing the update described in this signature document. This signature file will be used to download the module, so we need to know where to find the Zip file in the Internet (or intranet or any other http location). The locatoin stated in this parameter has to be the location of the specific module version described in this signature document, and not the location of any other updated version.

RemoteSignatureURL: This parameter has the location on Internet where the module signature of the very latest version of the module is located. Jungle Ide will compare current module description with the one located at this URL address to determine whether an update action is required on a specific module. To do so, we need to tell Jungle Ide where to find the latest module description (so it can compare versions information and act accordingly).

RequireCredentials: This parameter has to be set to true if the module update download process requires http authentication to be completed. This functionality is not yet being supported, this parameter is reserved for future use.

MoreInfoURL: This parameter contains a Internet location with additional information about the module. It’s usually the module official website.


2 Saving the module signature file.

The module signature file has to be saved at the root folder of the module, and it has to have the same name as the main module file, but with extension lmbs. As instance, the fontmachine module, has this files:
/modules/fontmachine/fontmachine.monkey
/modules/fontmachine/fontmachine.lmbs

The fontmachine.lmbs is the signature file for fontmachine.monkey module.

3 Preparing everything to work
Once you’ve created your module signature file, all you have to do is:

1.- Zip your module folder (including the module signature file) and upload it to the UpdateURL location you specified in the module signature file.
IMPORTANT: You have to zip the module root folder in a way that the module main “monkey” file is on the “root” of the Zip file. If the zip file contains a folder containing the module, the process will fail to auto-update properly, as it will add an additional folder in the process. this is very important.

2.- Upload separately the module signature file (the lmbs file) to the RemoteSignatureURL specified on the module signature file. It is very important that if you are updating a previous version of your module, replace previous version with this one in the same URL.

That’s it! Your module is ready to update itself. All users that download your Zip file containing the module (with the module signature file in the module folder) will have an auto-update ready version of your module,and Jungle Ide will detect this and act accordingly.

4 Releasing an update
Releasing an update is as easy as:

1.- Edit the local module signature file (the lmbs file in your module folder) and change the following:
The update version number (if you don’t do that, the update process won’t detect that an update has been done on the module).
The UpdateURL where this new version will be uploaded
The ShortDescription of this new release.

2.- Zip and upload the zip file to the UpdateURL. This has to be the same Update Url specified on the module signature file (lmbs)

3-. Upload separately you new lmbs file to THE SAME RemoteSignatureURL where previous version description was set (overwrite it).

That’s it! you’ve released an update for everyone.


Aman(Posted 2012) [#78]
So a user launch Jungle IDE, it will check the module database for the .lmbs file in each module and if it exist it will read it and if the .lmbs file in the RemoteSignatureURL is different it will initiate the update process. There is no need for the developer to contact you for his module to be supported by this method. But the user will not be able to download a new module through Jungle. He will only be able to update them.

If I got it correctly, this is very smart. It make things a lot easier.


Goodlookinguy(Posted 2012) [#79]
I got this bug in version B of the most recent update. Can anyone else confirm this same bug. http://www.jungleide.com/?page_id=33/jungle-ide-group4/bug-reports-forum7/autolist-acting-odd-thread266.0#postid-919


ziggy(Posted 2012) [#80]
@Aman: Yes, that's exactly how it works. But the update process will require 'acceptance' from the Jungle Ide user. All this process is done in a low-priority secondary execution thread, so if it takes a bit long, it won't affect the launch time of Jungle Ide in a noticable maner.
The idea is that the final module user does not even have to make anything to beneffit from this feature. He/She installs a new module and if it supports this, he/she will be automatically notified on any module update, and he/she will have the option to perform the update (ot not). This could help people be using latest stable version of modules even if they do not usually go to the official module site to check for any changes/fixes/additions.


ziggy(Posted 2012) [#81]
A new version is available. This new version contains the new text renderer discussed here: http://www.monkeycoder.co.nz/Community/posts.php?topic=2803

This is the changelog:
Jungle Ide 12.05.11-A
• Fixed a filtering issue that was making Generics to appear on all automatic autolists, even when the pre-entered content did not match.

• Fixed an issue that was making local scope for all Case clauses on a select/case sentence to be shared in the internal Monkey lexer.

• Fixed an issue that was making local scope for If / ElseIf and Else code blocks to be shared in the internal Monkey lexer.

• Fixed an issue that could make Jungle Ide crash when requesting a Fold operation on a document that had never had focus before.

• Fixed an issue that could make Jungle Ide crash when writing an integer value with exponential notation with a decimal exponent and the experimental smart text formatter had been enabled.

• Fixed: The "Go to line" dialog now properly focuses the line-number control and pre-selects text to allow faster navigation.

• Fixed an issue that could make Jungle Ide crash on requesting an intelliprompt item.

• Fixed several data provider calculation issues when there were some identifier clashes

• Added a notification window to the module updates management dialog, when there is an available module update.

• Added a new post-lexing text renderer to the Monkey language. This new text renderer can differentiate the kind of a token before coloring it, so you can have a specific color for Classes, Interfaces, Methods, Functions, etc. and everything is colored in a scope-based fashion. Given the complexity of Monkey. this can a little CPU intensive, so people with ultra small devices may disable this on the preferences dialog.

• Added code autocompletion for #Rem / #End

• Improved the data type inference calculator so it now supports much more complex expressions.

• Better handling of public/private members on autolists. Private members are excluded from lists when they're defined on another module.

• Added a Private identifier to private items shown on autolists

• Better handling of Find&Replace pre-selected text.

• ESC key now closes the go to line dialog, canceling the operation as in the Find and Replace dialog.

BREAKING CHANGE: All the color definition stored in the "Color Definitions" area, in the Jungle Ide Framework folder are not compatible with the new text renderer. New text color schemes will be stored on a folder called "Color Definition v2.0" Also, your current color scheme will be reset after this update, but all the pre-defined presets that were present on previous Jungle Ide versions have been redesigned for the new renderer, and they're available on the presets lists.

NOTE: The new lexed text rendering is performed on two passes. That can produce a slight flickering sometimes between passes. Everything has been designed to minimize this as much as possible while maintaining the multi-threaded optimized rendering. If your computer is too slow that it produces a very big flickering on text rendering, you can enable a "Force synchronization" parameter on the Monkey settings, on the preferences dialog. Not that we have had to activate on any of the computers this has been beta-tested but just in case...



Get the update due regular updates process (Help/Check for Jungle Ide updates).

The free Jungle Lite free version and demo will be updated soon too.

Enjoy!


wiebow(Posted 2012) [#82]
Nice. I thought this update has removed all my custom color schemes though, but you have added additional folders. Phew.


ziggy(Posted 2012) [#83]
I thought this update has removed all my custom color schemes though, but you have added additional folders
Old color schemes are not compatible with current version, you can move your self-made color schemes from the folder "Color Definitions" to "Color Definitions v2.0" in your Jungle Ide Framework folder, but they may look weird until you fine-tune them with the new additional token styles.

Edit: Small fix version has ben commit. It fixes a small isue with arratys refactoring


Samah(Posted 2012) [#84]
• Better handling of public/private members on autolists. Private members are excluded from lists when they're defined on another module.

<3 you. :)


Aman(Posted 2012) [#85]
This is a great update.
One minor suggestion: allow use of ctrl+c to copy from the output console.


Samah(Posted 2012) [#86]
One minor suggestion: allow use of ctrl+c to copy from the output console.

This.


ziggy(Posted 2012) [#87]
allow use of ctrl+c to copy from the output console.
It's been restored for the next update. It was a small filtering issue with the windows message. While it's not released, you can make it using the context menu.


BigAnd(Posted 2012) [#88]
Nice update Ziggy but I get quite a performance hit when I am scrolling through the bottom of a monkey file that is say, a couple of hundred lines long.

Is there anything I can do to speed things up?

I have a good spec PC and didn't have any problems with other updates.

Cheers.


ziggy(Posted 2012) [#89]
The performance hit you may be getting should not be related to the size of the source code file (or not very related). If you see a small combing, it's unevitable in current parser. You can enable the "Force lexer suncronization" option on the Monkey preferences dialog, but I'm not sure it'll be a lot better this way. This small swaping effect can only be disabled by disabling completelly the advanced lexed parser.
A double pass parser like this one has to be calculating things in two steps, one first step when the text is being tokenized, and a secondary step when each token is put in context. This second step is very complicated (it involves refactoring) and it's slow BUT it is calculated as part of the rendering, so it only happens one the text being displayed. That's why it can be seen when the whole page is scrolled (it re-calculates everything). There's not much I can do here, other than trying to optimize this step to make it as fast as possible.


BigAnd(Posted 2012) [#90]
Cheers for the info Ziggy and yes, I can imagine parsing a source file can get quite complicated, especially when we all code in different styles.


ziggy(Posted 2012) [#91]
Is there any chance I can see the file that is causing a slowdown? (I would keep it on private and delete after some testing)


BigAnd(Posted 2012) [#92]
No problem and I have sent you the file. Thanks again.


Neuro(Posted 2012) [#93]
Like the new colors :). But i did noticed the lagging now that it was mentioned, not a big deal though.


ziggy(Posted 2012) [#94]
But i did noticed the lagging now that it was mentioned, not a big deal though
It comes to a price. But the lag is very sligh and I think the benefits worth it. It can reduce dev time a lot. It will let you see if a local var is badly written just becouse it does not have the proper highlighting, or if you're refering to a class you have not imported, etc.. If you're using an instance to call a function or a const (instead of using the class name directly) etc etc.


BigAnd(Posted 2012) [#95]
Yeah, the benefits of the syntax colouring totally outweigh the small performance hit.


tOmzone(Posted 2012) [#96]
I finally got home yesterday and could test it. It works great!


ziggy(Posted 2012) [#97]
I've fiund a way to improve a lot the pre-calculated cache for token-kind recognition, so next verison will have a very nice performance improvement on the lexed parser. I'm now testing it on a 1,7 Ghz dual core pentium T2080 machine on a very big project and it works very fast.


BigAnd(Posted 2012) [#98]
Awesome news Ziggy. I look forward to it :)


ziggy(Posted 2012) [#99]
Ok, another update available. This time it gives a nice speed improvement.

This is the changelog:
Jungle Ide 12.05.22-A
• New feature: When mouse hoovers over a document tab caption, a tooltip popup is shown with information of the complete document path and location in disk.

• New cache system on the internal lexed text renderer that drastically increases drawing speed on low end hardware. This new system is internally based on a hashtable/array hybrid that used ilde time to pre-calculate tokens and brings a very nice speed improvement on all computer flavors.

• Fixed an issue that was filtering the Ctrl+C shortcut on the connection output text window.

• Added LINQ support to the C# parser

• Added Lambda expressions support to the C# parser

• Fixed an issue that was making the source code lines to not be displayed properly sometimes

• Jungle Ide now detects slow computers on the first-run wizard and gives the option to automatically self-configure with some CPU heavy settings disabled.


Jungle LITE and demo will be updated soon too.Jungle LITE and DEMO have been already updated.

Hope you enjoy!


Nobuyuki(Posted 2012) [#100]
hey!

Just a little thing: When switching between tabs in the documents, the line numbers in the statusbar don't appear to update until you move the cursor in the new document. Switching tabs should trigger a cursor position status update probably...


ziggy(Posted 2012) [#101]
@Nobuyuki: Fixed for the next update. Thanks for pointing this out, I hadn't noticed.


c.k.(Posted 2012) [#102]
Posting here, instead of there:

I'd like to be able to use my "back" mouse button (button 3?) to go back when I'm browsing the docs in Jungle IDE, instead of having to click the tiny "back" button on the button bar. That would be nice. :-)


ziggy(Posted 2012) [#103]
I'll take a look (not sure if this is a setting of the embeded explorer component, or something I can implement). anyway, the place I look at for Jungle Ide feature request is the jugnle ide community.


c.k.(Posted 2012) [#104]
OK, thanks ziggy!


BigAnd(Posted 2012) [#105]
Just installed the new update and the performance is great! Thanks again Ziggy.


ziggy(Posted 2012) [#106]
A new version is available as usual.
this is the changelog (including debugger support):
Jungle Ide 12.06.12-A

•Fixed an issue that was making Jungle Ide not update its line and char information on the Jungle Ide status bar, when the selected document was changed in the documents tab control.

•Added support for Monkey C++ debugger.

•Modified the way the "Replace All" operator works. Now it does not open all the documents where the replace operation is done. Documents can be modified without having to be on screen.

•Prevented Jungle Ide to crash on very large replace all operations.

•Added a "Generate List" option to the find and replace dialog, so a list of matches is generated and can be navigated from the Search and Replace dialog. This is a (better) alternative to the BLIde "Find in files" that has been requested before to be implemented on Jungle Ide. It allows all Search parameters.

•Added keyboard navigation support to our double buffered and double threaded tree component. This will allow keyboard navigation on the local shortcts tree, in the Find results list tab, and in the Debugging window.

•Fixed an issue that was making the icons on some of the tree views on Jungle Ide to be displayed with the wrong size on some computer configurations

•Fixed an issue that could make the automatic intellisense to have missing functions on its internal list of available items


Jungle Lite and demo will be updated soon too.


gekkonier(Posted 2012) [#107]
If it were also for osx, I would definitely buy it! But I know, its .net stuff ;)


muddy_shoes(Posted 2012) [#108]
Added a "Generate List" option to the find and replace dialog, so a list of matches is generated and can be navigated from the Search and Replace dialog.


It's good to see this added but I think the implementation misses some usability points that are normal in other IDEs.

* The results are put into an immovable tab in the S&R dialog that you have to switch to to see. Take a look at Visual Studio or Eclipse or most other IDEs and you'll see that the results are fed into a tab in the output area that can be viewed without swapping from the search form. This allows you to change your search and see the results without switching back and forth.

* Your results list just shows line and column numbers. This is of almost zero use to someone looking for specific uses of a term. Please add the line match text to the results list. Again look at Visual Studio or Eclipse etc. and they nearly all do this.


ziggy(Posted 2012) [#109]
Your results list just shows line and column numbers. This is of almost zero use to someone looking for specific uses of a term. Please add the line match text to the results list. Again look at Visual Studio or Eclipse etc. and they nearly all do this.

I'll add this for the next update.

The results are put into an immovable tab in the S&R dialog that you have to switch to to see. Take a look at Visual Studio or Eclipse or most other IDEs and you'll see that the results are fed into a tab in the output area that can be viewed without swapping from the search form. This allows you to change your search and see the results without switching back and forth.

Yes, I thought about it and I thought Jungle Ide does already have maybe too much floating panels... ? dunno, I would like to have feedback from more users, I really don't see like a bad idea to move it, and it would not be a complicated change or anything, but I don't want the IDE interface to be too bloated... so not sure. I would love to have some feedback from users (apart than the typical: make it optionaly dockable)


Tibit(Posted 2012) [#110]
Ziggy, since I'm using Jungle I just wanted to check if your update means all features of TED in incorporated in Jungle? i.e does Jungle do all the new debugger features of TED? Anything else that needs to be setup after upgrading monkey?


muddy_shoes(Posted 2012) [#111]
I thought about it and I thought Jungle Ide does already have maybe too much floating panels


I'm not sure what you mean by too many floating panels as I'm not asking for another panel, just that the search output tab can be moved to to the existing output panel.


ziggy(Posted 2012) [#112]
@Tibit: Latest Jungle Ide does support all the debugging capabilities available on latest Monkey, you don't have to do anything special. I've been developing this side-by-side while Mark was working on the Debugger, so it's been tested during last weeks and it's been proved to be stable and production ready. Just put a DebugStop whenever you want your application to enter debug mode on the GLFW target, and you'll be done.

To be honest (and I don't mean to sound bitter or something) I'm finding the debugger on Jungle Ide much more stable than on current Ted version, but that's somehow expected as Ted is just a baby and needs to mature.


ziggy(Posted 2012) [#113]
I'm not sure what you mean by too many floating panels as I'm not asking for another panel, just that the search output tab can be moved to to the existing output panel.
You mean just outputing the data to the output console?


Tibit(Posted 2012) [#114]
In large I agree with muddy_shoes, but here is my view on it:

1. It seems to me it does not search the entire project, only the currently open file? If so, why even generate a list - just [highlight]?

2. A really handy feature is "Jump to Definition". Likewise it is also really handy to have the backwards version of that "Find All Method Calls".

3. Now "Find All Method Calls" would be super mega awesome! But to me that is not a part of the Ctrl-F search, that is right-click method, find it beneath "Jump to definition". See point 5 for how I suggest that would be implemented.

4. What is the purpose of a "Find All" if it only searched the current file? A much neater feature is then instead that when the user selects some letters in a document all matches in the current document are selected - Meaning you get instant search & feedback, instead of having to type into Find, clicking a button, viewing a list, clicking in list to see.

5. A "find in files" feature. Or search project for... That is also handy, not as handy, but sometimes it is useful, but mostly that is only when said feature 2 above does not exist. If this feature is what we are talking about I would recommend you attach the search-result list as a "tab" in the "output Console" and if user clicks "Find All/Genereate List" then this tab is selected, once the Search window is closed, the output tab switches back to default. I do not think it is handy to have the generated list in the small floating "Find and Replace" window. The output console probably already have the optimal size to display searches because of its width.


ziggy(Posted 2012) [#115]
It seems to me it does not search the entire project, only the currently open file? If so, why even generate a list - just
Yes it does, just select the desired search scope in the "Find" tab (This file, all open files, all files, etc.)

Likewise it is also really handy to have the backwards version of that "Find All Method Calls"
That won't happen untill I get a better support for delegates, so I can provide a more complete refactoring sceheme on Monkey (I'm going in this direction, just not yet there, and not as easy as it seems).


muddy_shoes(Posted 2012) [#116]

You mean just outputing the data to the output console?


Again, I'm not sure what differentiation you're making between moving the results tab to the output panel and outputting the data to the output panel. VS puts the results into a tab. That tab is movable to other tabbed panels or can be placed on its own, but the default (at least for me) is for it to attach to the general output panel with the compiler output etc.

I don't know what capabilities your docking library has but right now the results tab can't be separated from the S&R panel. If it's a problem for it to be made dockable then I'd just prefer the output to be in a tab on the output panel and not the S&R panel.

While we're at it, the results tab has the "Generate List" button on it and also the title "Results for:" element is a text entry that can't be edited but can be focussed. I can't work out what either of these features are for.


Tibit(Posted 2012) [#117]
@Ziggy, awesome! Right now Jungle IDE is killing it on the Monkey IDE-front in my oppinion. Awesome that you worked with Mark on that :)

@Find All - Also think you should put the output in the output console in a new tab.


ziggy(Posted 2012) [#118]
Again, I'm not sure what differentiation you're making between moving the results tab to the output panel and outputting the data to the output panel. VS puts the results into a tab. That tab is movable to other tabbed panels or can be placed on its own, but the default (at least for me) is for it to attach to the general output panel with the compiler output etc.
That would mean to create a dockable panel with the search results, and put it in the same location as the Output console (at the bottom of the IDE) as its default position. That's what VS does for me, so you can detach if from there and place it anywhere else. That's easy to do, but I was trying to avoid more dockable panels in the IDE, I understand the benefits of splitting it and removing this output from it's current location. I'll do *something* for the next update to improve this.
While we're at it, the results tab has the "Generate List" button on it and also the title "Results for:" element is a text entry that can't be edited but can be focussed. I can't work out what either of these features are for.
The Results for: just shows what was the searched item that generated the list, and the Generate List just generates the list again (sort of refresh list).


FelipeA(Posted 2012) [#119]
I have a question.

Can I set in some way that when autocomplete shows with just pressing ENTER the word is added. Most of IDEs I've worked on have that and it's almost natural that I press enter when autocomplete shows.

Thanks!


ziggy(Posted 2012) [#120]
@ilovepixel: You mean that you want Jungle ide to not add a new line when you press enter on the code completion box? You can configure this on the preferences dialog. Go to: Tools / Preferences and uncheck the "start a new line after pressing enter on autolists"


muddy_shoes(Posted 2012) [#121]
I was trying to avoid more dockable panels in the IDE


I'm not sure why you think this is a problem when we're not talking about a dockable panel that must be separate, we're talking about a panel that can be separate or a tab, as you wish. Having a docking framework and then deciding that you are going to stop your users making use of that framework to arrange their UI in a way that you personally don't approve of is a bit weird.

The Results for: just shows what was the searched item that generated the list


Uhuh. I can read the text. What I don't understand is why it's a non-editable text entry field that can capture the cursor.

the Generate List just generates the list again (sort of refresh list).


It's not really a refresh of the search that generated the list. It runs the search query with whatever is now in the search entry field. That's very different to maintaining a search history or similar.

I don't see that I gain from having this fairly large button taking up room in the results area. The results area is used to show a lot of data and needs the space. On the other hand it seems a very rare occurrence that I'd want to search then type a bit and then check if what I just typed contains the search term. If I did then doing so via the normal search entry seems perfectly acceptable, particularly if the results are separated.


ziggy(Posted 2012) [#122]
I'm not sure why you think this is a problem when we're not talking about a dockable panel that must be separate, we're talking about a panel that can be separate or a tab, as you wish. Having a docking framework and then deciding that you are going to stop your users making use of that framework
I have got coplaints in the past (I remember on BLIde) that the ide layout was too complex and it had too many things, so I'm trying to be conservative in this area and only produce a new dockable panel when it is really needed. I don't say it is not in this case, I'll implement it for the next update, but I try to avoid it when possible.
What I don't understand is why it's a non-editable text entry field that can capture the cursor.
It's a design decision. Not sure where the problem is with this (if there's any). I wanted a way to display latest search, even when the searched therm was long enough to not fit on the window width, and I didn't want to use a regular "label" as it would get truncated or require elipsis, so a uneditable text view, wich you can scroll using the regular cursor was a good idea IMHO. Much better than having a label that takes suddently two lines, gets truncated or just uses any other approach. I could also used a tooltip on case it was truncated when the mouse was over it, but I thought this was a better solution.
I don't see that I gain from having this fairly large button taking up room in the results area. The results area is used to show a lot of data and needs the space.
This is being reworked and improved for the next release (it will come sooner than regular updates).


muddy_shoes(Posted 2012) [#123]
Not sure where the problem is with this


The problem occurs when someone (me, in this case) sees that the list has a "generate" button and then clicks on the text to see if they can change the search. They're then stuck in a confused state where they get a text caret but can't do anything with it.

Using a neutered editable UI element where a display element is needed isn't something I think is ever justified. In this case the results text would be made unusable far before the label would be unreadable. If you make the tab movable the problem goes away anyway.


ziggy(Posted 2012) [#124]
The problem occurs when someone (me, in this case) sees that the list has a "generate" button and then clicks on the text to see if they can change the search.
I agree it could have been more intuitive. As this is going to be redesigned, I don't see the point of discussing it but it's common that when something is added to an application it may require a small learning process. I hope it'll be more intuitive on the next release, but it can happen that it can be not exactly as you would have expected or as you would have done it. I take all constructive comments as I hope you can see. But I still think that using the "neutred editable UI element" was justified. I had considered it before implementing it, it was not a random decision. Anyway, I don't think it'll be staying with the new design.


muddy_shoes(Posted 2012) [#125]
it's common that when something is added to an application it may require a small learning process


I'd hope that you realise that I'm not unfamiliar with software development, UI design or user feedback. Of course I understand that there's a process. I'm being part of that process by telling you about my experiences and opinions as a user.


ziggy(Posted 2012) [#126]
@muddy_shoeS: Yes! and I appreciate it a lot as its being very constructive, as it's been in the past. That's why I'll be redisigning a bit the whole search lists. I plan on releasing an update very soon, with also an update to Jungle Lite and Jungle Ide DEMO. If it was not clear enough in my previous comments, I truly apreciate all your feedback as it's helpful and alows me to improve Jungle Ide. When you're designing a GUI for a task, it's very easy to make it not as intuitive as you would like, just becouse you're sometimes too focused on its internals, that you can get lost on the way this funcionality is presented to the final user, and that's what I think has happened to me a bit with the new search lists functionality. It works, but it is not presented in a way that the final user can easilly use it in its whole possibilities. Hopefully this will be ironed out on the very next release.

EDIT: This thread continues here. (if any mod can block this too big thread...)