MaxIDE X

BlitzMax Forums/BlitzMax Programming/MaxIDE X

degac(Posted 2009) [#1]
Well, I don't know where to post this little update to the standard MaxIDE, so I decided to post here!

This 'fork' of standard MaxIDE features:

- toolbar with Debug ON/OFF
- search engine for BlitzMax commands
- CONSTs and FIELDs highlights
- advanced code tree (from MaxIDE Community Edition)
- auto-close block (if you type FUNCTION, the IDE will add END FUNCTION)
- cache info for source files to speed up textarea format of consts and fields (this option can be disable in the Options panel)
- check for updates online (see help menu)










Some videos:

http://www.youtube.com/watch?v=BrBNoCdX_3w

http://www.youtube.com/watch?v=h48cLsCVH4s

http://www.youtube.com/watch?v=pvHiJ5czqzs

Only tested on Windows XP at the moment.

Links:
Source code here
MaxIDE X (Windows)
MaxIDE X (Linux)
MaxIDE X (Linux-Ubuntu 7)

Latest Revision: 12f - 08 jan 2011

Last edited 2011


degac(Posted 2009) [#2]
well, on MacOS toolbars on panels have some problems, so I managed a different solution (for the moment)

Better than nothing...


skidracer(Posted 2009) [#3]
Cool work!

If this feature proves popular (i'm sure it will) I would be more than happy (if you agreeable) to merging your changes into official version.

The forward arrow toolbar icon seems to crash a lot with this version?


xlsior(Posted 2009) [#4]
If this feature proves popular (i'm sure it will) I would be more than happy (if you agreeable) to merging your changes into official version.


If adding it to the official version, please make the 'help search' an optional setting in the IDE options -- While it definitely can be useful, it also adds clutter to the menu bar...


degac(Posted 2009) [#5]
Thanks, all the changes are free - I've included the source code and you can do what you want!
Maybe (surely) someone can this better than me!

The forward arrow toolbar icon seems to crash a lot with this version?


I really don't understand what do you mean...do you refer to the icon style/graphics? if so, yes toolbar icons seem to be a little 'outdated' to me.

While it definitely can be useful, it also adds clutter to the menu bar...


No problem, a simple flag in the .cfg file and in the options panel and everything should work.

I'm testing it on Linux (FLTK) at the moment: the funny thing is that the textfield toolbar works 'quite' as in windows (I need to investigate some problems with SetGadgetSensitivity under Linux...), but toolbar is another thing: RemoveGadgetItem don't seem to work as expected!!!


QuickSilva(Posted 2009) [#6]
This is great, thanks for sharing. Maybe this will encourage others to post their own versions of the BMax IDE for others to try.

Maybe this could even become a subject for a future community challenge as it would benefit us all.

Jason.


Brucey(Posted 2009) [#7]
Maybe this could even become a subject for a future community challenge as it would benefit us all.

You mean, like the CE-IDE ?


Mark Tiffany(Posted 2009) [#8]
You mean, like the CE-IDE

I'll certainly be taking a look at the code to add it in...


MikeHart(Posted 2009) [#9]
Nice job and very usefull. Thank you!


QuickSilva(Posted 2009) [#10]

You mean, like the CE-IDE ?



No, I actually meant that we could have a different challenge each month or so to add new things to the defualt IDE.

Everyone could provide their versions and the winner each time (as decided by a voting system) would be added to the main project. For example, one month we might have a "design a new icon set" or another month something more serious like "add a way to add an icon to your .exe from within the IDE"

Just something fun but of benefit to everyone using the default IDE.

Jason.


Alessandro(Posted 2009) [#11]
Great job!
I successfully compiled under Linux Mint 6.
A couple of problems:

1) Minimal but... GUI should be fixed (I cannot see you the image)
2) Everytime I find a help, I click the link and I get:

Error - File not found

Unable to find the file at /home/alessandro/Programs/BlitzMax/docs/file:///home/alessandro/Programs/BlitzMax/docs/html/Modules/Data structures/Linked lists/TList/index.html

"alessandro" is my home. It seems there are problems to get html files (I tried to look for "TList").


degac(Posted 2009) [#12]
Hi,
I tested the code only on Windows (the image refer to this version only). The MacOs has some problems for the toolbar management (on win32 MaxGUI allow to 'attach' a toolbar to any panel, on Mac this cannot' be done, so the 'ugly' textfield below the toolbar...as seen in the second picture).
The Linux version was under testing, but:
1. I know of the problem you reported: I need to manage the path of the help file
2. There is a problem (already notified in the MaxGUI error thread) about the toolbar: RemoveItemGadget (on toolbar) doesn't work properly.

Probably this weekend I will fix the problems (I found in the meanwhile a solution for the RemoveGadget - see http://www.blitzbasic.com/Community/posts.php?topic=84859 - my last post. It works on every platform, but I need to change the source code to 'replace' the call to CreateToolBar to my function).


1) Minimal but... GUI should be fixed (I cannot see you the image)


What do you mean?


degac(Posted 2009) [#13]
Ok, I've update to rev. 1.1 (just a cleanup and some bug fix)
Now toolbar works well under Linux, search-toolbar can be disabled via options panel, url fixed (under Linux)
link here


Please post any suggestions/critics/bugs/improvements

Thank you


degac(Posted 2009) [#14]
I just played a little bit to include latest changes to MaxIDE due to Universal/Target platform from Brucey works...



(On windows there's nothing interesting...now testing on Mac and Linux)


Zeke(Posted 2009) [#15]
here is my maxide mod.. this use degacs search input, but show results in listbox. also code treeview show type's fields. and toolbar there is Run & Debug button.. so you dont need to toggle debug on/off anymore..

here is screenshot:


rightmousebutton hide results window.

but here is SOURCE+BIN:
http://www.byrathon.com/maxide_zeke.zip


degac(Posted 2009) [#16]
Interesting variation! And type's field in code-tree is one of the thing I like to see officialy implemented (and a reason I'm using the MaxIDE Community Edition too...)


Mark Tiffany(Posted 2009) [#17]
I'm going to add the search function to the CE IDE soon, probably not the next version as I want to crack one out this weekend ;-) But maybe next version...


degac(Posted 2009) [#18]
I've changed the 'html' page created to report the Modules infos (if you look for Create* - as in the image reported - you have many results, and the module/section can be useful to find exactly what you want).



Link for source and binary (win32) in the first post.
Cheers


Zeke(Posted 2009) [#19]
MaxIde with Intellisense? this is what im now looking and working....
...and its coming...


Mark Tiffany(Posted 2009) [#20]
For anyone wanting to make amendments to the IDE, I'm happy to add to CE IDE (provided code is reasonably intelligible). CE IDE already has very basic intellisense (just the command list).

Links in signature.


matibee(Posted 2009) [#21]
A little RFC; (I don't have max gui to try and do it myself)..

When dbl clicking a .bmx, can it open in the current window as a new tab, instead of opening a new instance, with all the previous tabs open + the new one.

:)


Mark Tiffany(Posted 2009) [#22]
CE IDE does this already on Windows. It needs to be enabled via the INI file (must get round to making that the default and adding option to the options pages...I use it all the time now without issue, so probably time to consider stable)


degac(Posted 2009) [#23]
For those who are intereset I update/tweaked my changes to the latest MaxIDE 1.34 version



Source link: http://www.graphio.net/download/MaxIDE_134_x.zip
Binary (win32) : http://www.graphio.net/download/maxide134X.zip

(tested only under Win32 at the moment - No MacOS supports)
I've added some little translation for the search function.


Grisu(Posted 2009) [#24]
- Do you need some German text to be translated for this ide?

- It would be nice to have menu to set if the compiled exe will be optimised for speed or size if that is possible.


degac(Posted 2009) [#25]
@Grisu

Very kind for your help.
Remember this is not the official MaxIDE, so at any change/update in the official one you can lose the additional translation (you need to manually add to the new one).
These are the label that I added.
help_search				     = "Find a command"
help_tooltip				     = "Type here a BlitzMax command\nto search in the help.\nImage* finds everything starts with Image,\n*gadget finds everything finishes with gadget"
help_result_title			     = "Search for:"
help_result_comment			     = "Results for "
help_result_start			     = "commands starting with "
help_result_finish      		     = "commands finishing with "
help_command				     = "Show search engine"

PS: my english is *not* so good, so if someone has a better translation...:)

- It would be nice to have menu to set if the compiled exe will be optimised for speed or size if that is possible.


Ok, I agree, but I suspect this mean a 'tweaked' BMK (Brucey magic powers involved?). Do you have a link?
And this option - like the one to generate Universal Build - unless BRL/Mark decides to make it official, means the user need to 'get dirty' changing/copying/modifying settings and so on...I dont' know how many users want to do so - but in any case everything can be done!


Grisu(Posted 2009) [#26]
help_search		              = "Finde einen Befehl"
help_tooltip				     = "Type here a BlitzMax command\nto search in the help.\nImage* finds everything starts with Image,\n*gadget finds everything finishes with gadget"
help_result_title			     = "Suche nach"
help_result_comment			    = "Ergebnisse für"
help_result_start			     = "Befehle beginnend mit "
help_result_finish      		     = "Befehle endet mit "
help_command				    = "Zeige Suchengine"

Not sure about the help_tooltip translation yet. Haven't found the dialog for that.

Btw: Did you miss the tooltip for "debug mode: off/on"?

For Brucey's modifications: Haven't played with them much.
But I thought it would be nice to have an easier access to these modifications.


degac(Posted 2009) [#27]

Not sure about the help_tooltip translation yet. Haven't found the dialog for that.


I need to fix it. The tooltip should pop-up when you move the pointer over the search textfield.

Btw: Did you miss the tooltip for "debug mode: off/on"?


Yep!
Thank you!

edit: btw, I think I found a bug in my code about updating localization on my toolbar. I need to investigate.


degac(Posted 2009) [#28]
Update to revision .03

- fixed toolbar translation
- fixed code tree reorganization (see Options -> Code tree style to activate-deactivate it (inspired by MaxIDE CE!)
- MaxIDE version in both splash screen (see image below) and in About window.



(the 'yellow' zones are only to hightlight the information about MaxIDE version)

Links for .exe (win32) and source code in the first post.


Hummelpups(Posted 2009) [#29]
help_search = "Finde einen Befehl"
help_tooltip = "Gebe einen BlitzMax Befehl ein,\num ihn in der Hilfe zu suchen\nImage* findet alle Befehle die mit Image anfangen,\n*gadget findet Befehle, die mit gadget enden"
help_result_title = "Suche nach"
help_result_comment = "Ergebnisse für"
help_result_start = "Befehle beginnend mit "
help_result_finish = "Befehle endend mit "
help_command = "Zeige Suchengine"


degac(Posted 2009) [#30]
danke shön!
(Grisu already made the german-translation, but I glad your help for the 'help_tooltip' missing translation!)

I just read the release of the 'latest' MaxIDE 1.34 source code, so I need to 're-update' my changes with the latest Sebholl's fixes.


degac(Posted 2011) [#31]
wow! So long time!

Well, I've uploaded a new version of MaxIDE X 1.34.10
Here you can grab source code + .exe (windows only at the moment)

What's new?

Support highlight for CONSTs and FIELDs: you need to rebuild documentation to make it work with BlitzMax modules' source code.
I think it's very handy





Here some videos

http://www.youtube.com/watch?v=h48cLsCVH4s

http://www.youtube.com/watch?v=BrBNoCdX_3w

PS:

autohightlight *is not perfect* - unfortunately - but still I think it's a big help during typing!

Next step?

Auto insert of ‘end block’ instructions: when I type IF, I would like to insert – automatically – END IF.
Same for FUNCTION..END FUNCTION, WHILE..WEND, REM..END REM, TYPE.. END TYPE

Yes I'm lazy!

Cheers

Last edited 2011

Last edited 2011


Grisu(Posted 2011) [#32]
Get a MAV error at startup with your code and exe:

[edit] deleted image for better readability.

Last edited 2011


degac(Posted 2011) [#33]
Ops!
Thanks, source fixed and uploaded.


ima747(Posted 2011) [#34]
Very cool, haven't had a chance to try it myself but I love the look.

Any plans to support cross compilation like CE does using brucy's bmk2?

update: just tried building the source since I'm running on mac and it appears to be missing toolbar.png.

Last edited 2011


degac(Posted 2011) [#35]
Thanks,
For the brucey extension I need to check out - it shouldn't be a problem.
At the moment - unfortuntely - I have no MacOS to test, so the lasts updates are tested only for Windows (and sometimes for Linux).


ima747(Posted 2011) [#36]
the error I was seeing when compiling is due to the file not being included in the source distro.


Jesse(Posted 2011) [#37]
I moved a copy of the original toolbar.png to the folder now it compiles and links with out an error but when I try to run it i get:

2011-01-03 15:28:17.536 maxide134X_10[5237:717] *** -[PanelView setToolbar:]: unrecognized selector sent to instance 0x2a5370
2011-01-03 15:28:17.538 maxide134X_10[5237:717] *** -[PanelView setToolbar:]: unrecognized selector sent to instance 0x2a5370
2011-01-03 15:28:17.538 maxide134X_10[5237:717] *** -[NSDeviceRGBColor drain]: unrecognized selector sent to instance 0x204e90
2011-01-03 15:28:17.539 maxide134X_10[5237:717] *** -[NSDeviceRGBColor drain]: unrecognized selector sent to instance 0x204e90


any idea?
I'm wondering why you would need toolbar.png when you have created your own icons3.png.


degac(Posted 2011) [#38]
Ops! I missed a file! Argh! Sorry.
Toolbar.png was the original image for standard toolbar, while icons3.png is for 'my'toolbar: I really dont' remember why it must be present (probably there's some 'incbin' of the original version still around...)
I will check it soon.
And about the error, without a Mac is a little hard for me to understand the reason of the problem: probably the latest release of MaxGUI have changed some behaviour in the panel managment.


degac(Posted 2011) [#39]
See main post, I've made a little update (12b) or here for more informations

Last edited 2011


degac(Posted 2011) [#40]
Update to release 12f

See the main post for more info

Source

Windows binary

Linux binary


ima747(Posted 2011) [#41]
Builds fine for me on mac but hangs on loading with the progress bar under the middle leg of the M in the Max logo. It's not frozen, just won't load any further. Could be my mods or something else I'm guessing. will investigate if time permits.


Jesse(Posted 2011) [#42]
yes, same problem for me
I was able to trace the error in a line in TcodePlay here:
Function MakeToolBar:tgadget(win:tgadget,url$="")
	If url="" Return Null
	Local Window1_Icons:TPixmap = LoadPixmap:TPixmap( url)
	Local Window1_Strip:TIconStrip = LoadIconStrip:TIconStrip( Window1_Icons:TPixmap )
	If window1_strip=Null 	Return Null
	Local Window1_Toolbar:TGadget = CreateToolbar( "",0,0,0,0, win) <-freezes  here ******************************************************
	SetGadgetIconStrip( Window1_Toolbar, Window1_Strip:TIconStrip )
	Return window1_toolbar
End Function



in creteToolBar in maxGUI it goes here:
Function CreateToolbar:TGadget(source:Object,x,y,w,h,window:TGadget,style=0)
	Local flags:Int = 0
	Local iconstrip:TIconStrip = TIconStrip(source)
	?Debug
	If window.Class() <> GADGET_WINDOW Then
		DebugLog "WARNING: Toolbars should *only* be parented to window gadgets."
	EndIf
	?
	Local toolbar:TGadget = maxgui_driver.CreateGadget(GADGET_TOOLBAR,"",x,y,w,h,window,style) '<----- this linel ************************
	If toolbar
		If Not iconstrip Then iconstrip = LoadIconStrip(source)
		If (LocalizationMode()&LOCALIZATION_OVERRIDE) Then flags:|GADGETITEM_LOCALIZED
		If iconstrip
			toolbar.SetIconStrip iconstrip
			For Local icon=0 Until iconstrip.count
				AddGadgetItem toolbar,"",flags,icon
			Next
		EndIf
	EndIf
	Return toolbar
End Function



the goes here to TCocoaMaxGUIDriver:
	Method CreateGadget:TGadget(internalclass,name$,x,y,w,h,group:TGadget,style)
		Local p,hotkey
		If internalclass=GADGET_MENUITEM
			name=name.Replace("&","")
		ElseIf internalclass=GADGET_BUTTON
			p=name.Find("&")
			If p>-1
'				hotkey=Asc(name[p..p+1]) 'to do - convert and call SetHotKey before return
				name=name[..p]+name[p+1..]
			EndIf
		ElseIf internalclass=GADGET_TOOLBAR
			Global _toolbarcount
			_toolbarcount:+1
			name="Toolbar"+_toolbarcount
		EndIf
		Local gadget:TNSGadget = TNSGadget.Create(internalclass,name,x,y,w,h,TNSGadget(group),style) '<---------here ********************
		If internalclass<>GADGET_WINDOW And internalclass<>GADGET_MENUITEM And internalclass<>GADGET_DESKTOP
			gadget.SetLayout EDGE_CENTERED,EDGE_CENTERED,EDGE_CENTERED,EDGE_CENTERED
		EndIf



than goes to TnsGadget and freezes before it's able to go into the function.
		gadget.name = text
		gadget.SetRect x,y,w,h	'setarea
		gadget.style = style
		gadget.font = TCocoaMaxGUIDriver.CocoaGUIFont
		
		If TNSGadget(group) Then
			gadget.forceDisable = Not (TNSGadget(group).enabled And Not TNSGadget(group).forceDisable)
		EndIf
		
		NSInitGadget gadget  <----  finally freezes here and does not go into it ********************
		
		GadgetMap.Insert TIntWrapper.Create(gadget.handle),gadget



and gives out this runtime error:

23.035 maxide134X_12f.debug[1898:717] *** -[PanelView setToolbar:]: unrecognized selector sent to instance 0x3a4d70


in an error box

and also gives out the warning mentioned in my previous post to the IDE console.

Last edited 2011


SebHoll(Posted 2011) [#43]
That's because you can't add a toolbar to a panel - only to windows. Check the value being passing in as win:TGadget to MakeToolBar().

Edit: Yep, as suspected a toolbar is attempted to be added to a panel:
	toolbar_panel:tgadget=CreatePanel(0,0,648,32,window)
	SetGadgetLayout toolbar_panel,EDGE_ALIGNED,0,EDGE_ALIGNED,0
	toolbar=MakeToolBar(toolbar_panel,"incbin::icons4.PNG")
See the "IMPORTANT" warning message in the CreateToolbar() docs:

IMPORTANT: Toolbars should only be parented to window gadgets. Parenting a toolbar to a panel is not officially supported - users are strongly advised to instead use push-buttons with pixmap icons set. Debug builds will output a warning message to standard error if toolbars are parented otherwise.


Last edited 2011


degac(Posted 2011) [#44]
Hi
I have not a MacOS at the moment to test it - so as I said in the first post the IDE is tested only on Windows and Linux.
And yes, when running in debug mode the 'warning about toolbars' is clearly visible in the output window, so it is not a surprise.
Probably the best solution is to to replace (under Mac) the toolbar thing with a 'simulated one' (use push-buttons with pixmap icons set seems a clear indication)
Or make a toolbar that mixes every genre of gadget (buttons, textfields and so on).

At the moment the only solution for Mac I can provide is to exclude the additional panel-toolbar (losing the search field) and put this one on a separate windows.

Cheers


SebHoll(Posted 2011) [#45]
Maybe check out d-bug's CocoaExt module that supports textfield controls in OS X toolbars.

Last edited 2011


degac(Posted 2011) [#46]
At the moment I'm working on a new toolbar gadget (see here), that works quite well, but I found a problem on MacOS X about textfields and EVENT_KEYUP... I think I found a solution (but I need some time to implement it)


degac(Posted 2015) [#47]
I decided to post here (even if the thread is dead!) the info about my latest MaxIDE X version (1.81)

Here 2 videos of the latest feature I've implemented

http://youtu.be/YLKzjg9Kfh8

http://youtu.be/xtOfWzG4rak

HERE BINARY (Win32)
HERE SOURCE

Please for more information take a look at the page http://www.graphio.net/?page_id=409

Cheers


BlitzSupport(Posted 2015) [#48]
Wow, there's some really nice stuff on your site! I tend to stick with default tools, but will probably try MaxIDE X out, as it does look pretty cool.


skidracer(Posted 2015) [#49]
Awesome looking toolbar degac, did you draw it?


degac(Posted 2015) [#50]
Thanks

@BlitzSupport: I dont' like waste my time while typing so I added these features for speed up thing... I know, I'm very lazy.

@Skidracer

I created a proxygadgets for it, and the icons are some icons I get on internet and changed/adapted manually by me.


AdamStrange(Posted 2015) [#51]
excellent work.
couple of questions for you:
1. does it suffer from the random crash and slowdown of the current ide
2. looking into the source, where is the actual code drawing routines? I'de like to add some line numbers :)

couple of issues (on mac)
1. find field won't display any edit text (so don't know if it's working)
2. ide colours not all saved on exit (number)

Point me in the right direction and I can see where the problems are :)


degac(Posted 2015) [#52]
As I can't get a Mac so I can't say about errors.
Surely my proxygadgets (toolbar) seem don't work correctly on macos - see above post by sebholl

I based my work on the official maxide, I ve added my features to it.
I haven't any crash using it... Of course maybe it depends on the source size.

About the color not saved : I need to check, maybe I did something in the saving routine


skidracer(Posted 2015) [#53]
There are two known crashes with current MaxIDE, one in Linux where output window can crash parsing debug output of gcc and one where and endrem on last line will crash it (fixed yesterday).

Claiming MaxIDE has random crashes without referencing or reporting them seems a little disingenuous, the slow down issue would also be nice to reproduce but again it is completely unknown to me.


degac(Posted 2015) [#54]
The only slowdown I found in MaxIDE is at startup.
I found it's caused by the loading/populating the treeview and it depends on the numbers of 'commands' in the commands.txt file. I resolved this problem, deleting from commands.txt the command I don't want.

A case of 'locking' is while highliting a specific file (pub.glew, an updated version from user BlabZ): the file itself is quite big and full of Const value and bbdoc

Both under Win32


degac(Posted 2015) [#55]
@AdamStrange

I found a (stupid) error in the read method in OptionsRequester. Fixed. Thanks! (I was looking for number_style= instead of number_style)


Question

1. find field won't display any edit text (so don't know if it's working)



Did you activate the SHOW SEARCH ENGINE option in control panel?


AdamStrange(Posted 2015) [#56]
Ah - no problem about the find/search field then - pity

Glad I pointed out the colour bug. Might want to also save the app window position and size too?


degac(Posted 2015) [#57]
Ok, I've updated to version 1.82
Fixed problems with number colors and window's position.

I added a 'register IDE' button for Windows explorer (so - technically - if you click on an .bmx file you *should* open with the latest IDE)
I'm still studying how to apply the icon to the files...

Cheers