Mollusk IDE v1.90 -- April Update

Monkey Forums/Monkey Programming/Mollusk IDE v1.90 -- April Update

grudlux(Posted 2015) [#1]
Visit this webpage to get the latest Mollusk version:
http://www.grudlux.com/mollusk/

---------------------------------------------------------

Hi all,

There was no Mollusk IDE release in February, but the good news is I was working on a pretty important v1.70 release, which is now available.

The biggest change, which many users asked for, is official support for Unicode characters and UTF-8 file encodings -- instead of partial/buggy support! This took some effort, because it affected the editor, file I/O, compiler I/O, the syntax highlighter, lexer, code outline, etc. These should all work correctly with multi-byte characters, on both Windows and Mac now. (Please report any Unicode/encoding bugs!)

Other changes include:
- Recognition of new Monkey targets
- Option to use same zoom factor across all files
- Added zoom hotkeys on Mac
- Desktop games can now be killed from Mollusk on Mac
- Fixed highlighting/margin bugs
See the full changelog: http://grudlux.com/mollusk/versions.txt

Webpage: http://grudlux.com/mollusk/
Updates for full version: http://grudlux.com/mollusk/download.php
Demo download: http://grudlux.com/mollusk/Mollusk_Demo.zip

Cheers!


Jesse(Posted 2015) [#2]
Thanks grudlux. Much appreciated!


skape(Posted 2015) [#3]
Thanks grudlux!

By the way, unrelated: did you write Paddle in PureBasic using SDL, somehow, or did you write it in C (if so, what did you use for the interface)? :)


computercoder(Posted 2015) [#4]
Very cool. Looking forward to the changes you've made :) Thanks for the update grudlux!


Difference(Posted 2015) [#5]
Great! Thanks for the update.


vic(Posted 2015) [#6]
I've just started using Mollusk recently and I definitely prefer it, it just made me wonder why Ted doesn't have the same functionality.
Anyway keep up the excellent work.


Difference(Posted 2015) [#7]
@grudlux : Did you ever get the time to look into a "Folders" feature. ( http://www.monkey-x.com/Community/posts.php?topic=5886&post=68422 )

It is the one thing I'm really missing in Mollusk, because I open/close module files (my frameworks) , and open/close project files all the time.
Going up and down the folder tree often sends me back to Ted, because the "Projects" feature does exactly what I need.


nack(Posted 2015) [#8]
Thanks for the update, was just in the mood for a new IDE


grudlux(Posted 2015) [#9]
Thanks for the nice feedback.

@Difference -- I have not worked on that yet. But, now that some long-overdue features have been implemented, maybe a "Projects" feature is next...

@Unlikely -- You are right, Paddle is written in PureBasic but it uses SDL 2 for more advanced gamepad functions. I hope some people find it useful! :)


Difference(Posted 2015) [#10]
@grudlux : That would be great.

I've stuck with Mullusk a little longer this time. It's very nice to use!
After a longer period of coding C# in Visual Studio Pro, I've really come to appreciate auto-complete and such features again.

If you should need inspiration for future enhancements, here are my 2 cents:

One really useful VS feature is the ability to "Jump to definition" .VS lets you right click on a statement or variable, and jump to where that function/method/variable resides.
VS does so by opening the correct source file and jumping to the line where the Method/Function/Variable is declared.

Also the autocomplete popup, that lists what parameters a funtions expects is really handy, but a "Jump to definition" would kind of solve that too.


pit(Posted 2015) [#11]
Hi Grudlux,

1) congratulation for the work you did !
2) I think I will immediately buy the app
3) I just tested the demo. One problem on one suggestion.
- problem: on my Mac (yosemite), the .monkey code files are allways loaded "zoomed" in the window. So I have to do some "cmd"+"-" in order to see them in the 1:1 format. Bug or something to do in order to avoid this ?
- suggestion: in the finder window, replace the "[+]" by a folder icon

cheers

Pit


pit(Posted 2015) [#12]
Hi Grudlux,

I bought the app. :-)
still my question and my suggestion:
- problem: on my Mac (yosemite), the .monkey code files are allways loaded "zoomed" in the window. So I have to do some "cmd"+"-" in order to see them in the 1:1 format. Bug or something to do in order to avoid this ?
- suggestion: in the finder window, replace the "[+]" by a folder icon

cheers

Pit


grudlux(Posted 2015) [#13]
Hello! There's a new Mollusk update tonight, version 1.80!

I know I've been quiet on the forums, because (like v1.70) this was a long update with a lot of work behind-the-scenes. Some users have been giving me feedback via email too, which is helpful!

The main changes are:
- The entire GUI language is now customizable!
- A new 'Projects' sidebar tab, similar to the Ted IDE
- 'Clipboard History' feature in the right-click menu (I personally like this feature)

About the language setting -- Mollusk only comes with the default English language right now.
If anyone wants to customize and translate, see Preferences > Language > Create New Language File and start editing!
Please email me any language files you finish (or post them here) if you want them posted on the Mollusk webpage (or maybe included with Mollusk in the future).

Version 1.80 changelog: http://grudlux.com/mollusk/versions.txt
Webpage: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php
Demo download: http://grudlux.com/mollusk/Mollusk_Demo.zip

Cheers!


Sensei(Posted 2015) [#14]
Cheers matey.

Good to see an update again.


Gerry Quinn(Posted 2015) [#15]
Nice. One very minor bug is that the default project area background is set to black in the Windows version.

I'm mostly annoyed with myself because I hadn't realised sessions were already implemented long ago - most of what I wanted from 'projects' (and why I downloaded this version when I saw they were there) was sessions, and I could have been using them all along :-D


grudlux(Posted 2015) [#16]
@Gerry - Black text on black background? I will check that, it should use your "Code" sidebar colors by default...


Difference(Posted 2015) [#17]
Really looking forward to testing this, but I get the Black text on black background too.


Gerry Quinn(Posted 2015) [#18]
It's not a major issue, you can just set it in preferences, Probably a typo in the defaults or something.


Difference(Posted 2015) [#19]
It's not a major issue, you can just set it in preferences, Probably a typo in the defaults or something.

Thanks, did not realize that.

Trying out the Projects feature now... It's Great!
Thanks grudlux ! :-)


grudlux(Posted 2015) [#20]
Yes, that was a small but annoying mistake in the default Projects colors. Sorry about that!

It is already fixed for 1.81 (maybe I will release that immediately to solve this color bug).


skape(Posted 2015) [#21]
Thanks for the update! :)


grudlux(Posted 2015) [#22]
June 18: Version 1.81

I've uploaded a new version, 1.81, specifically to fix the default colors of the 'Projects' sidebar.

[If you've already downloaded/run version 1.80, and the Projects sidebar defaulted to black-on-black, you just need to open the Preferences > Colors and Styles, ensure the 'Projects: Background' is white (or your choice) and click OK.]

Changelog: http://grudlux.com/mollusk/versions.txt
Webpage: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php
Demo download: http://grudlux.com/mollusk/Mollusk_Demo.zip


pit(Posted 2015) [#23]
Hi Grudlux,

little bug in the HELP frame.

I go to this help page:
HOME / IGNITION / IGNITION QUICK REFERENCE GUIDE.DATA / HOW TO SETUP A TILESET
at the end of the page there is a link to the source code
if you clic on it ...

ON TED
the source code is open in the main source window

ON MOLLUSK
Nothing happen


skape(Posted 2015) [#24]
Same thing with the mojo2 examples, for example. It is the file:// URL protocol that is being ignored.


grudlux(Posted 2015) [#25]
Hi guys. That sounds like a simple feature to add, I will try it out right away.


Leo Santos(Posted 2015) [#26]
Excellent stuff! A few minor suggestions:

- Currently you have Find/Replace mapped to both command+R and command+H. Could you remove the mapping for command+H, since it is an important OS X shortcut? (Hide Application)

- Can you add a "Toggle comment" feature (ideally, "command+/", to match other text editors) that toggles an apostrophe character at the beginning of the line? It's really useful when commenting out multiple lines.

- Is it possible to change the color of the application border? It's nice that the editor colors can be changed, but when using a dark color scheme the window borders become really distracting. Another idea would be to nearly remove the borders, like making them 1 pixel wide, but I'm not sure how the tab buttons would look like in this case.

Here's how my color scheme looks like now, it would be great to be able to approximate the window border colors to that editor bg color:


And here's my color scheme (I'm using the Monaco font):
https://dl.dropboxusercontent.com/u/446189/Images/Golden.mtheme
[edit] Just updated this theme with minor fixes.

Cheers!


GC-Martijn(Posted 2015) [#27]
funny, some days ago I was trying this IDE and the first thing what I did was changing the font to Monaco and use the same colors like sublime.
I don't made many hours with this IDE but the only thing I had in sublime is that the Build log output was at the bottom, below the code.
And CMD+B was build and run.


Neuro(Posted 2015) [#28]
Couple more themes for Mollusk if anyone is interested :

Monoish
Moss

Moss :




skape(Posted 2015) [#29]
Heh, Neuro, I wonder how similar your 'monoish' is to mine that I posted a year or two ago? Interesting naming coincidence. ;) Thanks for that theme Leo! :)

[EDIT] Ah, it appears to be the same, but I have made some additions since then w/ Mollusk's newer highlighting abilities. Here is an updated 'monoish':

Monoish




Neuro(Posted 2015) [#30]
Actually i think it is as i downloaded it a while back so probably was yours :). Thanks for the update though.


grudlux(Posted 2015) [#31]
little bug in the HELP frame.


Fixed for the next version.

Could you remove the mapping for command+H, since it is an important OS X shortcut? (Hide Application)


Removed for the next version (on Windows it remains as a Replace hotkey).

Can you add a "Toggle comment" feature (ideally, "command+/", to match other text editors)


There is not currently a "toggle" comment hotkey, but there are "add" and "remove" comment hotkeys (Cmd+M and Cmd+Shift+M) which might work for you. Maybe I could implement both. Usually I prefer the "add/remove" style for commenting blocks of code. How should "toggle" handle this case?

lineOfCode()
' this line is already commented -- should it UNcomment when this block is toggled?
anotherLineOfCode()


Is it possible to change the color of the application border?


Should be possible. I will try this tomorrow.


Leo Santos(Posted 2015) [#32]
The toggle comment hotkey would check the line for an apostrophe as the first character (ignoring spaces and tabs). If found, removes it. If not found, adds it. Since you already have the add/remove functions it should be really easy to handle!

As for the Mac specific shortcuts, one thing that would eliminate that kind of problem is a way to customize hotkeys.
Thanks, and good job!


grudlux(Posted 2015) [#33]
Can you add a "Toggle comment" feature (ideally, "command+/", to match other text editors)


Added today for the next version. Send me an email if you want to test a quick beta version.

Is it possible to change the color of the application border?


Tried it today. Mostly worked, but I haven't found a way to change the color of everything (splitters, status bar, etc.) so it still looks somewhat funny. Hmm.

one thing that would eliminate that kind of problem is a way to customize hotkeys.


Fully customizable hotkeys are another long-standing to-do feature... I know I started it before, gotta look back at what roadblocks I ran into.


Also, thanks for the constructive feedback everyone!


Leo Santos(Posted 2015) [#34]
Awesome, thanks for looking into all those suggestions!


Gerry Quinn(Posted 2015) [#35]
But people will try to use 'Toggle comment' to comment out blocks of code - and if there are comments in the block, it will turn them into code!

If you are going to do this, maybe 'Add Comment Token' and 'Strip Comment Token' would be better. The latter would remove the first comment marker from the line, if any. Anyway, just an idea. I doubt I would use either version much anyway.


Leo Santos(Posted 2015) [#36]
But people will try to use 'Toggle comment' to comment out blocks of code - and if there are comments in the block, it will turn them into code!


You're absolutely right!
The way Xcode and Sublime Text implement this when toggling blocks is a bit more complicated. The whole block is switched the same way - either adding or removing the comment character. I think how Sublime handles it is by always adding the comment if there is any line of code (non commented) in the block, and always removes the comment if all lines are commented. I think. Anyway, works quite well, probably editors like Visual Studio have something similar as well.

Cheers!


grudlux(Posted 2015) [#37]
The whole block is switched the same way - either adding or removing the comment character.


Yep this is how I implemented it yesterday. I played with a few other language IDEs to find a good behavior. (I think I prefer this to the existing Ctrl+M and Ctrl+Shift+M hotkeys...)

all code <--> all commented
all comments <--> all uncommented
mix of code + comments <--> all commented (existing comments are now doubly commented)


grudlux(Posted 2015) [#38]
July 16: Version 1.82 is now available!

An update mostly based on feedback in this thread, plus many fixes of quirks you may not have noticed...

Changes:
    Added:
      New (nicer-looking) 'Finder' browser on Mac sidebar
      New 'Toggle Comments' hotkey (Ctrl+/ or Cmd+/)
      The 'Projects' sidebar now saves your vertical scroll position
    Fixed:
      Code files clicked in the 'Help' browser now open inside Mollusk
      Bug when loading sidebar font settings
      Many sidebar quirks, especially in 'Projects' and 'Explorer/Finder'
      Small memory leak at exit
    Removed:
      Cmd+H 'Replace' hotkey on Mac (so you can use the OS 'Hide' hotkey)


Changelog: http://grudlux.com/mollusk/versions.txt
Webpage: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php
Demo download: http://grudlux.com/mollusk/Mollusk_Demo.zip

Work on v1.83 has already started :)


Leo Santos(Posted 2015) [#39]
Works great so far. Thanks for the update!


pit(Posted 2015) [#40]
hi grudlux

the problem in the help (link to a source code) seems to still there ?

cheers

Pit


GC-Martijn(Posted 2015) [#41]
@grudlux

My personal editors are as clean/flat as possible, everyone does have their own colors and feeling about this.
Maybe you like this new possible concept design for the tabs and gui.
I din't had the time to design the topbar, and the whole thing only some small things.

see the full size using this link.
http://postimg.org/image/4tzte59rt/

this one is cropped in this forum



- build log is now at the bottom, because it contains lot of text horizontally
- Help at the bottom
- Finder, don't use that
- removed the light toggle buttons, I think nobody use that very often, maybe once a day. put it in the menu or topbar
- i'm using the sublime color format, but that is personally
- the green line, is the active locked build
- the light yellow is the actual tab opened, to close a tab do a double click on it
- project, one click is opening the file. din't had the time to make light icons, maybe make it a option to show icons
- code method/object viewer , use tabs and some colors and variations.

in photoshop the font is much more smooth than in the actual ide, maybe there is some optimisation you could do ?
I use two fonts at the moment
- Myriad Pro for the tabs
- Source Code Pro (https://github.com/adobe-fonts/source-code-pro)


GC-Martijn(Posted 2015) [#42]
Here with the menu and code editor.

full size link: http://postimg.org/image/8pouc86b7/



- one thing that make more sense I guess is that the code viewer has the same colors as the code editor.
- I don't like the red color inside the code editor, but din't had the time anymore to fix that.
- only two icons are used.

I can give the .psd file if you need it ?


grudlux(Posted 2015) [#43]
@pit -- The Help links are working for me, just tested again on Windows 7 and OS X 10.10. Can you right-click and "Copy Link" so I can see what format the URL is??

@GC -- Thank you for the detailed feedback! I only have a minute right now, but I will be back with some comments later.


pit(Posted 2015) [#44]
Hi Grudlux.

The link to source code in the "samples" page of the monkey's help are working fine.
what is not working is the link to source code of the "ignition" help which is incorporated in the monkey's help (and tjis is working fine in TED)
here is the link:
file:///Applications/MonkeyXPro/docs/html/data/Ignition%20quick%20reference%20guide/Ignition%20X%20built-in%20delta%20timer.data/example_01.monkey


grudlux(Posted 2015) [#45]
Ah, it looks like the %20 in the URL are not being decoded to spaces, so it doesn't correctly point to the file on your drive. I will fix that right away.

EDIT: Fixed for the next version (which should be fairly soon). On Windows it was already handling spaces correctly.


pit(Posted 2015) [#46]
thanks grudlux !


Danilo(Posted 2015) [#47]
Could you add support to highlight and compile .monkey2 files, please?


skape(Posted 2015) [#48]
@GC: I really like your mockup. I'm a fan of simple, flat, design as well. :)


pit(Posted 2015) [#49]
hi grudlux,


still some totaly minor "bugs" with the cursor.
when on the help page, the cursor remain in the "editor" appearance event if it is on a link (in this case, the cursor becom an arrow as in Ted)
when the cursor is on the tabs of the output panel (build log, app output) the cursor has the "editor" appearance (should be an arraow in this case)
between the editor panel end the two other on the right: when the cursor is on the bullet (for resizing) it doesn't allways has the "resize" appearance (on the bullet between the right-up and riught-down panels, it's allways ok)

cheers

pit


grudlux(Posted 2015) [#50]
@danilo - Yes I can add that.

@pit
The Help cursor: yes I have noticed that too, have not figured out why it's happening yet.
The Log cursor: This one seems OK to me. The "editor" cursor seems useful since you can select and copy text. (Unless the OS X standard is an arrow for non-typeable text?)
The resize cursor: I will check. Did not notice.

Also I apologize for the delay. Version 1.83 is coming soon, I had some unrelated emergencies last week!


pit(Posted 2015) [#51]
hi grudlux,

about the output panel: ok you are right. Best to keep the "editor cursor" as we can do selection for copy/paste. But in this case, the cusor should change his appearance to the arrow when it is on the tabs of the panel ("build log", "app output").

and thanks again for your work and your support !

Pit


grudlux(Posted 2015) [#52]
August 23: Version 1.83 is now available!

This version has a lot of obvious and not-so-obvious improvements, mostly to the sidebar panels.
There are some bigger changes in progress, but I wanted to get this v1.83 released to you before the end of the month... enjoy!

Changes:

Added:
  'New File' and 'New Folder' in Explorer/Finder right-click menu
  Setting to hide/show hidden files + folders in Projects sidebar
  Setting to hide/show hidden files + folders in Explorer/Finder sidebar
  'Browse' button (next to Folder Up button) in Explorer/Finder sidebar
  Setting to hide/show Light + Dark Theme (bulb) icons in toolbar
  Basic highlighting/build support for "monkey2" files
  Ability to customize recognized source extensions (see saved INI file)
  'Apply' keyboard shortcut to settings window (Ctrl+Enter)
Changed:
  Projects and Explorer/Finder sidebars now use OS native icons
  Split Toolbar and Sidebar settings into two separate pages
  Minor improvements to the save/open dialogs
Mac:
  Added 'Get Info' to Finder right-click menu (like Windows 'Properties')
  Finder 'Delete' now moves file/folder to the OS Trash
  Help browser can now launch code files with spaces in the file path
  Fixed some cursor glitches


Changelog: http://grudlux.com/mollusk/versions.txt
Webpage: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php
Demo download: http://grudlux.com/mollusk/Mollusk_Demo.zip


pit(Posted 2015) [#53]
Thanks Grudlux !

with such support, I never regret to pay for your product :-)

Pit


grudlux(Posted 2015) [#54]
Thanks pit. Just FYI there are still some strange Mac cursor glitches... I did not solve them all for this version, hopefully soon.


pit(Posted 2015) [#55]
well, cursor glitches are no drama. :-)

But I encoutered a new problem

in case of heavy app output via "Print" (in this case 14000 lines), there are performance problems with mollusk
the output is not displayed before a while
and when you quit the program which created the output, mollusk tak a while (with the wheel cursor) before to be again "up and runnning"

With ted, this is not a problem.

cheers

pit


GC-Martijn(Posted 2015) [#56]
There are some bigger changes in progress

will it be my concept design :) or no design changes ?


grudlux(Posted 2015) [#57]
@pit -- I did some testing with 100,000 Print lines in a loop.
On Windows, Ted and Mollusk both seem to "freeze" at a random point (sometimes ~5000, or ~8000, or ~14000.....) but they eventually finish and catch up.
On Mac, Ted seems to "freeze" too, but it recovers. Mollusk: you are right, it seems to freeze for a very long time.
I tested some quick changes which seem to prevent Mollusk from freezing, but it still seems much SLOWER than Ted. I will check it out more, and maybe send you a beta to test.

@GC-Martijn -- Maybe. The first step toward your version would be a customizable layout (panels and tabs wherever you want). That is a big change, since the GUI is mostly hard-coded right now, and doesn't use an existing customizable GUI library. I will see what I can do...


pit(Posted 2015) [#58]
no problem, i can to testing for you

thanks again

Pit


Sensei(Posted 2015) [#59]
Hi Grudlux. Wanted to say thanks for the update, and I'm not sure if the previous comments were to do with what I'm experiencing now. Every few seconds, Mollusk locks up for about a second. It's very annoying and I've had to revert to 1.82 which doesn't do it.
Doesn't matter if I'm doing nothing at all, scrolling or typing. It continuously locks up for a second, then resumes. Rinse, repeat. Running Windows 7.
Let me know if you need any more info/logs, etc. :)


grudlux(Posted 2015) [#60]
That's odd. I'm not seeing that problem at all, and I'm on Windows 7 right now.

My first thought is that the updated Projects/Explorer sidebars are locking you up when they periodically refresh. Let me try reorganizing some of that into a background thread and I'll try to send you a test version...


Sensei(Posted 2015) [#61]
@Grudlux, I'll update to the latest version on my Win10 laptop tomorrow and let you know if it works fine on there :)


MaxPower(Posted 2015) [#62]
Just playing with the demo of this IDE.Looks very nice so far,well done .Grudlux


Milky Joe(Posted 2015) [#63]
This looks great! I'm looking for a new Windows and OSX IDE to replace TED, and the feature list and price are spot on. Downloading the demo now...

Does Mollusk support themes? I like the light on dark theme that is found in newer versions of Visual Studio. I realise I can just tweak the colours myself, so not a show stopping feature requirement.

[Edit] Just found the light/dark theme buttons in the demo... Nice :)


skape(Posted 2015) [#64]
@Milky Joe
There are a couple of dark themes posted on the previous page of this thread. :)

@Grudlux
Thanks for the continued updates! Appreciated!


Waldo Reed(Posted 2015) [#65]
IgnitionX wants me to rebuild MonkeyX help in Ted. Not an issue on PC as I'm able to use Ted and Ted has a menu button to rebuild MonkeyX help. However, I cannot use 85e Ted on my Macbook running 10.8.3. How do I rebuild MonkeyX help in Mollusk so IgnitionX help is available in the IDE? Thanks!


ImmutableOctet(SKNG)(Posted 2015) [#66]
@Waldo Reed: Not a Mollusk solution, but you could run 'makedocs' from your "bin" folder.


Waldo Reed(Posted 2015) [#67]
Thanks, running makedocs_macos worked. I can access the IgnitionX documentation within Mollusk via Help -> Programming Guide -> 3rd party modules -> Ignitionx


grudlux(Posted 2015) [#68]
Hi Waldo,
I just added a "Rebuild Help" entry to Mollusk's "Help" menu as a final change for v1.84.


Pakz(Posted 2015) [#69]
Would be nice if there was an editor with sprite editor that reads/writes arrays of tile or sprite data. You know select array and select editor in screen or hotkey. If there were some basic game engines included (create project) with usefull editors then you could take on gamemaker :)


grudlux(Posted 2015) [#70]
Mollusk v1.84 is now available!

This is not a huge update, since I had a few very busy months, but it addresses some issues discussed here and in email.

Added:
  GLFW3+Angle target recognition
  Shortcut to Monkey version history in Help menu
  Shortcut to Rebuild Help (run makedocs) in Help menu
  Option to trigger context help when a keyword is auto-completed
Fixed:
  IDE no longer locks up when Printing 100,000+ lines
  When building unsaved code, less temporary files are now created
  Minor sidebar visual bugs
Windows:
  Reduced sidebar update lag on some systems
  Improved the look of the sidebar and file tabs on some systems
Mac:
  Cmd-Q hotkey now works within Preferences window


Changelog: http://grudlux.com/mollusk/versions.txt
Webpage: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php
Demo download: http://grudlux.com/mollusk/Mollusk_Demo.zip

Please let me know if you have any problems with the download or the software (the Demo download was acting funny in Safari this morning... seems to be working now?)


Jesse(Posted 2015) [#71]
Thank you Sir. I appreciate it!


patbou(Posted 2015) [#72]
One thing i would like: the possibility to print the code code i'm working on.

It's just a suggestion. Great work grudlux


Sensei(Posted 2016) [#73]
This update works well. Is there a chance you could implement the option to create regions of code you can collapse? Instead of just the usual looped statements like if/for etc.


grudlux(Posted 2016) [#74]
@patbou -- Printing is a low priority, since I don't think many people print out Monkey code, and I have no experience with Mac printer programming. In the meantime, you can export as HTML (with syntax highlighting), and print from your favorite web browser.

@Sensei -- What would be the preferred way to mark custom fold regions? By adding custom folding keywords? Some special mark in a comment line? Some action in the line number margin?

Version 1.85 is almost done, with a long-requested usability feature.


Sensei(Posted 2016) [#75]
Hey Grudlux. Whichever way suits you really. What I saw before was, you highlight a chunk of code and on the left of the border you get a - (minus) sign to collapse that section, as you already use now, but perhaps a different colour?

You could also perhaps use custom code but I think a WYSIWIG method like the highlight way is easiest to use and most intuitive. I suppose custom folding keywords in addition could be handy if you want to set a section of code to remain collapsed while you're coding?


secondgear(Posted 2016) [#76]
You could keep it compatible with Jungle and use

It would be beneficial for those who edit their code in both IDEs


Danilo(Posted 2016) [#77]
@grudlux:
Could you please add settings for colors (background, text, selection) and used font
for the "Intellisense" box? (I mean the popup for code completion)

Many thanks in advance!


grudlux(Posted 2016) [#78]
@secondgear -- Good suggestion! I should be able to add that for the next update.

@Danilo -- I would have liked to add that a long time ago. Unfortunately, this autocomplete box is a function of the Scintilla editor, and its colors are "hardcoded to the system settings" (author's comments here: https://groups.google.com/forum/#!msg/scintilla-interest/HGkj-XzM76E/1x0RYRGZWt4J). Could possibly replace with a custom Autocomplete window...


Sensei(Posted 2016) [#79]
Thanks for your work so far @grudlux. Still a huge fan of Mollusk. Just keeps getting better :)


grudlux(Posted 2016) [#80]
Mollusk v1.85 is now available!

The big change, long overdue, is that hotkeys are now customizable!
See the new "Keyboard Shortcuts" section in the Settings window.
Also added simple custom folding support, via special comment markers.

Added:
  Keyboard shortcuts (hotkeys) are now customizable in the Settings window!
  '#Region and '#End can now be used to create custom folding sections
  '{ and '} can also be used to create custom folding sections
Fixed:
  Reverse Find bug when query was 1 character
Mac:
  Fixed a visual glitch when maximizing window


Changelog: http://grudlux.com/mollusk/versions.txt
Webpage: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php
Demo download: http://grudlux.com/mollusk/Mollusk_Demo.zip

Converting the hotkeys from all hard-coded to (almost) entirely customizable involved a good amount of internal reworking, so let me know if you find any issues!


Sensei(Posted 2016) [#81]
Loving the custom folding, especially the shorter '{ '} version :)

It made me think, wouldn't it be nice, if you could have the title of the custom folds on the Code tab between the method names, perhaps in a different colour?
For example, if I put:
'{ Music stuff
loadsound("blah") etc..
'}


Then on the right you would see:
"Music stuff" which makes it instantly jumpable(bookmark anchor) and noticable if in a different colour?

Does that make sense?
Not sure if it's possible, but as it stands, I like!

Re the OS X glitch. I thought it was a El Capitan issue since it never used to do that on Yosemite (but then you were also not able to maximise it to fullscreen anyway).. I'd have told you otherwise!


grudlux(Posted 2016) [#82]
That's a good idea.

In the meantime, it's a little ugly, but you can combine the already-supported '? marker with the new folding markers:
'? Section A
'{
'}

'{ '? Section B
'}



Danilo(Posted 2016) [#83]
Thanks for the update, grudlux!

Is compiling MX2 files already supported? I can't get it to work.

Could possibly replace with a custom Autocomplete window...

Yeah, this would allow to set the size of the auto-complete window, change colors, and even add icons (like the code outline sidebar).

One option is still missing: Allow to change the "Build Log"/"App Output" position to be under the source code editor.
The sidebar is usually too small, that's why the build log is better under the editor. And if you want to make it really professional,
the build log window under the editor could have an auto-hide function. So it pops up automatically and gets focus, if text (compiler/app output)
is added to it. OnLostFocus or ESC key hides it, and in case of ESC, focus is returned to the editor control.


Difference(Posted 2016) [#84]
Thanks!
Looking forward to using this.
Since you put in the Projects feature, Mollusk as become my main monkey IDE.


TheRedFox(Posted 2016) [#85]
Question: How can one export settings to load them back up on another machine?


Sensei(Posted 2016) [#86]
@Grudlux, thanks mate! I wasn't aware of the '? section type code. That's good enough for me!


grudlux(Posted 2016) [#87]
@Danilo -- I will check MX2 files. As for the log, yes indeed, in the absence of a fully customizable GUI it would be useful to choose the log location. Should be fairly quick to implement.

@TheRedFox -- The easiest way is to the copy the .ini file. (Depending on your OS and version, it could be hard to find, a trick is to use Settings > User Interface > View Logs.) Currently, there is no way to export specific setting groups (besides color themes) so the settings file will include things like Recent File paths, etc. Could be improved in the future.


TheRedFox(Posted 2016) [#88]
@grudlux thanks a lot, will do nicely for me!


Difference(Posted 2016) [#89]
@grudlux : Can you make it so that cut/copy works on folded sections?
It's very handy, and MS Visual Studio allows it. At present, Mollusk only copies the visible text.


Neuro(Posted 2016) [#90]
Jungle IDE has this option where i can right-click on a variable or function, and "jump to definition" to see where and how its declared. Can this feature be added to Mollusk also?


grudlux(Posted 2016) [#91]
@Difference -- Can you explain what you mean? I just tried on Mac and Windows and they both worked as I expected. The entire folded section is copied -- ONLY IF the selection cursor goes all the way to the beginning of the next visible line. If the selection and cursor on the same line, nothing after that line is copied. Does MSVS do it differently?

@Neuro -- I could add that in the future. Jungle's current "intellisense" is definitely more advanced than Mollusk's.


grudlux(Posted 2016) [#92]
Mollusk v1.86 is now available!

MX2 is now "experimentally" supported,
the log panel can now be moved/toggled/auto-hidden,
and there are many little additions and fixes:
Added:
  Basic Monkey2 (MX2) support -- still experimental!
  Log position can now be changed (below sidebar/code/both)
  Log can be auto-hidden when typing, auto-shown when building
  Two customizable "Toggle Log" shortcuts
  New "Show (Current) File in Explorer/Finder" shortcut
  Named '#Regions now show up in 'Code' sidebar (can be hidden)
  Button in 'User Interface' settings to locate the settings file
Fixed:
  Improved window behavior on multi-display systems
  Targets dropdown when no valid compilers are found
  Minor main window and prefs window improvements
  Removed XML library dependencies
Win:
  Fixed creation of unnecessary temp files
Mac:
  Fixed sidebar icons that disappeared in v1.85


Changelog: http://grudlux.com/mollusk/versions.txt
Webpage and Demo: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php


As usual, let me know ASAP if there are any issues. Had some caching issues with the webpage, but it should all be resolved now!
Cheers!


Danilo(Posted 2016) [#93]
Wow! Nice update - thank you very much, grudlux!

Works with MX2 on Mac OS X, the log window can now be placed under the code, and it has an auto-hide feature. Very nice, really!




Difference(Posted 2016) [#94]
Thanks for what looks like anothe great update, will test real soon.
Sorry for not seeing your copy paste issue answer until now . Will test again, and report back!


Gerry Quinn(Posted 2016) [#95]
I haven't been using MX2 myself, but that's a nice update!


pit(Posted 2016) [#96]
great update !
thanks Grudlux !

Pit


Danilo(Posted 2016) [#97]
@grudlux:
Single-line statements like
If x Then blah()
should be excluded from folding, otherwise folding gets confused and wrong. See last screenshot above.


grudlux(Posted 2016) [#98]
Danilo,
Most single-line if statements should be parsed correctly, but you found one that isn't... will fix.


Danilo(Posted 2016) [#99]
@grudlux:
There are some more folding issues:
- After 'Extern', Methods and Functions within Classes & Structs do not have a body - it's just declarations and shouldn't be folded (there is no 'End')
- After 'Private' & 'Public' outside classes/structs (on main scope), functions and methods have a body again... and an 'End'

- MX2:
New keywords Struct...End & Enum...End are allowed everywhere (Extern/Private/Public sections).
As long as those are unknown, the 'End' is taken for the class end, for example.

I would like to remove the MsgBox after compilation errors. The compilation errors are already displayed in the build log,
so the additional MsgBox can be little bit annoying, and is not required. Maybe you can make it optional or display the
same message in the build log instead opening a MsgBox (if the build-log is opened)?

Thanks again for your support!


grudlux(Posted 2016) [#100]
Added Struct and Enum...
Added a setting to disable build error messagebox...
Method/Function no longer fold within Extern-Public/Private blocks...

Danilo do you want to test a 1.87 beta build to confirm these?


Danilo(Posted 2016) [#101]
Thanks! Can test because I use Mollusk+MX2 every day now.


grudlux(Posted 2016) [#102]
Great, check your email.

As a disclaimer: I don't Mollusk will "officially" support MX2 until MX2 is a bit further along.
However I will try to fix MX2 annoyances as they pop up, like Struct/Enum detection!


Danilo(Posted 2016) [#103]
Thanks grudlux! Works much better... just some small things remaining:

1.) New Keyword 'Protected' isn't highlighted like Public/Private

2.) Public/Private/Protected within Extern Classes do not disturb folding. Public/Private in Extern Structs do mess up folding

3.) Source Code between #Rem and #End is able to mess up folding, especially if there is an 'End' or '@end' in it:
'
            #Rem monkeydoc Audio - Streamed music played from an audio file

            Musics are sounds that are streamed rather than completely
            loaded in memory. This is especially useful for compressed
            musics that usually take hundreds of MB when they are
            uncompressed: by streaming it instead of loading it entirely,
            you avoid saturating the memory and have almost no loading delay.
            This implies that the underlying resource (file, stream or
            memory buffer) must remain valid for the lifetime of the
            [[sf.Music]] object.

            Apart from that, a [[sf.Music]] has almost the same features as
            the [[sf.SoundBuffer]] / [[sf.Sound]] pair: you can play/pause/stop
            it, request its parameters (channels, sample rate), change
            the way it is played (pitch, volume, 3D position, ...), etc.

            As a sound stream, a music is played in its own thread in order
            not to block the rest of the program. This means that you can
            leave the music alone after calling play(), it will manage itself
            very well.

            `Usage example:`

            @example
            Enum blah
            End

            ' Declare a new music
            Local music := New sf.Music()

            ' Open it from an audio file
            If Not music.openFromFile("music.ogg")
                ' error...
            EndIf

            ' Change some parameters
            music.setPosition(0, 1, 10) ' change its 3D position
            music.setPitch(2)           ' increase the pitch
            music.setVolume(50)         ' reduce the volume
            music.setLoop(True)         ' make it loop

            ' Play it
            music.play()
            @end

            `See also:` [[sf.Sound]], [[sf.SoundStream]]
            #End

I think it's enough to fold the whole #Rem..#End block and ignore everything in-between.

That's all I can find now, and thanks again! Disabling the Error-MsgBox is also nice. :)


grudlux(Posted 2016) [#104]
1. Added

2. Can you post an example showing what works / doesn't work?

3. I've disabled folding in #Rem blocks again (except for #If/#End and nested #Rem).
I had some code in there specifically ENabling folding in #Rem blocks, but I don't remember why... maybe there were some cases where it's preferred? I should look back.


Danilo(Posted 2016) [#105]
> 2. Can you post an example showing what works / doesn't work?

It's just Extern Structs with Public/Private in. Other things working fine so far.
Extern

    Class TheClass                          ' Okay, working
        Public
            Method PublicMethod:Void()
        Protected
            Method ProtectedMethod:Void()
        Private
            Method PrivateMethod:Void()
    End

    Struct TheStruct                        ' Public/Private within Extern Struct: Not Okay
        Public                              ' out-comment Public/Private and it works
            Method PublicMethod:Void()
        Protected
            Method ProtectedMethod:Void()
        Private
            Method PrivateMethod:Void()
    End


Public

    Function Main:Void()
        Print("Main()")
    End

Private

    Function realFunction:Void()
        ' body
    End



' End



Danilo(Posted 2016) [#106]
@grudlux:
Not sure you got my last eMail about Lambda...End folding in MX2!? Sent it two times already.

Anyway, would be nice if you could add double-click support for '#Import' files.
Means, double-clicking on a line containing '#Import' opens that file in Mollusk.
Could be done for MX1 and MX2 Imports. I think that's very useful (like PureBasic Include files).


grudlux(Posted 2016) [#107]
Hi Danilo, yes I saw your email and fixed Lambda (as far as I can tell) last week. Sorry I did not reply.

I can send you another beta to verify. Double-clicking should be easy too. I believe I have 2 quick things remaining for 1.87, should be ready soon.


Danilo(Posted 2016) [#108]
No problem, I'm waiting for MX2 v1.0 anyway...


Leo Santos(Posted 2016) [#109]
Thanks for keeping this updated!
Using it mainly with M2 right now.

When you have time, there's a couple small things that could use some attention:

- On a Mac, "alt+left" and "alt+right" bring up the help panel. Would it be OK to remove this mapping, since the help panel is already mapped to F1? These shortcuts are normally "Jump to previous word" and "Jump to next word" on OS X, and I miss having it on a text editor. They complement "Cmd + Left" and "Cmd + Right" (Jump to end or beginning of line), which are working fine.

- On that same note, "alt + up" and "alt + down" should be "jump to beginning or end of a paragraph", which is the OS X norm. "Cmd + up" and "Cmd+down" are working fine ( jump to top and bottom of page ).

- In M2, the "debug" checkbox doesn't do anything - it's always compiled to debug mode.

Thanks!


grudlux(Posted 2016) [#110]
Hi Lee,

Alt-Left/Right -- those are currently assigned to Help Back and Help Forward. You should be able to remove them in the Preferences / Keyboard Shortcuts.
Alt-Up/Down -- I will add the OS standard functionality if I can (new release coming quite soon).
MX2 -- I have not been using MX2 much yet. Does it have working Debug/Release functionality now? (Where is the latest version posted??)

Thanks for the suggestions!


grudlux(Posted 2016) [#111]
Mollusk v1.87 is now available!

Added:
  New "External Tools" subsystem - trigger executables upon IDE actions
  More folding/highlighting keywords for MX2 ***
  Debug/Release and Emscripten target for MX2 ***
  Ctrl-DoubleClick to open an Import or #Import file
  Option to disable popup message upon Build error
  'Paste As Comment' keyboard shortcut (Ctrl/Cmd-Shift-V by default)
  Basic Find history (press Up/Down in 'Find' window)
  More MX constants are now auto-completed (for example, CHAR_*)
Fixed:
  Improved single-line/multi-line If detection
  Improved folding start/end detection
  Default language bug in 'Language' dropdown
  Minor 'Preferences' window improvements
Win:
  Fixed cosmetic bug in Edit Keyboard Shortcut window
Mac:
  Alt-Up/Down/Left/Right now mimic OS X standards
*** All MX2 support is experimental!


Some small features and fixes, better support for MX2,
but the biggest feature is the new "External Tools" subsystem (see Preferences / External Tools).

It allows you to trigger external executables upon various actions: eg. hotkey, menu item, close IDE, save file, before a build, etc.
You can pass lots of information about Mollusk / Monkey / the active file,
through commandline macros (such as %FileName%, %Compiler%, %Line%...)
or environment variables (such as Mollusk_FileName, Mollusk_Compiler, Mollusk_Line...)

Simple Windows example:
Maybe you want a hotkey to launch a terminal in the active file's folder.
1. Add a Tool, browse for cmd.exe
2. set the Working Directory to %Folder%
3. and select one of the Shortcut triggers (you can double-click it to set a custom shortcut here, instead of navigating to Preferences / Keyboard Shortcuts)
That's it! Accept these settings and you should be able to press a hotkey to launch the terminal.

You can do much more complicated things, like pre-process source code before building.
Feel free to experiment, and ask questions here in the forum.

Changelog: http://grudlux.com/mollusk/versions.txt
Webpage and Demo: http://grudlux.com/mollusk/
Updates for full version users: http://grudlux.com/mollusk/download.php

If you find bugs, post them or email me. Otherwise, enjoy!


Leo Santos(Posted 2016) [#112]
Everything seems to work for me now.
Big thanks!


Difference(Posted 2016) [#113]
I've been using Mollusk more consistently lately, and it's very nice.

I have one important issue:

[BUG] On Mac, El Capitain, I get crashes when clicking the left arrow, to view previous tabs, when enough files are open to show that arrow.
It is not every time Mollusk crashes, but unsaved edits are lost.


grudlux(Posted 2016) [#114]
I will check out that crash on Mac (not happening on Windows).

Got a little behind lately (changing web hosts, family emergencies, etc.) but I am preparing the next Mollusk update soon.


Leo Santos(Posted 2016) [#115]
I've been using it quite a lot (OS X).

The only bug I consistently run into is that sometimes, when an error occurs, a new tab with the file that caused the error opens even if the file is already open on a different tab. I've had some problems where the contents of the two tabs are different even though it's the same file and I've lost edits as a result. A simple check to see if the file is already open before creating a new tab would fix the issue.

Thanks!!!


grudlux(Posted 2016) [#116]
Hi Lee,
That simple check is of course in there :)
But on Mac the reported error file is sometimes formatted slightly differently (not sure if the OS or MX compiler causes it?) so it opens as a different file.
I handle some of these cases, but apparently not all.

Is it happening with Monkey or MX2 ?
If you have a file + error combination which consistently causes that bug to happen, I can send you a quick beta to diagnose it...

Thanks for informing me! I will investigate.


Leo Santos(Posted 2016) [#117]
I've been using Monkey2 lately.

I always run into the duplicated tab issue when working on a larger project with several imports, files in different folders, etc. But when I try to reproduce using a simple example I can't... :-/

Will keep an eye for it, and if I figure it out exactly what causes it will let you know. Thanks!


grudlux(Posted 2016) [#118]
Mollusk v1.88 is now available!

Added:
  New "Quick Replace All" function (see Keyboard Shortcuts)
  More recognition of MX2 keywords and data types
  Very basic support for MX2 help files
  Portable mode (save settings INI locally) if "portable.dat" file exists
Fixed:
  Fixed rare crash when saving settings
  Minor UI fixes and improvements
Mac:
  Fixed a Tab Bar scrolling crash on recent versions of MacOS
*** All MX2 support is experimental!


Small update, but overdue!
Webpage and Demo: http://grudlux.com/mollusk/
Changelog: http://grudlux.com/mollusk/versions.txt
Updates for full version users: http://grudlux.com/mollusk/download.php

@Difference -- I found a SIMILAR but slightly DIFFERENT tab bar scrolling crash (happens on recent MacOS versions), hopefully this solves the crash you were having.

@Lee -- Try this. In the new version 1.88, open the settings file (locate via Settings > User Interface > Show Settings File)
and set LogErrorFiles = 1
Now, when any compiler error pops a new file open, the log will print out all open files -- this should help diagnose the duplication issue.
PS. You should edit this file while Mollusk is CLOSED. Then you can re-launch Mollusk.


Leo Santos(Posted 2016) [#119]
Missed that update, getting it now, thanks!
In the new version 1.88, open the settings file (locate via Settings > User Interface > Show Settings File) and set LogErrorFiles = 1


Is that the file named Mollusk.ini? I only see that one and Mollusk_English.ini. I'll try adding the line to Mollusk.ini. Cheers!


grudlux(Posted 2016) [#120]
Yes. With Mollusk closed... open Mollusk.ini, add "LogErrorFiles=1" under the [Compiler] section (may already be there) then save, and re-launch Mollusk 1.88.
Then, when a compiler error opens any file, all files should be listed in the Log panel.

However, for 1.89, I may have already fixed your duplicate file problem... At least I fixed one situation that could cause it.


Leo Santos(Posted 2016) [#121]
I have been using 1.88 (with Monkey2) for several days and haven't hit the duplicated tabs problem again.
Thanks!


grudlux(Posted 2017) [#122]
Happy 2017!
Mollusk v1.89 is now available!

Fixed:
  File tab bug, which could open the same file in two different tabs
  Replace All bug, which could miss the last occurrence
  Limited the auto update check to once per day
*** All MX2 support is experimental!


Another small update, yes, but I recommend updating!
Webpage and Demo: http://grudlux.com/mollusk/
Changelog: http://grudlux.com/mollusk/versions.txt
Updates for full version users: http://grudlux.com/mollusk/download.php


Xaron(Posted 2017) [#123]
Man I love you. Almost forgot about this gem. Monkey 2 support finally! YAY! Will you continue to "improve" that (not that I've found any issues yet, just because you name it still experimental)?


Difference(Posted 2017) [#124]
Hi grudlux

Thanks for keeping this updated.
V. 1.8.9 keeps crashing on MacOs Sierra. Is there a config file or something else I should delete?

[EDIT]: Seems to happen when I close a tab.


Danilo(Posted 2017) [#125]
Thanks grudlux,

I have the same problem here, using latest macOS Sierra 10.12.2.

I click the 'New' icon to open a new TAB. Next I click the close button on this TAB and
Mollusk just crashes. Sometimes closing a TAB works, but most times it crashes.


Danilo(Posted 2017) [#126]
Tried Mollusk 1.85, 1.86, 1.87, 1.88, and 1.89 on macOS Sierra 10.12.2.

All 5 versions just crash when creating a New TAB and close it.


Danilo(Posted 2017) [#127]
I disabled the TAB close-button now. Closing a TAB using main menu, right-click menu, and hot-key (CMD+W)
did not crash yet. So it looks like it has something to do with the TabBar only.


grudlux(Posted April) [#128]
Hello!!
Mollusk v1.90 is now available!

This small update fixes the file tab crash(es) on MacOS Sierra - please download and try it.
I apologize for the delay in fixing this, I had to upgrade my Mac hardware!

Webpage and Demo: http://grudlux.com/mollusk/
Changelog: http://grudlux.com/mollusk/versions.txt
Updates for full version users: http://grudlux.com/mollusk/download.php


Fryman(Posted April) [#129]
Great stuff, I just purchased this I love it