MaxIDE - Community Edition - 2.01

BlitzMax Forums/BlitzMax Programming/MaxIDE - Community Edition - 2.01

Mark Tiffany(Posted 2009) [#1]
MaxIDE (CE) version 2.01 has been released.

The Community Edition of MaxIDE is based on the official IDE, but with many improvements added by the BlitzMax community.

For now, only a win32, Linux FLTK, Linux GTK exe and source zip is available. If anyone wants to volunteer a version compiled for MacOSX, feel free to email me.

Win32 Executable
Linux FLTK Executable
Linux GTK Executable
Source ZIP


In addition, the very latest source code is available in a nightly tarball from: Latest Source Tarball

V2.01 CHANGE LOG since v2.00b4

Added:
* Support for cross-compiling (REQUIRES Brucey's BMK)
* Support for building wxApps on MacOS (REQUIRES Brucey's BMK & wxMax)
* Started improvements to Build Modules option by consolidating into single requester
* Support for threaded build mode (thanks grable)
* Splash screen (copied and tweaked from official IDE)
* Test Harness to automatically test key elements of CE IDE before each release
* Improved C++ syntax highlighting with additional keywords
* Improved C/C++ error handling, especially with included files
* Improved look & feel by using OS default fonts
* Plus too many fixes to list here!


plash(Posted 2009) [#2]
I shall be thoroughly testing the GTK version soon (if my power doesn't go out in this storm!) :D


Mark Tiffany(Posted 2009) [#3]
Note the known GTK problems in the version history, then bug Brucey for some gtk lovin'....


Brucey(Posted 2009) [#4]
Note the known GTK problems in the version history

... that's a very big list, unfortunately.

Sorry I haven't had time to try it out on my Mac yet, Mark.


plash(Posted 2009) [#5]
A wxMax IDE would be the win-all solution. An IDE using wxMax could even then have things like an integrated wxCodeGen, movable toolbars (wxAUI), etc.
I wonder how long it would take to re-build the CE IDE using wxMax.. I may play with the idea.


Mark Tiffany(Posted 2009) [#6]
Sorry I haven't had time to try it out on my Mac yet, Mark.

No worries Brucey - I do prefer running under GTK than FLTK, but realise some of those issues are less than trivial. I just hope you don't take my comments as negative against you personally!

Plash, I also wondered briefly about wxmax...but from what I hear (but *NO* direct experience) wxmax is both very different in approach and more complex to implement. If switching to wxmax, I believe that it would be far easier to start over, not something I'm prepared to undertake. The only over thought I (again briefly) had with wxmax was either maxgui wrapper, or at least a basic replication of the maxgui command set in wxmax (possibly the same thing). This would allow easier swapping in/out, and then allow wxmax specifics to be built on top. But from talking to Brucey about his views on a wxmaxgui implementation, I'm running away from that too!


Brucey(Posted 2009) [#7]
I just hope you don't take my comments as negative against you personally!

'course not ;-)

more complex to implement

I would have to disagree.
With no experience of wxWidgets, then yes, it probably is. The approach is entirely different. However, done in wxMax, it should end up being 1) easier to build for cross-platform, 2) requiring less maintenance.
I already had a go with it once, but I got caught up in making flashy options screens... rather than concentrating on getting a good, solid framework (heh, you know how it is).
I should really just sit down, map out a basic design, and lay some framework down. Fortunately, wxWidgets can do a lot of the tedious stuff for you, so you can concentrate on the more important bits.


degac(Posted 2009) [#8]
Good job!

Just installed the latest version, I checked the italian translation and made some corrections and the changes required to the new functions!
Here you can grab the latest language definition.



Mark Tiffany(Posted 2009) [#9]
Thanks degac - SVN copy updated


degac(Posted 2009) [#10]
Possible bug...
(tested on win32 only at the moment)

1. open MaxIDE CE
2. move the 'splitter' (relatively faster) from its original position to the left screen margin (or the right one) - one or more times...
3. cursor changes shape to this one <-->
4. splitter can not be moved anymore
5. (sometimes, not ever...) menu and toolbar are 'active': you can choose Open a file and you'll see the requester...
6. on task manager MaxIDE CE will be boost at 98-99% of CPU resources...
7. you need to kill with Taskmanager the application.

I have tested 12 times now: sometimes the bug appears on the first splitter move, sometimes after some other.


Mark Tiffany(Posted 2009) [#11]
yup, me too, and that's rather odd! I intend to Seb's splitter tab in at some point so may leave this alone for now...


Alessandro(Posted 2009) [#12]
About shortcuts:

I use Fltk version (as you suggested me).

Even official editor makes the same.
I cannot check gtk version.

Instead ALT keys work very well instead.


Mark Tiffany(Posted 2009) [#13]
Thanks Alessandro, sounds like it must be an FLTK bug, so will note it in the known issues and post another fltkmaxgui bug report.


Grisu(Posted 2009) [#14]
Thanks for the update!


Tachyon(Posted 2009) [#15]
On my Mac (Intel, OS10.4) the tabs on the right side of the splitter (Help/Projects/Code/ToDo/Debug) don't seem to do anything. Specifically, clicking on the Code tab does not display anything, nor does clicking on Help or ToDo.


MikeHart(Posted 2009) [#16]
On my Mac (Intel, OS10.4) the tabs on the right side of the splitter (Help/Projects/Code/ToDo/Debug) don't seem to do anything. Specifically, clicking on the Code tab does not display anything, nor does clicking on Help or ToDo.


I had the same problem with the former release on my mac. I will give this a try to see if it behaves the same.


MikeHart(Posted 2009) [#17]
Ok, it compiles fine but like Tachyon said, the listboxes show nothing.


Mark Tiffany(Posted 2009) [#18]
Ok, it compiles fine but like Tachyon said, the listboxes show nothing.

Can you define nothing - absolutely nothing, i.e. a blank section of the window (i.e. the gadget isn't being shown?), or you can see the treeview control with nothing in it at all, or something in it but not populated...screenshot might help give me an idea...


Tachyon(Posted 2009) [#19]
There is nothing there. Just a white empty space. Clicking through all the tabs (actually they look more like buttons) just displays a blank empty window on the right side of the split.

A screenshot....hmm, really, it is a large blank white space. Absolutely nothing is there. Imagine staring at an evenly lit blank sheet of photocopy paper. That's it.


Mark Tiffany(Posted 2009) [#20]
Okay, sounds like the gadget isn't being shown, rather than the gadget is shown but not populated, which gives me some idea of where to look.

However, there is some slightly odd looking macos specific code hiding in where all the nodes for those treeviews lives, and it is different to the official IDE. Can you try editing the following code from line 596 in datanodes.bmx to comment out the ?macos bit, and to turn ?not macos into ?macos please?

						?MacOS ' MacOS doesn't allow "adding" TreeView nodes by "inserting" them after the last node
							If _GetIndex() > CountTreeViewNodes(parent_view._Node) Then
								If v._node Then FreeGadget v._node
								v._node=AddTreeViewNode(_name,parent_view._node)
							EndIf
						?Not macos
							If v._node Then FreeGadget v._node
							v._node = InsertTreeViewNode(_getindex() , _name , parent_view._node) 						
						?

becomes:
'						?MacOS ' MacOS doesn't allow "adding" TreeView nodes by "inserting" them after the last node
'							If _GetIndex() > CountTreeViewNodes(parent_view._Node) Then
'								If v._node Then FreeGadget v._node
'								v._node=AddTreeViewNode(_name,parent_view._node)
'							EndIf
						?macos
							If v._node Then FreeGadget v._node
							v._node = InsertTreeViewNode(_getindex() , _name , parent_view._node) 						
						?



Mark Tiffany(Posted 2009) [#21]
If the above doesn't fix it, I have another suspicion about macos tabber events - please try the code at the link below to confirm my guess...

http://www.blitzmax.com/Community/posts.php?topic=85022


Mark Tiffany(Posted 2009) [#22]
And two final questions: Do the code tabs work? Do the tabs in the IDE options work?

All three use different code to wrap up tabbers & panels, but I am hoping the IDE options work at least, as that is the codeset I intend to move the others towards.


Marmoth(Posted 2009) [#23]
The 2.01 IDE crashes at startup on my system (windows XP pro). Any idea what could causes this?


Mark Tiffany(Posted 2009) [#24]
Did you put maxide in the BlitzMax directory (where the normal maxide is)? I assume the official IDE works? Have you got any strange modules installed (docs & command list could possibly cause issue...). Do you even get the splash screen, and if so, what does it say just before it crashes?


MikeHart(Posted 2009) [#25]
Hi Mark, the link above doesn't work, gives an error. And where do I find that code to comment out?


markcw(Posted 2009) [#26]
Hi Mark, just got BMax running on my g3 laptop (with panther) and can confirm the sidebar contents were empty (tested beta5 and beta6 src) and that your fix to datanodes.bmx loads the treeview nodes but now it runs very slow well, it pauses a lot and the timer icon appears.


Mark Tiffany(Posted 2009) [#27]
Hi Mark, just got BMax running on my g3 laptop (with panther) and can confirm the sidebar contents were empty (tested beta5 and beta6 src) and that your fix to datanodes.bmx loads the treeview nodes but now it runs very slow well, it pauses a lot and the timer icon appears.

Thanks mark - at least I know the right area, if not the right fix! My guess if that the original macos specific if block needs something in an Else block...maybe the code from non-macos?


markcw(Posted 2009) [#28]
And two final questions: Do the code tabs work? Do the tabs in the IDE options work?


Just to answer these questions. Yes and yes.


markcw(Posted 2009) [#29]
Well editing the block to this:
		?MacOS ' MacOS doesn't allow "adding" TreeView nodes by "inserting" them after the last node
			If _GetIndex() > CountTreeViewNodes(parent_view._Node) Then
				If v._node Then FreeGadget v._node
				v._node=AddTreeViewNode(_name,parent_view._node)
			Else
				If v._node Then FreeGadget v._node
				v._node = InsertTreeViewNode(_getindex() , _name , parent_view._node)
			EndIf
		?Not macos
			If v._node Then FreeGadget v._node
			v._node = InsertTreeViewNode(_getindex() , _name , parent_view._node) 
		?
also works but is again very slow.

Edit: on testing it seems that the delays are related to the number of treeview nodes that need reloaded in the sidebar. Also, the splash screen takes about a minute to load and pauses at the 'Parsing Documentation' bit.


markcw(Posted 2009) [#30]
Found a tiny bug in the latest src, line 1756 bmxhost.bmx should read.
DisableMenu menu_target_win
If not then on ppc you get this.

Compile Error
Identifier: menu_target_win32 not found



Mark Tiffany(Posted 2009) [#31]
Ta - I'm in the middle of playing around with the tabbers so that the navigation tabs work like the ones in the options panel, so have made the above change locally, but haven't checked it in just now.

The ultimate problem is that the process of comparing all treeview nodes every time something changes is slow on all platforms, and seemingly even worse on Mac. I know that the original IDE had some code that essentially ignored parts of the tree that are closed & unchanged...this isn't kicking in for CE IDE and hence slowing down. I think you've also pointed out before that RefreshView seems to get called twice, which wouldn't help!


Mark Tiffany(Posted 2009) [#32]
Try copying this complete replacement of datanodes.bmx. It should work as before, but faster as I have reinstated the "quick" mode, although I have a few other code changes kicking around at the moment so there's a chance it won't.



I've only done very brief testing on win32, but it appears to be working, and startup (parsing docs on splash screen) seems marginally faster here, so maybe will help...


MikeHart(Posted 2009) [#33]
Hi Mark:

I rplaced datanodes.bmx and got this error during compile:

Compile Error: Duplicate identifier 'TNewDataNode'
[.bmx/datanodeview.bmx.release.macos.x86.i;5;1]
Build Error: failed to compile /Users/mikehart/Desktop/Blitz/maxide2_2/maxide.bmx
Process complete


Mark Tiffany(Posted 2009) [#34]
That's weird, given TNewDataNode is, and always has been defined in that very file!?

I notice you said something about a link not working - can you re-download the CE IDE source using the "nightly tarball", this should be the very latest SVN copy of the code:

Latest Source Tarball

Try compiling that without edits, then if that works, try compiling with the replacement above.


markcw(Posted 2009) [#35]
The new datanodes.bmx works fine here Mike.

That is much faster now Mark, great work. I'd say it's an acceptable speed now - but could do with being a tiny bit faster if possible.

On testing this I find the delays (when the timer icon appears) seem to be related to the code tab that was selected eg. datanodes.bmx takes about 3 times as long as datanodeview.bmx (so I think my last report was wrong there).


MikeHart(Posted 2009) [#36]
Thanks guys for the support. Got it working now. I guess I pasted it in the wrong file and then made the mistake to compile that file instead maxide.bmx. Doooh.

finally a good ide on the mac for me!!!


MikeHart(Posted 2009) [#37]
One little thing, when you collapse a treeitem, it looks like this:



once you move the splitter, it refreshes fine and the treecontent looks normal again.


Mark Tiffany(Posted 2009) [#38]
That is much faster now Mark, great work. I'd say it's an acceptable speed now - but could do with being a tiny bit faster if possible.

Good! The variability of the delay by code file will be down to how many types/functions/methods there are. Not sure how much more can be done to speed this up, but I will have a rummage further in that area at some point...

One little thing, when you collapse a treeitem, it looks like this:

Good to hear it is working to some degree now Mike. Looks like either the gadget itself is failing to redraw properly, or there's a blank panel over the top (look at the word "Help"). Mark, do you get the same thing as Mike?


markcw(Posted 2009) [#39]
I find no problems when collapsing/expanding the treeview items. It looks like this.



Edit: could it be because of different xcode versions? I have 1.5 due to panther.


Brucey(Posted 2009) [#40]
Out of curiosity, I thought I should give it a go on the Mac.

Just one question (for now). Why does it kick off bmk, running "ranlibdir /Applications/BlitzMax/mod" when it first starts up?

It takes bloody ages, sitting with the splash and the spinning cursor..

If it *really* wants to do this, couldn't it run in the background instead? Rather than not actually letting me do anything. (you could even kick it off via FreeProcess, and monitor its progress occasionally).


Back to the default IDE for now ;-)


Mark Tiffany(Posted 2009) [#41]
Just one question (for now). Why does it kick off bmk, running "ranlibdir /Applications/BlitzMax/mod" when it first starts up?

No idea!

Taking a quick rummage in the code, the official IDE has code to do this the first time you run the IDE on macos in demo mode, whereas CE IDE does it the first time you run CE IDE demo mode or not. Both use the presence of an INI file to decide it is "the first time", so having run it once, it shouldn't do it again...

What does ranlibdir do anyway? I'm thinking that it should probably stay if the official IDE does it (although why only in demo mode???), but happy to remove / kick off via freeprocess if it is completely irrelevant!

Edit: could it be because of different xcode versions? I have 1.5 due to panther.

Maybe...Mike, can you confirm xcode version?


Brucey(Posted 2009) [#42]
I removed the ranlib call from mine, so at least it starts up before tea-time ;-)

Good to hear it is working to some degree now Mike. Looks like either the gadget itself is failing to redraw properly, or there's a blank panel over the top (look at the word "Help"). Mark, do you get the same thing as Mike?

I have the same issue.

When I close a node, it covers them up (as you've seen in the screenshot), and shifts some of the deeper nodes to the left.
If I then drag the splitter a little, it all sorts itself out. (until the next time I close a node)

Interesting times :-)


Mark Tiffany(Posted 2009) [#43]
I have the same issue.

xcode version? seems rather odd as mark seems not to see this...
and shifts some of the deeper nodes to the left.

...and that makes it sound more like some weird problem with the internal gadget redraw to me...


Brucey(Posted 2009) [#44]
Indeed ;-)

In datanodes.bmx, after a trigger on the closing of a treeviewnode (i.e. me closing it), we end up here (in TDataNodeView):
	Method Close() 
		If _state<>NODEVIEW_CLOSEDSTATE
			_state=NODEVIEW_CLOSEDSTATE
			If _node CollapseTreeViewNode _node
		EndIf
	End Method

I believe it doesn't appreciate being told to close a node that is already closed.
This might make some sense to the fact that the whole tree appears to fold in on itself towards the left-hand-side.
Commenting out the CollapseTreeViewNode line, fixes the problem.

I think you have issues with your logic in there :-)
Is Close() being used for both programatically and event-issued closing of a node? Tsk ;-)
Of course, perhaps the OSX GUI driver needs to check if it isn't already collapsed before trying to collapse itself again...

Fun fun :-)


degac(Posted 2009) [#45]
Edited: 08 jun 2009 - 13.56 - update the source code

Try this in the current MaxIDE CE version and in then make the changes below
Global ask:String[] , test:Int , tes:String[ , ]
Type user
	Field uno:Int[] , due:String[]
	Field campo$[] = ["1" , "2" , "3"] , hallo:Int
	
End Type


In the current one you should find in the GLOBAL node something like

ask
test
test
]


and for the FIELD group

uno
due
"2"
"3"]
hallo



I just find a little fix for GLOBAL handling in the codetree
Change in editor.bmx the following piece of code



Mark Tiffany(Posted 2009) [#46]
Is Close() being used for both programatically and event-issued closing of a node? Tsk ;-)

Ah yes, I see it...must be that. Amusingly, all those states were originally added precisely to try to avoid those dodgy calls to treeview nodes. I truly hate this code - the original in the IDE was bad enough, and I tried wrapping it up & separating into GUI / data...and just got grief after that! I've tried to avoid it ever since, even though it probably is the worst bit of code in there...

Of course, perhaps the OSX GUI driver needs to check if it isn't already collapsed before trying to collapse itself again...

Well, yes. It seems some versions of xcode are happy (1.5 as per Mark's post), but obviously not others...

Thanks degac, will update that too.


MikeHart(Posted 2009) [#47]
Maybe...Mike, can you confirm xcode version?


I'm running XCode 3.1.2 on Leopard 10.5.6


Mark Tiffany(Posted 2009) [#48]
This won't fix the problem with collapsed treenodes, but should be a little bit faster (not a lot though). Replace RefreshView method at the end of databodes.bmx with the below.




Mark Tiffany(Posted 2009) [#49]
I reckon the simplest (and arguably laziest) fix for the collapsetreenodes problem is as Brucey did : just remove it.

While there are several occasions where the code forces a node *open*, I can't see any instances where a node is programmatically *closed*. Therefore there is no need for the call to Collapse...Open seems not to cause issue, so will go with this "fix"...at least for now.


Mark Tiffany(Posted 2009) [#50]
Okay, all checked in to SVN now. Give it a whirl on Mac. If you can't download from SVN, the nightly tarball should pick it up in the next 24 hours.


markcw(Posted 2009) [#51]
Ok, I've tested the new RefreshView() and it is roughly 10% faster here but I'm going to have to admit I didn't test this enough. Now I see the delays are happening at 3 specific points rather than it being slow in general.

First, the splash screen pauses for about 20 sec on "Parsing Documentation".
Second, expanding/collapsing the treeview items only shows delays in the sidebar Help tab (I assume due to a lot of items) - and the delays get a bit longer the further down the treeview list you are. [edit: actually just depends how long the current list is]
Third, tabbing between code tabs is ok (no noticable delays) but the delay actually happens when I tab from the Help tab to a code tab (and the delay length varies depending on the file, eg. datanodes.bmx takes 8 sec and datanodeview.bmx takes 4 sec).


Mark Tiffany(Posted 2009) [#52]
Thanks mark. Some good clues there to have a rummage around. 20 seconds parsing docs is pretty ridiculous, and it's amazing how slow that is compared to windows. I did notice that either gtk or fltk was a bit slow, but nothing like that! Can you do some comparison timings with the official IDE?


markcw(Posted 2009) [#53]
Gtk is the slow one but it's not anywhere as slow as this, although my laptop cpu is only 400 Mhz. :)

There are no time delays in the official maxide where the treeview is concerned but as a comparison, the ce ide splash takes about 30 sec while the official ide splash takes 20 sec.


Mark Tiffany(Posted 2009) [#54]
Have you got loads of modules installed? Like, say, Mr Henderson's profusion of libraries?

I ask, as CE IDE has links to all module source in the help treeview, and I'm wondering if the problem is a combination of the interrogation of those directories, the mass of data nodes that will be generating in memory, and the generation / display of the treeviews.

I'm pretty sure the official IDE only links to the pub and brl modules...so wouldn't suffer as bad, but might if it tried to link in. This might only explain the difference at startup I guess...


markcw(Posted 2009) [#55]
No, only brl, pub and maxgui installed.

Also, a correction to the second delay point as above. I can see the delays in the treeview don't depend on how far down the list you click but what length the list is, for example I just opened Help>Index there now and I had to do a force quit as it just stopped responding due to the massive list in Index (by comparison the official ide has a delay of 2 sec when you open Help>Index).


SebHoll(Posted 2009) [#56]
If the double CollapseTreeView() drawing thing is a MaxGUI.CocoaMaxGUI bug, would you be able to post a bug report with some test code in the Bug Reports forum?

Thanks


markcw(Posted 2009) [#57]
What does ranlibdir do anyway?

I've been wondering the same thing myself, so I thought I would try to find out. Not sure if I've been successful though.

According to the apple ranlib docs it's a gcc tool of some sort.

Ranlib adds or updates the table of contents to each archive [or statically linked library] so it can be linked by the link editor, ld(1). The table of contents is an archive member at the beginning of the archive that indicates which symbols are defined in which library members.

It looks like ranlibdir is a custom command option in bmk and there is no documentation on it apart from a post by mark sibly here.

> mod/pub.mod/igl.mod/igl.release.macos.a is out of date; rerun ranlib(1) (can't load from it)

For reasons I don't understand, MacOS has problems with copying '.a' files.

Try (from the command line):
./bmk ranlibdir /Applications/BlitzMax/mod



Mark Tiffany(Posted 2009) [#58]
If the double CollapseTreeView() drawing thing is a MaxGUI.CocoaMaxGUI bug, would you be able to post a bug report with some test code in the Bug Reports forum?

I can't really as I have no Mac...I;d be posting a bug report "blind" (again) with no certainty it reproduces the behaviour seen here...

What does ranlibdir do anyway?

Thanks mark - pretty much the same as I managed to find - next to useless! I think I will change the code to behave as per the official IDE, and only do the ranlib if running the demo version.

No, only brl, pub and maxgui installed.

Doh! And I thought that theory was pretty likely to be on the money! *sigh*


markcw(Posted 2009) [#59]
I can't really as I have no Mac..

Speaking of which - are you going to get a mac some time?

...pretty much the same as I managed to find - next to useless!

Not sure I follow what you mean, but I had to run ranlibdir before I got Max to build, so having the ide perform this on first-run means users can avoid having to learn about ranlibdir.


Mark Tiffany(Posted 2009) [#60]
Not sure I follow what you mean

Just that the info found on Google etc made no sense to me!

I had to run ranlibdir before I got Max to build, so having the ide perform this on first-run means users can avoid having to learn about ranlibdir.

Ah, I see. So maybe it is reasonable to run it, if the ide detects there is no INI file present at all...(i.e. it's the first run). Although chances are no-one will install blitxmax, then install ce ide before running the official ide anyway...unless it's an experienced user doing a fresh install I guess...

I think I'll add it back in, but make sure the splash screen tells you what it's up to, and that it really does only do it the first time you run!


Mark Tiffany(Posted 2009) [#61]
Speaking of which - are you going to get a mac some time?

Unlikely, as have no real need for one myself...


markcw(Posted 2009) [#62]
I think I'll add it back in, but make sure the splash screen tells you what it's up to, and that it really does only do it the first time you run!

Yes, it's not a big deal and not really the responsibility of ce ide, so I would take it out actually.

Unlikely, as have no real need for one myself...

I picked up my pismo on ebay for around £200 and didn't switch it on for about 6 months, I finally got round to it last month and now I have another beside me, a wallstreet which I'm now upgrading. I have no real need for two g3 laptops but they do look nice together. :)


klepto2(Posted 2009) [#63]
The current version will not start on Windows. There is a small bug in it at bmxhost.bmx.

Line 1411:
DisableMenu buildallmods


should be:
'DisableMenu buildallmods


because the definition of the buildallmodules is commented out at line 1380.


Mark Tiffany(Posted 2009) [#64]
Oops! fixed this, and a similar one if running the demo in SVN.

I also applied a bunch of fixes to treeviews last night which should help performance slightly. There's a fairly major bug I have found which I need to get into now (essentially every node is refreshed up to 4 times over every refresh!), which may take a while to fix up but am hoping will solve the Mac specific slowness (and should also improve everyone else's experience slightly).


Mark Tiffany(Posted 2009) [#65]
Further fixes applied to treeviews, which should help speed things up at startup and when switching tabs (especially on MacOS). Would appreciate an update on how things are now on Mac, as I will be building and releasing a new compiled build in next few days (assuming the just compiled version I'm using is as stable as it seems)...


markcw(Posted 2009) [#66]
Ok thanks Mark, with the Pismo I now get a startup time of 25 sec and "Parsing docs" is 15 sec, so 5 sec faster there. I'm not getting faster tabbing though, in fact it's got slower eg. tabbing from Help to datanodes.bmx is 11 sec and datanodeview.bmx is 5 sec, so slower by about 25%.

Edit: I should add that there is no delay in some cases eg. tabbing datanodeview>Help>datanodes has no delays, but datanodeview>Help>datanodeview has the delay, so something to do with tabbing back to the same file.

Edit 2: just tested expanding/collapsing the Help treeview, closing the Samples node was 8 sec and is now 2 sec, so 4 times faster there. It still stops responding when I open the Index node though.

Edit 3: I'll be getting 512mb of RAM soon boosting my Pismo from 384 to 768, so I can report back my speed increases for these tests, should be interesting.


Mark Tiffany(Posted 2009) [#67]
something to do with tabbing back to the same file.

Weird! Although I must be able to do something about that to prevent it from re-building the list as it is identical...
closing the Samples node was 8 sec and is now 2 sec, so 4 times faster there.

But *closing* doesn't *do* anything?!?! (Or at least I din't think it did!)
It still stops responding when I open the Index node though.

It is a big list...but a simple one without any structure inside it, so can't imagine where it is getting hung...


Mark Tiffany(Posted 2009) [#68]
But *closing* doesn't *do* anything?!?! (Or at least I din't think it did!)

Just checked, and as I thought, it just sets a state variable to closed! There must be something special happening on MacOS...maybe I'm receiving a close event for every node under the node actually closed? (i.e. on win, just the closed node raises an event, on Mac, are several raised?)


Brucey(Posted 2009) [#69]
maybe I'm receiving a close event for every node under the node actually closed?

Possibly something along those lines.


Mark Tiffany(Posted 2009) [#70]
Possibly something along those lines.

It's all I can think of, and would be yet another macos unique quirk (I don't recall seeing similar on fltk or gtk)...and to my eyes a pretty stupid behaviour...*sigh*

Would be useful if one of you could prove in a test app. The below is a slightly modified version of createtreeview example. Please can you expand / close the treeview nodes a bit, and see if you do get multiple close events in the debug log at all. On win32 I only ever get 1 close, regardless of what's inside the node...




markcw(Posted 2009) [#71]
No. This is after just opening/closing the Help and then Projects nodes.
Building createtreeview
Compiling:createtreeview.bmx
Linking:createtreeview.debug
Executing:createtreeview.debug
WindowActivate: data=0, mods=0, x=0, y=0, extra=""
AppResume: data=0, mods=0, x=0, y=0, extra=""
GadgetOpen: data=6928944, mods=0, x=0, y=0, extra=""
GadgetClose: data=6928944, mods=0, x=0, y=0, extra=""
GadgetOpen: data=6932704, mods=0, x=0, y=0, extra=""
GadgetClose: data=6932704, mods=0, x=0, y=0, extra=""
WindowClose: data=0, mods=0, x=0, y=0, extra=""



Mark Tiffany(Posted 2009) [#72]
*sigh*

I really can't see what might be going off here.

Maybe MacOS treeviews (in maxgui maybe) are just dog-slow at closing?

What happens if you tweak the above to create loads of nodes, e.g. a for loop that just adds a couple of hundred nodes inside one of them?

Is this slow closing behaviour just a problem on some of the treeviews, or just the help one?


Mark Tiffany(Posted 2009) [#73]
When you switch view from datanodes->Help->datanodes (i.e. same file), if you have opened some of the treeview nodes up, what happens on MacOS?

My guess was that switching forced the whole thing to be rebuilt, which would explain slowness (even though I was reasonably sure the code checked if it was the same and ignored if so).

But on win32, nothing happens - the nodes stay open throughout...which implies it *is* recognising no change and not re-building (re-building the tree would close the nodes down again).


Mark Tiffany(Posted 2009) [#74]
degac, I just saw your extra fix to Field a=[,] and committed to SVN - thanks!

Note to self, I just checked above and markcw's index slowness is much worse in CE IDE ("hangs"), compared to official IDE (2 seconds).


Brucey(Posted 2009) [#75]
You also have to remember that you get one tree node per resource in the tree.

eg.

and so on, including *every* documented type, global, const etc.
On mine, that's well over 6000 nodes.

Perhaps, on older machines, memory management of large treeviews is more noticable.

Closing, doesn't appear to do much Blitz-wise, as you've seen, so perhaps it's in the managed cocoa code that it's got a lot more work to do?


Mark Tiffany(Posted 2009) [#76]
While the datanodes are created upfront, the treeview nodes themselves only get created when you open the nodes up, so it shouldn't generally create too many.

It probably is down to memory management, but what's bugging me is that the official IDE somehow doesn't (apparently) get this issue. And although I know the IDE is a bit of a memory hog (3MB on windows with no files), it's not *that* bad...


Brucey(Posted 2009) [#77]
Yeah, I'm particularly dreading the moment my IDE gets an understanding of the module hierarchy, and decides to parse everything the first time, although I'm hoping to get away with having to load a whole, large, tree structure in one go.

it shouldn't generally create too many.

I think that long list is the Index. Maybe that can be lazy loaded?


Mark Tiffany(Posted 2009) [#78]
I think that long list is the Index. Maybe that can be lazy loaded?

You know, I wondered about tweaking how the current lazy loading works last night. At present, it creates treeview nodes to the current open level plus one level down and no further. This is so that the level you have open shows the [+] sign to expand. As you say, because the treeviews open with Index showing, everything in the Index is being created as actual GUI nodes...

What I thought just last night was that it might be fairly easy to change it so that for closed nodes, it just creates a single "dummy" child node so that the [+] appears, then when you open it, it removes the "dummy" and creates the real nodes. This would avoid the "long list" issue, reduce memory consumption, and hopefully get macos happy.

Yeah, I'm particularly dreading the moment my IDE gets an understanding of the module hierarchy, and decides to parse everything the first time, although I'm hoping to get away with having to load a whole, large, tree structure in one go.

Ever since I separated the GUI from the data, the TDataNode stuff which encapsulates all such "structured" data isn't all that bad, even though there are several instances where the whole lot gets reconstructed, or checked to sync, etc. It's just when it hits the GUI things go pear shaped. It's the one good thing I did to that code, and that was so damn painful I don't want to touch it unless I have to, or get the balls to rewrite it all.


Brucey(Posted 2009) [#79]
This would avoid the "long list" issue

Right. And how often do you open the Index node? ;-)


markcw(Posted 2009) [#80]
Maybe MacOS treeviews (in maxgui maybe) are just dog-slow at closing?

What happens if you tweak the above to create loads of nodes, e.g. a for loop that just adds a couple of hundred nodes inside one of them?

Nope. After trying the modified code below I find delays of just 1 to 2 sec when opening the nodes. The only big delay was the 7 sec to startup.

Is this slow closing behaviour just a problem on some of the treeviews, or just the help one?

It was just noticable in the Help treeview, because there are so many items there.

I just realized that, like you say, the delay is when you open the node, not close it. I was opening/closing too fast all the time, so my bad.




markcw(Posted 2009) [#81]
When you switch view from datanodes->Help->datanodes (i.e. same file), if you have opened some of the treeview nodes up, what happens on MacOS?

Ok, if a node has been opened in the Help treeview then datanodes>Help>datanodes still has the delay. If I click new and tab untitled1>Help>datanodes then again no delay oddly.

Also, since I was mistaken the delay was in closing a node I have to revise my times for the Help treeview, *opening* the Samples node was 9 sec and now 6 sec, so still much faster.

I like the idea of the Help treeview 'hack' under macos, just to save you bug hunting further.


Blitzbat(Posted 2009) [#82]
I've got another bug under mac os x 10.5.7..

If i try the auto complete function it appears and closes automaticly.


markcw(Posted 2009) [#83]
Oh dear, I think I see what the problem is. I should have noticed this before.

When I type in the code editor there's a delay for every letter, about 1 sec, so I think it's not an issue with the treeview but an overall resource/memory/processor issue that is causing the delays.


Mark Tiffany(Posted 2009) [#84]
When I type in the code editor there's a delay for every letter, about 1 sec, so I think it's not an issue with the treeview but an overall resource/memory/processor issue that is causing the delays.

Even so, I think it is well worth making improvements in this area wherever possible - I will be taking a look at the "dummy" child node idea later...

...and to be honest, I am suspicious of the speed of the code that parses after typing. I mean, I am happy with it functionally, and it seems fast enough most of the time...but I have a deep rooted suspicion it does too much every time, and could probably be sped up...but that's just me hating on inefficient code.

If i try the auto complete function it appears and closes automaticly.

That will no doubt be another "extra" event under macos that the code isn't being clever enough to filter out. Will take a look later and if I can't see anything obvious, will post up some suggested debuglog's to try to pin down.


Mark Tiffany(Posted 2009) [#85]
mark:
Ok, if a node has been opened in the Help treeview then datanodes>Help>datanodes still has the delay. If I click new and tab untitled1>Help>datanodes then again no delay oddly.

Please can you check what happens if you have the *code* tabber open on a code file, have one of the nodes open, then flick to help and back again. On Windows, the tabber doesn't change. I have a sneaking suspicion on macos, it is refreshing the whole lot and would end up closing the node.

Blitzbat:
If i try the auto complete function it appears and closes automaticly.

Nothing obvious, if you have maxgui, can you try compiling the CE IDE in debug mode after replacing the Poll method in autocomplete.bmx with the below, then copy & paste back here what you see in the debuglog after using autocomplete. I know on linux & mac the window doesn't appear at cursor (no way to determine!), but I can't see an obvious problem here...



Deliverator(Posted 2009) [#86]
Having a tough time installing MaxIDE.

I've installed BlitzMax and have it working. The included IDE reports BlitzMax 1.33 through Help/About BlitzMax

BlitzMax is installed in C:\Program Files\BlitzMax

I downloaded MaxIDE Community Edition win-2.01 edition

PeaZip unpacked this to C:\Program Files\BlitzMax\maxide2

Running maxide.exe from here didn't work so I moved that executable up a folder to C:\Program Files\BlitzMax\maxide.exe

Still no luck.

So I copied everything from the maxide2 folder, moving them up to C:\Program Files\BlitzMax

Still no luck.

The maxide.exe is crashing somewhere during "Initializing GUI"


Deliverator(Posted 2009) [#87]
I should also mention that the recent update to the original IDE maxideX102.exe does work fine


Mark Tiffany(Posted 2009) [#88]
It does need to be in the blitzmax folder in the same location as the original IDE. But it sounds like you have done that (C:\Program Files\BlitzMax\maxide.exe)...

What version of Windows are you running? How far would you estimate the progress bar gets while on "init gui" ? (there's quite a bit within that chunk).

Try deleting the ide-ce.ini file from the cfg directory. Try moving or renaming the ide.ini file (this is the one for the official IDE so don't delete!) from there and try again, remembering to copy it back once done!

Looking at the code and guessing things that could go wrong - are you running multiple / funny sized desktops/screens? Do you have any extra modules / docs installed?


markcw(Posted 2009) [#89]
Ok so I added 512mb RAM to the Pismo today so after upping the memory from 384mb to 768mb and comparing the latest ce ide times I get this.

* Startup time was 25 sec now 20 sec, "Parsing docs" was 15 sec and still 15 sec.
* Tab from Help to datanodes.bmx was 11 sec and still 11 sec.
* Opening the Samples node was 6 sec and still 6 sec.

So these are clearly issues with the processor then, but I did get a nice boost to the startup.

Please can you check what happens if you have the *code* tabber open on a code file, have one of the nodes open, then flick to help and back again. On Windows, the tabber doesn't change.

Oh right, hold on. Right, the tabber doesn't change.

I've just noticed if I close the code tabber filename node up I get a massive speed increase, tabbing from datanodes>Help>datanodes goes from 11 sec down to 2 sec.


Deliverator(Posted 2009) [#90]
What version of Windows are you running?

XP Pro 2002 SP3

How far would you estimate the progress bar gets while on "init gui" ?


It happens too fast for me to tell or even get a screenshot. Sorry!

Try deleting the ide-ce.ini file from the cfg directory. Try moving or renaming the ide.ini file


I moved them into a subfolder in ./cfg and tried to run it without success.

are you running multiple / funny sized desktops/screens


NVIDIA Quadro FX 560 (I know it's a piece of crap, but it's a work machine.)

Dual screen mode, extended desktop
Primary: 1920x1200
Secondary: 1024x1280 (portrait mode, it's a rotating screen)

I tried disabling the secondary display and also lowering the res on my primary display to 1024x768 and still no success.

Do you have any extra modules / docs installed?


Hmm. Good question. I've got the Grey.A.G. Framework and I've also tried Blide (free) - but I'm not sure whether these install any extra modules.


Deliverator(Posted 2009) [#91]
Do you have any extra modules / docs installed?


Checking the newly created ide-ce.ini file:


[HostOptions]
showtoolbar=1
restoreopenfiles=1
autobackup=1
languagefile=
win_size=168,40,688,688
win_max=1
single_instance=0

[SyncOptions]
sync_state=
modules=BRL,PUB,AXE,BAH,MAK,GMAN,BIRDIE
module_names=BlitzMax Core Modules,Public Domain Core Modules,User Contributed Modules,Brucey's Modules,Mark Sibly's,Simon Armstrong's,Garrit Grandberg's,Dave Bird's


Deliverator(Posted 2009) [#92]
In searching older builds of MaxIDE Community Edition, another file was necessary - a help file or something - and that is missing from the posted .zip file.

Just to make sure, is that file no longer necessary?


Deliverator(Posted 2009) [#93]
Quick update. I completely removed and reinstalled BlitzMax and MaxIDE CE, ensuring I downloaded and installed the latest version of both.

No luck.


markcw(Posted 2009) [#94]
So I copied everything from the maxide2 folder, moving them up to C:\Program Files\BlitzMax

That's the source, are you building from source? What is the zip filename you're installing?


Deliverator(Posted 2009) [#95]
That's the source, are you building from source?


No, I am not building from source. There are, as it turned out, some extraneous folders in the EXE zip.

What is the zip filename you're installing?


maxide2-win-2.01.zip

...the one posted to SF, specifically:

http://sourceforge.net/project/downloading.php?group_id=154065&filename=maxide2-win-2.01.zip&a=8857306


Mark Tiffany(Posted 2009) [#96]
Just to make sure, is that file no longer necessary?

no...because the app includes the files it wants in the binary and then saves them when it first runs. Try running as admin, see if it's the saving of the files that causes issue. All your other answers seem reasonable with no further clues.

If you have maxgui, may be worth getting the source and attempting to compile yourself in debug mode. Interestingly, as of 30 minutes ago, I am getting weird inconsistent errors all over the shop for really minor tweaks, which is probably just coincidence...


Deliverator(Posted 2009) [#97]
Try running as admin...


I'm running XP and have rights to install apps...pretty much anything really. In checking the permissions properties for the executable, I have the same Allowed permissions as Administrators.

In reviewing my effective permissions, everything is checked.

I'm stumped. :\


Mark Tiffany(Posted 2009) [#98]
Me too! The only thing likely to give any further clues would be for you to compile and run in debug mode...are you able to do that?

mark (and Brucey I guess) - I have just committed to SVN changes to only create dummy nodes in unopened but visible treeview nodes. This does seem to have made a slight improvement to startup time on my windows machine, and I can see it say "Loading..." (my dummy node!) just before the index appears, say after 1 second. So I seem to have successfully shifted the time impact to when you actually open the nodes, and it all seems to be working, APART from the project tree. The project tree is somewhat different in how it works (something I want to sort out anyway), but I know it is broken in SVN at present.

Please can you check speed now and report back if any improvement in both startup and tabbing and opening nodes (this may actually be worse for some nodes, e.g. Index, but should generally be better overall).


markcw(Posted 2009) [#99]
Ok, after svn update I get the following times.

* Startup time was 20 sec now 10 sec, "Parsing docs" was 15 sec and now 1 sec.
* Tab from Help to datanodes.bmx was 11 sec and still 11 sec.
* Opening the Samples node was 6 sec and still 6 sec.

Also, now when I tab to another code file the nodes in the code tabber are loaded broken ie. no sub-nodes. I have to close and reopen the filename node to fix it.


Mark Tiffany(Posted 2009) [#100]
Thanks Mark - pretty much as I expected : the change was bound to improve startup, but the trade-off on opening the nodes should be about the same (it now has to build all children on opening, but no longer has to build all the children of those children).

Also, now when I tab to another code file the nodes in the code tabber are loaded broken ie. no sub-nodes. I have to close and reopen the filename node to fix it.

I knew projects was broken a bit, and suspected others could be a little knocked out but didn't have time to fully test and wanted to check it made a difference first!

I'm not sure what's up with general slowness now, but just noticed an edit of yours higher up:
Oh right, hold on. Right, the tabber doesn't change.

I've just noticed if I close the code tabber filename node up I get a massive speed increase, tabbing from datanodes>Help>datanodes goes from 11 sec down to 2 sec.

Interesting...will have to think on that one...


markcw(Posted 2009) [#101]
Just to clarify, when I tab datanodes>Help>datanodes and the code tabber nodes are broken it is 2 sec, when the code tabber nodes are not broken it is 11 sec.

Also, when I tab back from Help the broken nodes get updated ie. fixed.


Mark Tiffany(Posted 2009) [#102]
Just to clarify, when I tab datanodes>Help>datanodes and the code tabber nodes are broken it is 2 sec, when the code tabber nodes are not broken it is 11 sec.

Also, when I tab back from Help the broken nodes get updated ie. fixed.

These seem to kind of contradict each other...I think you are saying:

When you open up, codetabber nodes are broken.
Tab to Help and back = 2 seconds and nodes are then fixed.
Tab to Help and back again = 11 seconds and nodes are fixed, and this is consistent thereafter.

So it seems the slowdown is when there are nodes in place, and it is comparing them during a refresh to decide what needs updating...possibly updating all nodes, regardless of need to update them...hmmm...try replacing TDataNodeView in datanodes.bmx with this (it only calls ModifyTreeViewNode if it has changed name...)




markcw(Posted 2009) [#103]
These seem to kind of contradict each other...I think you are saying:

When you open up, codetabber nodes are broken.
Tab to Help and back = 2 seconds and nodes are then fixed.
Tab to Help and back again = 11 seconds and nodes are fixed, and this is consistent thereafter.

Em, no. When you open up ie. at startup, the code tabber nodes are not broken, it's only when you tab from one code file to another code file that code tabber nodes get broken.
You're right on the other two points, there's no delay (from Help>code file) when the nodes are broken or closed.


Mark Tiffany(Posted 2009) [#104]
Okay, thanks for clearing that up mark. I know what is causing the broken nodes (if not the fix just yet), and the remaining slowness is clearly about updating a list.

Did the code above make any difference?


markcw(Posted 2009) [#105]
Yes, that fixes it. Sorry I didn't read that bit before.

Ok, so with the new TDataNodeView code I get:

Tabbing datanodes>Help>datanodes was 11 sec now 1 sec.
Typing in the code/editor window is now much more responsive eg. deleting 10 letters in one press in datanodes.bmx was 17 sec is now 2 sec (official ide takes 1 sec).
Opening the Samples node was 6 sec now 3 sec first open/close, 6 sec second open and no delay on further opens.
Opening the Index node still hangs the ide.


Mark Tiffany(Posted 2009) [#106]
Yes, that fixes it. Sorry I didn't read that bit before.

Excellent. I half suspect there may be something up with the mac maxgui driver (e.g. is it refrehing the entire treeview on every slight change??), but that's really good news.

Opening the Index node still hangs the ide.

Not sure there's anything I can do here to speed it up and maintain functionality as it is.

But I could alphabetise the list and have a node per letter to break it up a bit...I can't see anyone minding that, and it probably would be more functional as well as less slow - even I see a 1 second delay before it is populated! I actually want to add a simple search function a la someone else's (degac's?) tweaked official IDE, as this would be much more useful for command ref anyway. Personally, I always just type the command and then hit F1!

Will try to fix the broken nodes issues and ideally alphabetised nodes to release a 2.02 by the end of the weekend.


markcw(Posted 2009) [#107]
Yes, I like that idea, it wouldn't be an inconvenience to anyone, in fact it would be much more accessible as alphabetized nodes. Great.

Also, I'm not getting the auto complete box up either I don't think. Sorry but I don't know how it's supposed to work. Do you press a hotkey? Is it for OO labels? Does it do functions?


Mark Tiffany(Posted 2009) [#108]
ctrl+Space. It only works on keywords, e.g. type create then ctrl-Space and you get a list of keywords starting with create. Not brilliant, but something...

On Windows, it pops up at the text cursor. But there's no (known) way to get the x,y pos of the text cursor on mac & linux (there's a private method in fltk). As such, it just pops up at the mouse pointer position. Or at least, it does in theory, but there is a report above that it shows and hides itself straight away on mac...


SebHoll(Posted 2009) [#109]
But there's no (known) way to get the x,y pos of the text cursor on mac & linux

Mark... You do know about TextAreaCharX() and TextAreaCharY() that I implemented for you last year, that should work across all platforms?


markcw(Posted 2009) [#110]
Oh right, cool. I see it's in IDE Options>Keys.

I'm getting the same thing here, plus I get it in linux, both Fltk and Gtk. A "Hint window" pops up at the bottom-right (about x 500, y 500 - regardless of cursor or mouse position) for a moment then closes and focus returns to the code window, same in mac/linux (well not exactly, in mac it flashes twice and in fltk the cursor looses focus).

Unfortunately, there's a clear delay on my Pismo before the window is opened which depends on the length of the list. Maybe it is the same problem seen with the treeview nodes.


Mark Tiffany(Posted 2009) [#111]
But there's no (known) way to get the x,y pos of the text cursor on mac & linux

Er, yes, I did. *blush*

I clean forgot about that when I went through an "I can't be arsed" phase.

Will take a look at auto-complete on linux then, I;m guessing there's an obvious common flaw...

Note to self of things to do:
- Fix broken project, code and todo nodes in treeviews due to dummy node speed up
- add alphabetised breakdown to index list
- Use TextAreaCharX/Y for autocomplete window
- Check out auto-complete on linux

EDIT: striked items above fixed & committed to SVN


Mark Tiffany(Posted 2009) [#112]
mark, I've added alphabetised index, let me know if this fixes the hanging problem.


markcw(Posted 2009) [#113]
Yes, that fixed it. Thanks.

Index now opens in 3 sec, the longer letter nodes are quite slow eg. C is 25 sec, A is 35 sec and L is 75 sec which is the longest list due to lua.

Tabs from one code file to another now load treeview nodes in the code tabber correctly. Also tested the todo tabber.

Edit: this is wierd. the second time I open the Index node it opens straight away but then the timer icon appears for 50 sec, now when I open the letter nodes they have all been loaded ie. no delays.

Edit 2: I get the same behavior opening the Samples node, after the slower second open the children are all loaded but the children's children aren't loaded.


Mark Tiffany(Posted 2009) [#114]
Cool!

I think the remaining slowness is pure maxgui / your machine. Opening the Index node is now simply opening an existing set of 24 nodes, and adding a single child node to each one : not complex stuff at all.

Seb,

I'm trying to use TextAreaCharX/Y, and although they do seem to work as intended, I was hoping to end up with the *screen* X and Y. You'd think you should be able to calculate it, but the textarea is inside a panel inside a tabber, inside a panel, inside a window that has a toolbar...and it's not obvious working out (in a cross-platform way) all the sizes. A simplistic calc using gadgetx/gadgetheight/clientheight don't quite cut it.

I can probably change the code to not need screen X and Y and get around it, but it just feels like a bit of gap in maxgui (shock, horror!) that I can't work it out. (or maybe I'm just being thick!)


Mark Tiffany(Posted 2009) [#115]
Okay, have tweaked code (and SVN'd) for auto-complete to use TextAraCharX/Y, and it now behaves much as before on Windows. In theory, should now show in a sensible place on Mac & Linux, but untested on either as I need some sleep. Will fire up Linux over the weekend and fix the "shows then hides" issue before building a new version, hopefully if I sort Linux FLTK and GTK for this, Mac will fall in line too...

Seb, TextAreaCharY appears to return the Y pos of the cross-bar of the letter t...is that intentional? I had expected either the top-left or bottom-left, but it seems about 4 pixels off the top for me. Also of note is that without having access to the pixel height of a font, knowing the top-left pos is not quite enough for me, as I need to show below the line...


SebHoll(Posted 2009) [#116]
Seb, TextAreaCharY appears to return the Y pos of the cross-bar of the letter t...is that intentional? I had expected either the top-left or bottom-left, but it seems about 4 pixels off the top for me.

The offset might be due to the border offset... Is this on Windows?

Also of note is that without having access to the pixel height of a font, knowing the top-left pos is not quite enough for me, as I need to show below the line...

Can you not just get the Y-pos of the top of the next line, which will be approx the bottom of the prev line?


Mark Tiffany(Posted 2009) [#117]
The offset might be due to the border offset... Is this on Windows?

Yes - haven't had a chance to check linux fltk (is it in gtk? suspect not?)

Can you not just get the Y-pos of the top of the next line, which will be approx the bottom of the prev line?

I did think that, but you could be on the last line when you use auto-complete! I think that I will do a little trick at startup (and change of fonts) to determine the font width and font height using these two functions. Completely naff, but until there's a proper way to determine how the font is rendering inside the textarea (probably only from a custom textarea), it'll do the job...and pretty simple to knock up.


Mark Tiffany(Posted 2009) [#118]
fyi, am still trying to solve the auto-complete on linux mystery. Although I've made a whole bunch of minor tweaks to ignore certain "extra" events, I now have an utterly weird scenario where I type e.g. "tex" then "Ctrl-Space" (or *any* other hotkey set in options for auto-complete) to get the list, then type "t" which should get added to the textarea and update the list...

...except it doesn't. It opens the "Tools" menu. WTF? There isn't even a MaxGUI command to *DO* that, so what's going on? This is on FLTK by the way, haven't even dared going near GTK just yet! Will play further this week, but this feels like a rather large and sturdy brick wall so far...


matibee(Posted 2009) [#119]
I like this IDE, it's a welcome step up from the default. The todo tab is very dandy.

I've seen this requested for Blide, and I'll request it here too.. Alphabetical sorting of function names in the treeview.

EDIT - Another idea ;)

Make the project tree view open up any dbl clicked file in the appropriately registered app. Now that really would make my life easy! -- Just seen what the "Shell" menu does!

Nice work Mark.


Mark Tiffany(Posted 2009) [#120]
It already does sort them - just check the option in ide options, tools. Probably should be the default...


markcw(Posted 2009) [#121]
Ok this is what I see on Mac (but only for a moment), the window doesn't look the same as say the goto window, which has square corners and smaller menu buttons. So maybe the window code itself is the problem?




Mark Tiffany(Posted 2009) [#122]
hmmm, does mac not do borderless (including title-less) windows? The title bar shouldn't be visible, nor should the sizing gadget, Otherwise, that is pretty much it...

Away this weekend, so this is gonna have to wait to next week to work that weird menu "stuff".


markcw(Posted 2009) [#123]
Well I made some progress. If I remove WINDOW_HIDDEN from CreateWindow on line 48 in autocomplete.bmx on Mac, two autocomplete windows are loaded at startup. If I type ctrl+Space the first window is populated, moved and then closed. Another ctrl+Space populates and moves the second window but this does *not* close. After that it goes back to the auto-closing.

Edit: tested this in Fltk and Gtk. Again two autocomplete windows are loaded at startup but they are behind the ide (in Mac they are in front of the ide). Typing ctrl+Space just closes the first window. Another ctrl+Space populates, moves and then closes the second window. I suppose I should say 'hides' as it is still shown in the taskbar.


Brazilian Joe(Posted 2009) [#124]
I am having the same crash problem on Vista.
I am a recent BlitzMax user, I have a vanilla installation and just copied the maxide CE executable to the installation folder (after renaming the original).

My windows account has administrative privileges and I have disabled UAC.
Unfortunately, I do not have a MaxGUI license, so I can't help with programming or test builds.


markcw(Posted 2009) [#125]
Ok, I have a hack that fixes this on Fltk and a bit on Mac but not Gtk. Comment out _hint.Hide() on line 145 in autocomplete.bmx, or comment out HideGadget _gadget on line 565 in tool.bmx. On Mac you have to press ctrl+Space twice for it to work, the first try closes but populates the list. The problem with this hack of course, is that the hint window is not hidden any more, but at least it's progress.


Mark Tiffany(Posted 2009) [#126]
Thanks for looking into this mark. I've been really busy this week at work, and now off camping til Tuesday. Hopefully will get a chance to look at next week.


markcw(Posted 2009) [#127]
Ok. I was beginning to wonder if you had given up on it. I will try to get a bit further while we wait for your return.


markcw(Posted 2009) [#128]
Well I managed to get autocomplete working quite well on Mac and Fltk but still not Gtk unfortunately. Comment out the two '_hint' lines on 173 and 178 in SelectItem() in autocomplete.bmx and ignore my previous hack.

Fltk only actually needs the ShowPos() line out, removing the SetContent() line makes no difference since the hint window doesn't show (Fltkmaxgui issue maybe?). Mac needs both lines out but the hint window does show and it's under the mouse pointer too.


MikeHart(Posted 2009) [#129]
I press my thumbs for you that you get it working nicely.


Mark Tiffany(Posted 2009) [#130]
interesting...

http://www.blitzmax.com/Community/posts.php?topic=85716


coffeedotbean(Posted 2009) [#131]
This ide crashes while loading on 2 machines, load bar gets about 50% and crashes.

Windows XP. 1400x900 resolution.

I uninstalled BMax from my system, reboot then downloaded a new install of Bmax from this site and installed to c:\Bmax then copied all files/folders from the "maxide2" folder in the .zip into the c:\Bmax folder where my orginal IDE resides, replacing several files including the IDE executable.

I also turned off AVG (anti virus) just in case.

I also tried on my netbook, WindowsXP, 1024x600 resoltuion.

Same thing again, gets 50% but this time it mentions "initilising GUI" and then crashes.

I see a few others have had issues but no resolution, any advice?


Mark Tiffany(Posted 2009) [#132]
No-one's been able to provide enough info to reproduce, and "it works for me", so virtually impossible for me to fix.

I think I had two ideas for cause: one was that there was something in the keywords list or docs that was causing issue, e.g. some weird module. But using a clean install disproves that. The other was that UAC was doing it's funny business when ce-ide tries to create the ide-ce.ini file (if not in UAC mode, the created file will be virtualised, so won't exist when the app tries to access it again). But I think I added some code to handle not having the file to SVN, and wasn't convinced this should occur (as the point of virtualisation is it would look to the app like the file *was* there!). Again, installing to C: should mean that is avoided...

If you are able to compile and run it in debug mode yourself, then maybe you could pin-point precisely when it crashes.


coffeedotbean(Posted 2009) [#133]
hum.. ok try with source and see what happens.


Kanati(Posted 2009) [#134]
Windows 7 Ultimate (x64)

Running it as administrator.

Crashes.

I'll fiddle with it later and see what I can come up with.

(comes up with an Unhandeled exception: attempt to access field or method of Null object when run from the IDE though...)


Mark Tiffany(Posted 2009) [#135]
(comes up with an Unhandeled exception: attempt to access field or method of Null object when run from the IDE though...)

Whereabouts in the code does it throw that? Someone else reported similar before, and as above there's an odd issue for a handful of people that I really can't figure out.

I assume the official IDE works okay?


Kanati(Posted 2009) [#136]
I'm tracking it but I gotta get back to work. Might have to do it later.

But it's definitely tossing it from menu code the bmxhost.bmx module in the initialize method. And it has something to do with menus. So ultimately it's coming from maxgui, but the cause is menus...

Function DisableMenu( menu:TGadget )
	menu.SetEnabled False
End Function


That's what set off the error in the end from the maxgui.bmx code... I'm trying to track down why.


Mark Tiffany(Posted 2009) [#137]
weird!

I wonder if there's maybe some bug in maxgui when disabling a menu in windows 7 in the specific set up I have in maxide. I'd hazard a guess at it being a problem e.g. when disablig a hidden menu, or a floating pop up menu not visible, or maybe one with an image attached to it...


SebHoll(Posted 2009) [#138]
Does what Kanati say kinda imply that Null is being passed to DisableMenu(), as opposed to a valid menu gadget (hence the Null exception)? If this is the case, I'm not sure that this would be a MaxGUI bug.


Kanati(Posted 2009) [#139]
		If Not mingw
			DisableMenu buildmods
			DisableMenu buildallmods    <--- That's the culprit causing the crash
		EndIf



Kanati(Posted 2009) [#140]
		'buildallmods = AddMenuItem ("@@rebuild_all_modules" , MENUBUILDALLMODULES , tools,0,0,PixmapFromIconStrip(_iconstrip,ICON_MODULEBUILD))


And THAT is the ultimate cause. It's been commented out, and then you try to disable it later on.

And it's only going to happen to people that don't have mingw installed. Since you do... "it works for you".

Now how difficult was that? :)

Kanati


coffeedotbean(Posted 2009) [#141]
all hail Kanati =D


Mark Tiffany(Posted 2009) [#142]
Thanks! I had completely forgotten that I had removed some of the menus at the last minute in the previous build! doh!

Will try to get some time Saturday to check this into SVN and package up a 2.02 build.


nrasool(Posted 2009) [#143]
Hey Mark, Did you ever do a new build as I'm getting the same issue, even thou I have mingw installed and the environment path is setup correctly


Brazilian Joe(Posted 2009) [#144]
Is upcoming build 2.02 compatible with 1.34?
Or the CE GUI usually has no compatibility problems across different BlitzMax versions?


Mark Tiffany(Posted 2009) [#145]
Should be fine, but untested and haven't done another build as am getting zero time to spend on Blitz past visting these fora these days....


Scaremonger(Posted 2009) [#146]
I've been having that same weird problem where CE crashes during Initializing GUI. Progress bar is 7 or 8 blocks across (Unfortunately the windows error box appears too quickly over the top of it to get a screenshot).

I installed 1.34 into C:\Blitzmax without any additional modules, run the original IDE to build docs, then tried CE-IDE and it failed.
I re-installed and instead of loading the original IDE first, I tried the CE-IDE. It creates the cfg folder but does not create an .ini file before it bombs out.

Next I downloaded the source code from the link at the top and tried to compile both TEST.BMX and MAXIDE.BMX and I got the following error (v1.33 with MaxGui 1.32).

Compiling:tool.bmx
Compile Error: Identifier 'TScrollPanel' not found
[C:/source/blitzmax-ide/tool.bmx;259;2]
Build Error: failed to compile C:/source/blitzmax-ide/tool.bmx


Next I tried to compile from the newly installed version 1.34 (with MaxGUI installed). It compiled fine and works in both the 1.33 and 1.34 version folders. I compiled from 1.33 with Maxgui 1.34 and that version is fine too.

Downloaded MaxIDE.exe = 989,184 bytes
Compiled MaxIDE.exe = 1,025,536 bytes

Any suggestions?


Mark Tiffany(Posted 2009) [#147]
Looks like Seb committed some updates to get things working with maxgui 1.34, so you need to download that from the product updates to get it to work. (I'm doing same now - shows how long since I last compiled it!)


Mark Tiffany(Posted 2009) [#148]
Seb, I'm getting weird errors compiling latest code on MaxIDE 1.34 and MaxGUI 1.34rc7 - an assert is being raised when comparing a lower case copy of source to a lower case copy of the source. Have I got a frigged installation, or is this the same for you?


Mark Tiffany(Posted 2009) [#149]
Hmm, seems to have calmed down now, and have established that Kanati's fix is indeed in the SVN.

Have committed a fix to sort out the toolbar position with maxgui 1.34, so all should now be happy if you use the SVN set of code, or the tarball in topmost post from tomorrow.

Note that Seb's splitter changes will mean your splitter orientation may be lost - just use IDE options to reset.


Scaremonger(Posted 2009) [#150]
Has anyone else noticed that Cut/Paste is operating strangely... At times there seems to be two different copy/paste buffers...

Sometimes when I Ctrl-C and then right-click Paste. I get the previous content of the clipboard, but then if I do Ctrl-V I get what I Copied with Ctrl-C.

At first I thought I was going mad, (the jury is still out on that one), but there is something weird going on. I just cannot replicate the problem on purpose...

Anyone else seen this behaviour?


degac(Posted 2009) [#151]
These are some things I like to see both in the MaxIDE Community Edition and in the default one.

- ability to redirect the 'output screen' on an external file.
- track of the errors (so it's easy to check if the new changes have caused DIFFERENT error)
- internal search engine for help command(I'm still using my own version :P)


jonwalker(Posted 2009) [#152]
Hi,

Are their any installation instructions for this? I've extracted to the MaxIDE install folder. However on launching the new maxided.exe I get a crash.

I've looked in the doc and document folders, they appear empty. Also no install.txt or other files in the root of the 2.01 ZIP.

Thanks, Jon


degac(Posted 2009) [#153]
You need to place the MaxIDE CE (.exe) in the same folder of standard MaxIDE. No other files are required.


Snixx(Posted 2009) [#154]
Can you add the option to set a root file (.bmx) so that you can compile while viewing any source file in your project and it wont start compiling an exe for that file?

eg. I have my project files open and i hit compile while viewing loadmesh.bmx or something it compiles or trys to compile loadmesh.exe can we not have an option so that in the project prefs we could set it to always compile main.bmx or whatever entry file we use.


Mark Tiffany(Posted 2009) [#155]
Try the "lock build file" option. Only works if you have your main file open mind you, but does force that to be the one being built regardless of which tab you have open.


BlitzSupport(Posted 2009) [#156]
I just downloaded MaxIDE CE again today, and it crashed while displaying the progress bar -- I imagine this is the same crash jonwalker saw above. I finally tracked down the problem -- I had to comment out this line in bmxhost.bmx -> TBMXHost -> Initialize:

DisableMenu buildallmods


Searching for 'buildallmods' shows this menu item was commented out at some point.


Mark Tiffany(Posted 2009) [#157]
I'm sure this is fixed in the SVN version of code, but probably not in the build linked at the top.


Abrexxes(Posted 2010) [#158]
If someone need it, the latest sourcecode compiled for win32 (icon group incl.)

http://www.blitzforum.de/upload/file.php?id=7786

Changes and open bugs since 2.01


Added Alphabetised structure to Index
Added Editor Splitter & ScrollPanel in Options upgraded to new MaxGUI gadgets (thanks Seb!). Note that you may need to reset the orientation of your splitter.
NEED TO ADD Single Instance Mode (win only) made official & default with option to turn off
Issue LINUX & MACOS: Auto-complete shows then hides.
Issue Need locale text for threaded build option in IDE options!
Issue Look at defaulting more options on
Fixed Keywords at end of line now capitalised after hitting return
Fixed Global array declarations in Fields & Globals not handled correctly by code tree (thanks degac)
Fixed Version control now refreshes project list after checkout/update/commit
Fixed Tidied up error parsing, should handle C / unknown errors better now (thanks REDi)
Fixed Problem with highlighting of Rem blocks in C/C++/ObjC
Fixed Language selection shows default as English not just "(Default)"
Fixed Various improvements made to improve startup time
Fixed Help, Code & Todo panels sped up at startup & when switching tabs (especially on MacOS)
Note: This is achieved by deferring creation of entire tree structure, so you may now see "Loading..." on e.g. the Index node when opening. Any delays seen here are those moved from startup to when they are actually needed (if they are needed), i.e. no overall degradation in speed.
Fixed Hang on opening the Index on slower systems (especially Mac)
Fixed Occassional issue with navbar opening in wrong place at startup
Fixed Reduced memory footprint on startup and cost per file
Fixed Updated Italian localisation (thanks degac)
Fixed Auto-complete now shown at cursor on Mac & Linux (in theory, untested!)
Fixed Windows: Failed to start if MINGW not installed
Fixed MacOS: Help & Code panels now show correctly
Fixed MacOS: Help & Code trees now collapse correctly
Fixed MacOS: Ranlibs is only run on startup if demo version, just like the official IDE
Known Issues
Issue Need to determine font width & height using TextAreaCharX/Y at startup & font change.
This can then be used to set the position of auto-complete more consistently.
And to fix the fact that some tab & font size combinations give inconsistent text layout.
Issue Windows: Application EXE icon broken due to manifest conflict
Issue Linux/FLTK: Few minor issues...

* Double click on code item moves cursor but doesn't show line (FLTKmaxgui bug)
* Menu shortcuts only work in lower case (FLTK bug)

Issue Linux/GTK: Various issues...

* Unable to set hotkeys (awaiting Brucey GTK canvas KEYUP/KEYDOWN events fix)
* Unable to scroll hotkey list (awaiting Brucey GTK fix for tabbers)
* Find/Replace blanks textfields & hangs (awaiting Brucey GTK TextFieldText fix)
* Undo/Redo broken in some circumstances (awaiting Brucey GTK Set/SelectTextAreaText fix)
* Output window does not refresh properly (same as official IDE)
* On error in compiled app, error not shown, and Output tab not shown (same as official IDE)


bye


Crovean(Posted 2010) [#159]
Can you guys implement "Find in files" ? =) It's really handy and I miss it in the MaxIDE CE.... :)

...and btw... There is some keywords that won't Auto Capitalize for me when hitting enter: "Print", "SuperStrict" / "Strict", "Rem" and "EndRem"... I have to hit space before hitting Enter for the words to auto capitalize.


VicToMeyeZR(Posted 2010) [#160]
Is there a way to make the svn part of the project manager editable? Would be nice to be able to configure it for different versions of SVN's. I use tortoiseSVN, and this part will not work for me.


VicToMeyeZR(Posted 2010) [#161]
in the build options menu, there is a selection for WX GUI app. How do you get that to be selectable?


Brucey(Posted 2010) [#162]
in the build options menu, there is a selection for WX GUI app. How do you get that to be selectable?

Unless you are on Mac, it's not important :-)


ima747(Posted 2010) [#163]
Just started using CE and love it, but I've got a couple bugs. (Mac intel)

Most importantly I can't use the find feature, the window open up and I can click things but if I try to type then maxide crashes. It worked the first couple times but not at all any more.

If I lock a build file, the next time I launch the maxide it is still locked (whatever file I'm viewing it will still build the locked file) however the window tab title doesn't say "build: " like it should so I don't know which file is the build target.

When re-opening the app, and it re-opens my previous files, lines with lots of tabs such as

(tabbed so it lines up with another array above it so I can easily connect the two) get soft wrapped. if I go to the Tools Menu->IDE Options... and then just click ok to close that it un-wraps the lines.

Last edited 2010


Isaac P(Posted 2010) [#164]
Is anyone able to provide a mac binary please? I don't have maxgui so can't compile

Thanks in advance!


Pülikum(Posted 2010) [#165]
There is a bug in the Debug-Tree: If a variable changes to 0 or to "", the change is not be shown.

DebugStop
Local a%=25
a=0

Local b$="Hallo"
b=""



Wiering(Posted 2011) [#166]
For a long time I've been avoiding new versions of the community IDE because of the program losing focus all the time (after running a program, or using any dialog in the IDE, the cursor is lost, the tabs at the top are selected and you have to click the mouse in the editor window before you can continue editing).

I removed the following line from bmxhost.bmx and now everything works fine again!

If currentpanel = panel Then DebugLog "SelectPanel:I'm already active!";Return


Last edited 2011


Devlin(Posted 2011) [#167]
I'm having an issue with MaxIDE CE in Linux(ubuntu 10.10, up to date) - when I have a large (500+ lines) the program becomes horribly unresponsive, I type faster than the app can update, but all other applications operate as expected. Is this a known issue and if yes, is there a fix for it?

Thanks, David.


Russell(Posted 2011) [#168]
Is autocomplete turned off? Because neither the pre-compiled linux version above (fltk) nor the source code version autocompletes any of the command names.

I thought maybe I would need to include, from the source code version, the 'lexar' folder, since it seems to contain relevant files, but doing so had no effect.

I have autocomplete turned on in the IDE options. Keywords are highlighted correctly, but no autocomplete. :(

Any ideas?

Russell


Yan(Posted 2011) [#169]
CTRL + SPACE


Russell(Posted 2011) [#170]
Ah. So it's more of a semi-autocomplete, then? :)

Would be cool if it worked like Purebasic's: After you enter the second or third letter (configurable) of the keyword/variable/constant/etc, all of the keywords that match what you have typed show up in a drop-down box without having to use any additional keystrokes, from which you can select the choice you want. This speeds up coding a LOT!

Since the code-completion code is already in place, an option to do this automatically in BMaxCE (without using Ctrl-Space) should be an easy addition for v2.02.... ;)

Russell


Yan(Posted 2011) [#171]
Since the code-completion code is already in place, an option to do this automatically in BMaxCE (without using Ctrl-Space) should be an easy addition for v2.02.... ;)
Luckily for you, the project is open source so it shouldn't take you too long.

I'll wait here.


ridix(Posted 2011) [#172]
hi,

are there any plans to build a MaxIDE using brucey's great wxMax Module?
Would be the best solution for windows / linux and MacOsx


cermit(Posted 2011) [#173]
Hello everybody!

Haven't posted here for a long time, originally a Blitz3D user, bought BlitzMax a while ago and now I'm finally getting around learning it after deciding C++ was troublesome enough with various crossplatform libraries for this game I want to make.

Either way, I'm very happy to see the CE edition of the MaxIDE since the default one feels rather limited (and non-standard at least on windows) comming from Visual Studio.

The pre-built win32 crashed on the splash screen so I built it from source and of course, it crashed, so I commented out:
DisableMenu buildallmods

A prevous comment that suggested to do that - and now everything is running smoothly.

Just thought I'd leave a comment about that in case anyone else has the same problem (until it can be fixed permanently?).

Thanks to everyone working on this project, it's extremly appreciated.


.rIKmAN.(Posted 2011) [#174]
Really liking the extra features in the community edition, so thanks to all that have contributed to the new features, they are very handy!

I do have a couple of questions for maybe future features...

Is it is possible to return to the tab you were on when you build+run, rather than it staying on the Output tab and you having to manually move back between the tabs.

I know you can use keyboard shortcuts to make it a bit quicker, but if there was any way to make it auto return to the "launching tab" after the program quits, that would be great, and save time over longer periods - it all adds up :)

Also, leading on from the last question, is it possible to be able to "Build+Run" from any source file in the project directory?

I guess something like setting the "main" .bmx file for a project dir and no matter what file you have open in the editor (from that project), it will run and compile from the pre-selected "main" source file.

ie. If I forget and hit "Build+Run" when inside one of my include files, it won't compile, so I have to remember to go back to the main .bmx and do it again.
Then once it's compiled it's stays on the Output tab, so then you have to navigate back to the original include, then back to the main to test it again etc etc.

Would these features be possible to implement, or is the IDE built in such a way that it is unfeasible?

Keep up the good work!

EDIT:
I am using the latest compiled version posted in this thread a few posts up, and have a couple of minor issues.

1) If I move the IDE window by left clicking and holding the titlebar of the IDE, all the tabs flash on and off until I let go of the mouse.

2) Sometimes the Build, Build+Run and Build+Debug buttons get greyed out and I cannot execute my code, even keyboard shortcuts stop working, no idea why.
Closing and re-opening the editor fixes the problem, so it's not a major issue, but thought I should report it.

EDIT DOH:
Just realised I just had to hit "Stop" on the menu bar fo fix problem 2 - what a total dick I am lol!
Is there any chance of using 'Escape' to stop the debugger and return to the code editor?

Just the flickering to report then...nothing to see here, move along :)

Last edited 2011

Last edited 2011


Paul "Taiphoz"(Posted 2011) [#175]
Just tried the above German download but it's missing my sied project/debug/code pannel. couldnt seem to get it to display.

Also with auto complete, I hardly ever use it because I actually have to hit a key combo to pop it up, can this not simply be turned on all the time ?


Paul "Taiphoz"(Posted 2011) [#176]
pulled the post cost I found an error in the code.

Last edited 2011


Paul "Taiphoz"(Posted 2011) [#177]
<<Ignore the above post still have the bellow issue>>

As a side note, this is the first time I have built the IDE or messed with the source, is there any reason my above changes would stop the TAB key from actually tabbing in my code in the editor ?

It's like when I hit tab its only adding a single space, but looking at the above code box it looks like the tabs are actually being inserted, just not acted uppon ?

Last edited 2011


Paul "Taiphoz"(Posted 2011) [#178]
Fixed the above.

If anyone is interested I made a change to the save functions in the IDE, now when ever I run any code it will auto create a Backup folder local to the source file, in that folder it will create a backup of each run so you get a full detailed backup of all your changes every time you save or compile and run your code.

My current project's backup folder is now into the 300's on its main file, and double digits on the others, total folder size is still only a few meg, which is cool. every now and then I just zip the whole folder slap a date on it and then get back to coding.

I might edit to the code to add a zip threshhold so that if you folder gets larger than say 10 meg, the IDE itself will auto zip it for you.

I know there are SVN's and other stuff that does this for you checking in and out, and all that crap but for some of us, it's a hassle we dont need, at least it was for me.

Anyway if anyone wants to code just let me know.


matt!(Posted 2011) [#179]
On my Mac tabs are not displaying meaning all code is very close to the left edge. They're not even displaying as wide as space characters. Any ideas?

I've seen the close and reopen workaround in the standard MaxIDE, but even that doesn't help with MaxIDE CE.


SystemError51(Posted 2011) [#180]
Not working for me on Windows Server 2008 R2 64-bit :(
Windows 7 Ultimate 64-bit also, same issue.

2.00 however works on both machines.

Last edited 2011


Xerra(Posted 2012) [#181]
This is driving me nuts but I've recently updated blitz and somehow managed to overwrite my copy of the community editor. I have now put it back on but the help/projects/todo etc window is on the left side of the screen when i launch it.

Now, i'm sure there was an option to move it so it defaults to the right side but I can't seem to find it now. The other editors I've tried all do that but I like using the CE one.


matibee(Posted 2012) [#182]
Tools menu -> IDE Options -> Tools Tab


Xerra(Posted 2012) [#183]
My god that was staring me in the face. I've checked that tab over and over, grr! :)

Thanks for the heads up, matibee.


Nest(Posted 2012) [#184]
Please excuse my ignorance, very much a novice with programming.

I downloaded and extracted to my BlitzMax folder (renaming maxide.exe to maxide CE.exe).

Tried to run it and get the following error:



Am I missing something obvious? I have the latest version of BlitzMax (1.45).

Thanks in advance for any help!

edit:

using the blitzmax companion it has successfully installed maxide2-win-2.00b4 (an earlier version). Am I missing out on much?

Last edited 2012


ima747(Posted 2012) [#185]
I just had to rebuild my CE and now tab characters in saved files show up as spaces (basically the same problem as matt at #179 above). New documents that haven't been saved show up with proper tab spacing but when I open a saved files the tabs are just 1 space wide. I've adjusted the tab size setting to no effect... Don't know where to go digging.

Compiled from the most recent source from the latest source tar link.


*(Posted 2012) [#186]
I dont get any functions in the code tab, im running on OSX 10.6.8


Captain Wicker (crazy hillbilly)(Posted 2012) [#187]
@Nest:
Your problem is most likely to be that you do not have MinGW installed and setup with the proper system variables.

@EdzUp: wait a minute and I should have a solution to your problem!

Here you are: http://www.mediafire.com/?89q20tbscz5m9jm
This is a compiled MaxIDE CE for MacOS Versions all the way up to Lion x64.

Last edited 2012


Shagwana(Posted 2012) [#188]
I just found something a little funky to do with the CE Editor

I was getting errors when re-building modules, when the normal editor was working as expected. Anyone else seen this?


Captain Wicker (crazy hillbilly)(Posted 2012) [#189]
I have come across a problem after updating blitzmax to version
1.49. My problem is with the MaxIDE Community Version. The IDE will run,
but when I compile something, I get a message saying "command line
error". Is there a fix for this or a way to possible get the IDE working
again with the latest version of BlitzMax? What can I do? I have tried
compiling the ide from source and get multiple errors in the code. Any
help or advice would be greatly appreciated.


Last edited 2012


Grisu(Posted 2012) [#190]
I think I have found a little glich under Windows with "auto-opening" files:

1. Open the ide with one file "A" already open (used before)
2. Save file "A" it as file "B"
3. Close tab "B", so the ide has no files opened at all
4. Exit
5. When you relaunch the ide will open file "A", instead of a clean workspace.

This behaviour is irritating if you work on project with tons of open files and come back to it later.

In addition the toolbar icons sometimes disappear, if you change the windows themes from "basic" to "aero" and backwards. This also happens with the normal bmx ide.


Rishi(Posted 2012) [#191]
hey guys, I'm new to Blitzmax, actually a friend brought it for me a few years ago but becuase of the IDE never used it. A few days ago I found and installed it because i 'accidentally" came across this project.

1.) After installing this it crashed (windows 7) didnt even start, just encountered and error and crashed. I fixed this by compiling the source on my system MinGW wasnt needed nor is it installed.

2.) the Icons and bars were hidden when i set the display to the left or right of the screen I fixed this by making a few edits (maybe quick hacks) with the under code in bmxhost..


'NAVIGATION BAR CODE - OLD
'-------------------------

Local mainpane:TGadget = SplitterPanel( split, SPLITPANEL_MAIN ), sidepane:TGadget = SplitterPanel( split, SPLITPANEL_SIDEPANE )

tabbar = CreateTabber(0 , Toolbar.Height , ClientWidth(mainpane) , ClientHeight(mainpane) - Toolbar.Height, mainpane )
SetGadgetLayout tabbar, EDGE_ALIGNED, EDGE_ALIGNED, EDGE_ALIGNED, EDGE_ALIGNED
SetGadgetIconStrip tabbar , _iconstrip

ok maybe it wasnt a good way but it worked and best i could do since i am new to this..

3.) Made a few edits to the auto complete. Added different icons for the different types, functions, constants etc.. Made the box a fix size, Changed the code so the box no longer goes off the screen when it gets to low, it goes above the text. instead.

Local x:Int = TextAreaCharX(_editor , c) - 10

'FIX: Position Autocomplete box below text
Local y:Int = TextAreaCharY(_editor , c) + (EDITOR_FONT_HEIGHT * 4)
Local g:TGadget = GadgetGroup(_editor)
Repeat
Select GadgetClass(g)
Case GADGET_WINDOW, GADGET_PANEL
x = x + GadgetX(g) + GadgetWidth(g) - ClientWidth(g)
y = y + GadgetY(g) + GadgetHeight(g) - ClientHeight(g)
End Select

g = GadgetGroup(g)
Until g = Null

'FIX: New code to raise Autocompletebox Above text incase it drops below the screen
If y >= _editor.Height Then
y = (y - _gadget.Height) - (EDITOR_FONT_HEIGHT * 4)
EndIf


SetGadgetShape( _gadget, x ,y, _gadget.Width,_gadget.Height)
' reselect to show hintbox properly


Rishi(Posted 2012) [#192]
I didnt upload the SVN cause i didnt want to soil your code, not even sure i can help much since i'm new, but if anyone wants the edits just tell me where to upload it and its yours. What i'm trying to figure out now is how to get the auto complete box to come up automatically instead of having to press Ctrl and space all the time. Trying to get it to function more like insistence. If anyone knows and can point it out before i figure it out please I'll appreciate your help.. Regards.


Rishi(Posted 2012) [#193]
Ok got it automatically.. to accomplish this fist comment out in auto complete (yes making more like an environment I'm used too.. VS)

Rem
' if there's just one option, and it matches what's already written, forget it!
If AutocVal.length = 1 Then
If (CaseSensitive And (AutocVal[0] <> t)) Or ((Not CaseSensitive) And (AutocVal[0].ToLower() <> t.ToLower())) Then
_owner.AutoComplete( AutocVal[0])
EndIf
ShowLiveHint( AutocTip[0])
Return 1
EndIf
End Rem
'MARK: quickhack

then remove space bar from editor.bmx so it now looks like
Case KEY_TAB' replace with item & close + allow key into editor
this.Autoc.AutoComplete()
' dont add key if already present at current position



then we do this in editor as well..
'Autocomplete
If this.Autoc And this.options_keys.CheckKey(this.KEY_AUTOC,key,mods) And this.options_code.autocomplete Then
this.Autoc.Show()
Return 0
EndIf

this.Autoc.Show() 'MARK: Quick Hack
' more Autocomplete

here is a screen shot


Last edited 2012

Last edited 2012

Last edited 2012


Devlin(Posted 2013) [#194]
I'm having a problem with the win32 version
It crashes while initializing gui (windows says it's stopped working) and i can't use it.

system is - windows 7 pro x64 - intel core2quad q6600(2.40ghz) - 4gb ram - nvidia 9600gt "bfg"


UNZ(Posted 2013) [#195]
I had the same error.
That was because I was using the BlitzMax demo I think. Do you have the newest and full BlitzMax version? Strange thing was I was able to start maxide from the console.

Of course you can try out indevIDE as well ^^...


Darkseid2.0(Posted 2016) [#196]
It doesn't run on Win 10, so I'm stuck with the IDE that came with MAX. It just stops working, it doesn't even get past the loading plash screen.


Derron(Posted 2016) [#197]
Did you remove the config file before starting!l?

Are you using a OS language using commas as delimeter from integer to fraction?

So 1,23 vs 1.23 ... if yes then this is the culprit (comma separated config values..)

Bye
Ron


okee(Posted 2016) [#198]
Same issue here
Win 7 64 bit
renamed original cfg folder
run the maxide.exe
it creates a new cfg folder and just fails
with "maxide.exe has stopped working" message, never opens.


grable(Posted 2016) [#199]
Hmmm, been using it for years. On Windows 7 before and now Windows 10.
But since Vista ive had blitzmax in C:\BlitzMax because of UAC.
Also, my language settings have comma as separator without issue.

But i also compile it myself.. Maybe try running it in debug mode through the original IDE?

EDIT: Heres my binaries, if anyone want to test them.
MaxIDE CE , compiled with TDM-GCC 4.8.1 and Older MaxGUI (Windows 95 compatible)
MaxIDE CE , compiled with TDM-GCC 5.1.0 and Latest MaxGUI

Also, there is another file it loads that might cause trouble:
/docs/html/Modules/commands.txt
/doc/bmxmods/commands.txt


Derron(Posted 2016) [#200]
@comma separator
The problem is not the separator, but the integer-fraction-delimiter.

part of my config when maxIDE no longer wants to start:
console_style=Bitstream Vera Sans Mono,12,000000000000000,0,0,0,255,255,255,0
navi_style=Bitstream Vera Sans Mono,12,000000000000000,0,0,0,255,255,255,0


See the problem? because of font size being "12,00000" instead of "12.000" you shift all following elements by one - leading to problems in MaxIDE.

Only happens once you opened up the settings dialogue.

bye
Ron


grable(Posted 2016) [#201]
The problem is not the separator, but the integer-fraction-delimiter.
That is what i meant, my language uses space for separating groups and comma for decimals.
Still never noticed anything other than dots for floats though...

BlitzMax uses sprintf to get strings from floats, so its dependent on the libc locale.
And since it doesnt specify one, it gets the default C locale.
Might i ask what language you have it set as?

EDIT:
What do you get when you run this?
Framework BRL.StandardIO

Extern "C"
	Const LC_ALL:Int = 0
	
	Function getlocale$z( id:Int, name:Byte Ptr = Null) = "setlocale"
	Function setlocale$z( id:Int, name$z)
EndExtern

Global value:Float = 1.0  ' stop blitz optimizing it into a string
Print getlocale(LC_ALL)
Print value
Print setlocale(LC_ALL, "C") ' set default C locale (English)
Print value
Print setlocale(LC_ALL, "") ' set system locale
Print value
My output:
C
1.00000000
C
1.00000000
Norwegian Bokmål_Norway.1252
1,00000000

EDIT: Added global to test, so blitz wont optimize it into a string


dw817(Posted 2016) [#202]
Where are matchings ? ( ) Are they not available in this IDE ? I have really come to rely on them.


grable(Posted 2016) [#203]
MaxIDE-CE is a fork of an old version. Bracket matching was added much later to the original.
But i can back port if you want...


Derron(Posted 2016) [#204]
C
1.00000000
C
1.00000000
de_DE.UTF-8
1.00000000

which outputs correctly what is supposed to get printed. Also normal "prints" worked as expected. And yes, it should have to do with the locale as it defines the delimiter.


Dunno why MaxIDE printed it with commas then ... There must have been a reason for me to append
		'replace German "comma number" to "point number"
		font_size_string = font_size_string.Replace(",",".")

to a ToString()-method


Also "unpatched" MaxIDE worked fine on Windows but failed on my linux box.

Edit: Think I was talking about the "skidracer"-variant of the editor (the "official one"). At least the sources I had here were from that one, not the community-edition. So I am not sure if that bug might happen there too.



bye
Ron


dw817(Posted 2016) [#205]
Grable: Link please ?


grable(Posted 2016) [#206]
Just finished porting it from MaxIDE to MaxIDE-CE. But since they are so radically different, its not 100% like the original.
And i didnt bother to add a GUI option for it, so enable it in the config file by setting matchbrackets=1 under CodeOptions

And note that its experimental. I just banged the code until i fit it into the hole ;)

MaxIDE-CE matching brackets experimental BINARY
MaxIDE-CE matching brackets experimental SOURCE


okee(Posted 2016) [#207]
Oddly enough when i downloaded the source from here:
https://sourceforge.net/p/blitzmax-ide/code/HEAD/tree/

and compiled it, it works fine
Version 2.01


dw817(Posted 2016) [#208]
Here are my findings so far:

A few differences I found between IDES:

ORIGINAL IDE:
~~~~~~~~~~
Press CTRL arrow keys to change projects
editor auto-focus if ALT-TABBED into
ending a run auto-focuses back into the editor so you can press [ESC] to return to source
[F5] to compile and run, mouse not required ever except for advanced IDE configuration, this is a good thing to me
Font is partially pixellated (see below)

Help is standard

no right arrow key error (see below)

CUSTOM IDE:
~~~~~~~~~
Press CTRL TAB and CTRL SHIFT TAB to change projects
focus is lost, you must click in the window to activate it each time
Focus is also lost when you end a program, you must click in the window to return to view
your source-code, MOUSE REQUIRED to return focus, I am not happy w this
CTRL-R to compile and run
Font is partially pixellated (see image)



Help seems extended, also refers to Online help. Question, is there a way to have ALL help offline ?

Did not see option for Matchings nor did it seem to be working. Could not find CODEOPTIONS or CODE OPTIONS in IDE. Found CODE under OPTIONS but no option for Matchings.

Pressing right arrow key in bringing up IDE makes the first character on the line active to BLACK (see image).



If any configuration is open and you ALT-TAB to look at something else, you cannot use ALT-TAB to return back to the IDE OPTIONS as it will not appear in the task list. It is vanished. You must manually click below the ICON to return it which may include clicking the arrow keys to have it appear from a long list of already open tasks.

This problem does not occur in the original IDE.




grable(Posted 2016) [#209]
CTRL-arrow is by design, for moving the caret between words and punctuation. Like other windows text controls does.
You can configure all key combos though, i like having build&run on F5 too.
There is an option for hiding the output after program termination.
For the experimental option manually set it in the config file, i did say i didnt make a gui for it.
Help is offline, never has been online. It uses the same files generated by makedocs.

The rest are bugs (and theres more of them). But this shit is old and was been abandoned long ago ;)
Still, ive used it for many years, and i prefer it over the original even now.

Oh and it has autocomplete for those who like that, though i rarely use it myself. (dont remember the default, maybe CTRL+SPACE thats what i have it on anyway)


dw817(Posted 2016) [#210]
That auto-focus is what really hooks me. I hate to use the mouse and love the fact the original BM GUI will let me navigate nearly every function, menu, and ability entirely by keyboard.

That lost focus is a dealbreaker with me. Still, very impressive work for a GUI w advanced abilities.


Derron(Posted 2016) [#211]
Skids maxide:
https://github.com/nitrologic/maxide


@ctrl-arrow
I also blamed MaxIDE for behaving like this, but in the preference window you could enable the use of OS shortcuts:


Interestingly default MaxIDE set all open files as "modified" (filename*) as soon as I opened this settings dialogue :-)

Nonetheless "vanilla MaxIDE" does not like Ctrl+Tab, which is "next tab" in "normal applications" (which means here: change source file notetab).


Edit: Does the CE suffer on this Undo/Redo issue too? This is the reason for me to _not_ use MaxIDE for coding (I sometimes undo 2-3-4 times to come to a line I just entered [usually at a different spot in the file], copy it to the clipboard, redo everything and are then at the last modified line, able to paste the copied line - this is NOT possible with MaxIDE as undo/redo is borked).


bye
Ron


grable(Posted 2016) [#212]
Yeah, redo is somewhat borked in MaxIDE-CE as well. Though for the most part it works fine.
It seems to not like many small changes in certain instances, the weird thing is that its just some of the time (rarely in my case). Go figure :p