MaxIDE - Community Edition - 2.00b4

BlitzMax Forums/BlitzMax Programming/MaxIDE - Community Edition - 2.00b4

Mark Tiffany(Posted 2008) [#1]
MaxIDE (CE) version 2.00 beta 4 has been released.

The Community Edition of MaxIDE is based on the official IDE, but with many improvements added by the BlitzMax community. A big thank you to grable for many of the addtions in this release.

This version fixes the BlitzMax debug hanging issues, and several major issues with previous versions of the CE IDE.

For now, only a win32, Linux FLTK exe and source zip (requires the very latest MaxGUI) is available. If anyone wants to volunteer a version compiled for OSX or Linux GTK, feel free to email me.

Links below now updated to BETA5, including threaded build option.

Win32 Executable
Linux FLTK Executable
Source ZIP


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

V2.00 beta 4 CHANGE LOG since v2.00 beta 3

Added:

* Basic code tidying & auto-indent for C & C++
* Auto-complete now includes keywords found in the current file
* Basic INI, M and XML code highlighting
* Assert, DebugLog & DebugStop now shown in code tree
* Separate CE IDE "about" & "version history" files now self-extract into documentation
* Experimental ability to run a single instance of the IDE, set "[HostOptions] single_instance=1" in ce-ide.ini to enable. Linux not yet supported.

Fixed:
* Debugger crash fixed. Debug mode should also be faster now when you have the debug tree collapsed
* Build & Run on a HTML file now opens the file in the help window again on Win32
* Eliminated crash that occurred when using SVN, CVS or Build Modules.
* Eliminated crash that occurred when running in debug and the built app crashes.
* Auto-tidy and Auto-indent code tidied up a lot, fixing several issues in one swoop.
* Debugger used to hang if it encountered a self-referencing object, e.g. TTimer!
* Open files dialog - all files and backup files options now work.
* Save as now allows you to save as different file types.
* Various issues (like find not working) with unknown file types.
* Code tweak to enable code to compile on MacOS!
* Various code tweaks to improve Linux & GTK behaviour (still not 100%).
* Certain items (e.g. Framework) failed to appear in treeview unless certain other items were present (e.g. Const).

Known Issues:
- Lock-up on Ubuntu 7.10 due to conflict between Brucey's GTK module & pub.freeprocess.
- Some tab & font size combinations give inconsistent text layout. This will be an issue until a new codearea is implemented, or BRL.MaxGUI.TGUIFont adds a width.
- Auto-complete doesn't show at cursor position on Mac or Linux due to no known means of obtaining graphical cursor position
- There are still some small memory leaks that need to be pinned down


therevills(Posted 2008) [#2]
Just tested it, a lot better - its been a while since I checked this out.

Any change of having intellisense in this? I noticed autocomplete is there, but it doesnt take into account types methods/fields...

Edit: Small bug - when opening and closing the tree structure in Help, the main window goes to the help screen (eg Welcome to BlitzMax!)


Mark Tiffany(Posted 2008) [#3]
Any change of having intellisense in this?

I'd love to see it, but it's a non-trivial job and I personally don't have that much time.


Htbaa(Posted 2008) [#4]
Nice. I'll update the IDE on my laptop (Windows XP). But still no Linux binary?


Mark Tiffany(Posted 2008) [#5]
Sorry, my linux box isn't overly stable right now. I could probably do an fltk compile, but gtk is a dead duck.

I'd be very happy to post up a compiled linux or macos binary if anyone cares to compile one and send to my email address...


Htbaa(Posted 2008) [#6]
I don't have MaxGUI so I can't compile it, sadly enough.


Mark Tiffany(Posted 2008) [#7]
I'll try an ftlk build - while naff, at least it's *something* for linux...and frankly *I* could do with using a more up to date version!


Mark Tiffany(Posted 2008) [#8]
FLTK build posted (see topmost post).


CASO(Posted 2008) [#9]
When I tried to compile it, I got the following error with "gui_module.bmx"
Compile Error: Can't find interface for module 'maxgui.drivers'



Mark Tiffany(Posted 2008) [#10]
Do you have maxgui?

Do you have the most recent version of maxgui? (the one you get if you use SVN)


CASO(Posted 2008) [#11]
I have the non-SVN one. Where is the SVN MaxGUI?


Mark Tiffany(Posted 2008) [#12]
Here:

MaxGUI SVN Advice Thread

Note that you may have to change to "PixmapFromIconStrip" to "ExtractIconPixmapFromStrip" (I am using the *very* latest version which at the time of writing, isn't on SVN, but should be soon).


Jesse(Posted 2008) [#13]
I just downloaded and used the compiled version from the link above. it works fine up until there is a crash. if I press the stop. it does not let me create executables any more, even after I close the file and load a new one or start a new one.

[edit]
if I press ctrl Z a whole line, or part of a line then I press ctrl Y, the line reappears in reverse.
if I press ctrl z and press ctrl y again it is restored to normal.
I suspect it restores by reading the buffer in reverse


Mark Tiffany(Posted 2008) [#14]
if I press ctrl Z a whole line, or part of a line then I press ctrl Y, the line reappears in reverse.
if I press ctrl z and press ctrl y again it is restored to normal.
I suspect it restores by reading the buffer in reverse


I saw this about a month and a half ago, but have never been able to reproduce consistently, despite mulling over the code endlessly!!! Specific steps to reproduce would be very much appreciated! (No time to play with this now, off to work...)


xlsior(Posted 2008) [#15]
So... Any function-folding in the future?


SebHoll(Posted 2008) [#16]
So... Any function-folding in the future?

Not until a new text-area is implemented, or a MaxGUI.Scintilla is born!


REDi(Posted 2008) [#17]
Excellent work! its coming on a treat, I'm loving the hilighted C and C++, nice touch, is there anyway for users to add more keywords?

One problem I am having is its not building altered modules as it should, its just displaying "process complete".

Request: Is there any chance we could have a build modules icon added to the tool bar?

Keep up the good work!


Mark Tiffany(Posted 2008) [#18]
There is a standalone codearea in the SVN archive that is intended for just such a purpose, but I lack time to a) fix the remaining bugs in it, or b) integrate it into the IDE. Would love to see it happen though.

And yes, it would be easiest to do this if the new code area were wrapped in a maxgui.EnhancedTextArea gadget, based on scintilla or on the codearea code in the SVN...


Mark Tiffany(Posted 2008) [#19]
Excellent work! its coming on a treat, I'm loving the hilighted C and C++, nice touch, is there anyway for users to add more keywords?

Not directly I don't think, but it would seem sensible to add a file of extra keywords "per language"...

One problem I am having is its not building altered modules as it should, its just displaying "process complete".

Hmm, are you sure something has changed that needs compiling? It sounds more like bmk thinks nothing needs changing. Try editing a module file (e.g. by adding a space) and then see, because "It Works Here"(TM)

Request: Is there any chance we could have a build modules icon added to the tool bar?

I'm going to say no, for now. What I'd really like to get to is a state where the IDE provides generic functionality across languages, with language specific functionality provided through "tools". As such it's presence *directly* on the toolbar doesn't make a lot of sense. What *would* make sense would be a "tools" drop-down toolbar (or extra toolbar, or something) that contains icons for tools specific to each language...


degac(Posted 2008) [#20]
I'm trying to compile the latest Beta4 version, but I get an error on

PixmapFromIconStrip
So I replaced with...

ExtractIconPixmapFromStrip
...and it works.

I've sync'd via SVN but I still have to use ExtractIconPixmapFromStrip version.


SebHoll(Posted 2008) [#21]
I've synched via SVN but I still have to use ExtractIconPixmapFromStrip version.

Yep - ExtractIconPixmapFromStrip() has been changed to PixmapFromIconStrip() in the next update, which should hopefully be available on SVN in the next few days.


CASO(Posted 2008) [#22]
This my be too much to ask...
Is there a way to add a module configuration option that would allow you to pick and choose which modules are automatically imported?

FYI: I got a duplicate (something) error when I had both the SVN MaxGUI and the traditional one (automatically imported)


SebHoll(Posted 2008) [#23]
FYI: I got a duplicate (something) error when I had both the SVN MaxGUI and the traditional one (automatically imported)

It is written in the the MaxGUI SVN Advice Thread that you should delete the old BRL modules before building the new modules from SVN.


Mark Tiffany(Posted 2008) [#24]
Is there a way to add a module configuration option that would allow you to pick and choose which modules are automatically imported?

What do you mean? Something like the framework assistant?


CASO(Posted 2008) [#25]
I am sorry for any ignorance, but what controls that when a program does not have a "Framework", that it automatically imports all the BRL and PUB modules?

Implementing the Framework Assistant codes would be cool though.


Mark Tiffany(Posted 2008) [#26]
I am sorry for any ignorance, but what controls that when a program does not have a "Framework", that it automatically imports all the BRL and PUB modules?

It sounds like you are looking for the Import command? This allows you to import whatever modules you like after importing a framework.


SebHoll(Posted 2008) [#27]
what controls that when a program does not have a "Framework", that it automatically imports all the BRL and PUB modules?

This is controlled by bmk and the compiler - if a Framework isn't explicitly declared, all the BRL and PUB modules are imported by default. Because of this, I don't really think there is much the IDE can do on this front to change the default behaviour.


SebHoll(Posted 2008) [#28]
Fixes are now up on SVN and a new worklog has been posted.


Ked(Posted 2008) [#29]
After I rebuilt documentation, the IDE no longer syntax highlights. I have to exit and restart the IDE for it to highlight again.


Jesse(Posted 2008) [#30]
about may previous post, I realized it is a little bit different than I original posted. But you should be able to reproduce it like this:

write two lines with a couple of words in each. It doesn't matter what.

now go to the first line at the beginning of either of the words.
delete one word only using the del key.
go down to the second line now press ctrl z.
it should now display the word you deleted in reverse.


Mark Tiffany(Posted 2008) [#31]
nice one!

That has been "bugging" me for SOOO long.

Will try to fix tomorrow, along with a weird highlighter issue, which may very well be related...


slenkar(Posted 2008) [#32]
thanks great ide,

is the c highlighting designed to be used for writing c programs that run in blitzmax?
or can you compile C programs as standalone?

I dont want to write C programs - just curious.


grable(Posted 2008) [#33]
is the c highlighting designed to be used for writing c programs that run in blitzmax?
or can you compile C programs as standalone?

Its for a nicer experience debugging stuff that uses C/C++, and Yes you can compile standalone C programs too ;)


Mark Tiffany(Posted 2008) [#34]
Even *I* didn't realise that you could compile C programs from the IDE. That is nice!


Htbaa(Posted 2008) [#35]
The linux download seems to be down.


Mark Tiffany(Posted 2008) [#36]
Fixed!


Htbaa(Posted 2008) [#37]
Thanks! It works.


REDi(Posted 2008) [#38]
Hmm, are you sure something has changed that needs compiling?

Oops, my fault, The page I was editing was a C++ file included from another C++ file, I had put a space in the bmx module page and *deleted it again* as this works in the standard IDE, but it seems MaxIDE(CE) realises the page hasnt really changed and doesnt save it.
So now I'll have to add a space for one compile and delete it again for the next :/

One minor highlighter issue with C++ files... type in something like "100/20" and the "/2" is coloured white. (doesnt happen with bmx files)

*EDIT* Also its missing highlighting for "bool", and C++ comment blocks "/* blah */"

Anyway thanks again, I'm now a CE convert :)


Mark Tiffany(Posted 2008) [#39]
*EDIT* Also its missing highlighting for "bool", and C++ comment blocks "/* blah */"

File type detection is done purely on filename, so a .c file is assumed to be C, and a .cpp file is assumed to be C++. I have added code to support the extra C++ things like bool, but it depends on the filename. I'm not entirely happy with this situation, as standard is probably fairly rare, and many people will call both C files! Not sure how else one might detect file types correctly...

Anyway thanks again, I'm now a CE convert :)

Good to hear!

I managed to identify where the problem with "reversed undos" is last night, so should have a fix for that soon...


REDi(Posted 2008) [#40]
Hi Mark

All my C++ files are called .cpp but bool ect is not highlighting.

One more problem (sorry to be a pain) the IDE is shutting down if i have errors in C++ code that is included from another C++ file.

ie "demo.mod/demo.bmx" imports "cppstuff.cpp" which includes "morecpp.cpp", if I have an error in "morecpp.cpp" the IDE blows up when the module builds.

Hope that makes sense :)


Mark Tiffany(Posted 2008) [#41]
I added bool (and other C++ specifics) to the cpp highlighter after the compile, so if you svn and can recompile you should see it working, otherwise it will be in the next version. Will take a look at /* */ and the compile error later, although I thought that multi-line comments were supported already...


Mark Tiffany(Posted 2008) [#42]
Hmm, C++ /* */ definitely seems to be working here in the compiled version posted. Is it all files, or just a particular offender that you could send me? You are definitely on 2.00beta4?


REDi(Posted 2008) [#43]
Yes 2.00beta4

Just checked and it works if its on one line but not if its spread over more.

/* works */

/* doesnt work
*/

*EDIT* or at least its very touchy :)


dooz(Posted 2008) [#44]
I tried running the lexer-test code and anything I paste into the text area craps it out on this line:

Function FindNextToken(...)
...
Local CharNext:Int = Source[Pos + 1]

Array index out of range. It always bumps pos that addresses past the source array.


Otus(Posted 2008) [#45]
You probably know about these, but...

1: Open a new document, write "hello". Go to the beginning of the line and remove it with Delete. Undo. Result "olleh", should be "hello".

2: Open a new document, write "f". Go to the beginning of the line and write "id". Result "dIf", should be "idf".

3: Open a new document, write "hello". Select and remove it (backspace or delete). Write "blah blah blah", and backspace a few characters. Undo. Result "hello", should be "blah blah blah".

These three are quite annoying...


Mark Tiffany(Posted 2008) [#46]
/* doesnt work
*/

*EDIT* or at least its very touchy :)

Yes, code highlighting for rem blocks is touchy in the bmax highlighter too, so I suspect it's actually the same bug.

I tried running the lexer-test code and anything I paste into the text area craps it out on this line:

Function FindNextToken(...)
...
Local CharNext:Int = Source[Pos + 1]

Array index out of range. It always bumps pos that addresses past the source array.

Ignore the lexer test code. It's new lexer code that has never been implemented into the main IDE (unfortunately) so doesn't represent the IDE itself.

1: Open a new document, write "hello". Go to the beginning of the line and remove it with Delete. Undo. Result "olleh", should be "hello".

This is the same as the issue above and I know where the problem is.

2: Open a new document, write "f". Go to the beginning of the line and write "id". Result "dIf", should be "idf".

Weird - the problem is almost certainly in the same area, but less explainable!

3: Open a new document, write "hello". Select and remove it (backspace or delete). Write "blah blah blah", and backspace a few characters. Undo. Result "hello", should be "blah blah blah".

Even weirder - possibly the same area of code again, but not too sure to be honest.

You probably know about these, but...
...
These three are quite annoying...

I can see that they would be, but despite using the CE IDE myself, I've hardly ever seen any such errors! Just occassionally enough to know something's up, but not enough to be able to reproduce! As always, 100% reproducible bug reports are VERY much appreciated!


Mark Tiffany(Posted 2008) [#47]
Okay, all the various undo problems above (plus another one when undo-ing a selection) fixed in the SVN code, plus that weird idf <-> dif problem.

Remainder logged on sf.net and will take a look at the highlighting issues next (as it's bugging the hell out of *me*!)


SebHoll(Posted 2008) [#48]
all the various undo problems above (plus another one when undo-ing a selection) fixed in the SVN code, plus that weird idf <-> dif problem.

Nice work! ;-)


slenkar(Posted 2008) [#49]
im using the latest version but the build modules option is greyed out


Mark Tiffany(Posted 2008) [#50]
I think it gets greyed out if you haven't got mingw etc set up correctly.


slenkar(Posted 2008) [#51]
oh yeah right, i was using it on a new PC
thanks


Otus(Posted 2008) [#52]
Great work removing those bugs!

I have some more minor ones to report:

1. Attempting to File->Open Recent a file that does not exist closes the IDE.
2. Highlighting does not work after Tools->Rebuild Documentation.
3. (Bug?) I don't like it that writing an i in front of an f capitalizes the I, when you could be writing "inf" or whatever. (Writing an f after the i does not.)

Oh and about building the IDE: How can I get the .exe to have the icon in resources folder?


Mark Tiffany(Posted 2008) [#53]
1. that's a new one, but hopefully easily fixed.
2. Known problem logged on sf.net
3. hmmm, I can see where you are coming from...

Easiest way to set the icon is to use ResHack after compiling. You can choose to amend the maxgui modules to remove the imported manifest, then import your own manifest + icon, but it's a bit messy.


Mark Tiffany(Posted 2008) [#54]
3. is definitely a bug.

Type "if" = "if"
Type "if " = "If "

It should not auto-capitalise until you move "outside" of the current word, e.g. add a space on the end, or maybe move the cursor away.

First thing is to prevent it doing what it is doing now, as that is plain wrong.

Second stage is to think about detecting when you move "outside" the current token - this will not be easy methinks...although maybe limiting it to doing the auto-tidy and auto-capitalise thing when you changes lines might not be a bad idea? although that could mean that just cursoring down a file "tidies" code up for you - desirable? Possibly not...think I'll leave that alone!


REDi(Posted 2008) [#55]
Found a fix for the "CPP: IDE crashes if a compile error is in a linked file" problem, in TBMXHost.OpenSource replace the "open multiple files" bit with this...
' open multiple files
		For Local s:String = EachIn files
			If s.Length <= 0 Then Continue
			OpenProgress "Loading " + StripDir( s)
			code = TCodePanel.Create( s, Self)
			If code Then
				If temp Then
					code.SaveSource MakePathTemp(path)			
				EndIf
				AddRecent code.path
				AddOpenFile code.path
				'FIX: fixes not updating highlighting
				code.ForceHighlight()
				lastcode = code
			EndIf
			CloseProgress()
		Next


It doesnt actually open the problem C++ file but it does stop the IDE from blowing up.


REDi(Posted 2008) [#56]
In TBMXHost.ParseError...
' gcc error
		' this splits the errors into lines and then splits via ":",
		' it then loops over all elements until FILE MESSage and LINE are filled.		
		' if FILE and LINE are set, the file is opened and the line selected.
		' if MESS and LINE are set, a error message pops up
		Local lines:String[] = err.Split(EOL)
		For Local emsg:String = EachIn lines
			If emsg.find("In file included from")>=0 Continue                ' << just this line added
...

makes the C++ page displays correctly.

*EDIT*
also worth adding this...
			If emsg.find("In function `")>=0 Continue

otherwise it just reports the function the error occured in.


grable(Posted 2008) [#57]
Thanks REDi, i added your fixes =)

But i was unable to reproduce the error from includes within includes, though i only tried with vanilla C files...
Do you have a simple example? if the filename is in the error message it would be nice to open it and show the error.


REDi(Posted 2008) [#58]
Hi grable

you could test it with "pub.freeaudio" by adding some garbage to "dsounddevice.cpp" and adding a space to "freeaudio.cpp" (just to make it compile) then build modules.

But if you've made all three changes above it should now work correctly (opens and shows error).

*edit* oh, sorry that wont work as the including is done in the bmx file, i'll knock something up for you to test.
*edit* actually you could do as above but add the error into "freeaudio.h"


REDi(Posted 2008) [#59]
The "open multiple files" change also fixes the "File, Open Recent on non-existent file causes crash" bug, although it would be nice to check the recent files for existance before adding to the menu.


grable(Posted 2008) [#60]
you could do as above but add the error into "freeaudio.h"

I did that and it appears to catch the error properly, so i guess this is fixed (for now anyways ;)

Ive also sprinkled some file checks to prevent any further problems with OpenFiles and RecentFiles.


REDi(Posted 2008) [#61]
Cool, thanks grable.

I'm doing alot of C++ for bmax ATM, so I'll let you know if I come across any dodgy error messages ect.


Mark Tiffany(Posted 2008) [#62]
Thanks both of you. I've updated the 2 bug reports I put on sf.net for these two issues (crash on recent file & C++ included file error).


REDi(Posted 2008) [#63]
TBMXHost.ParseError also needs... (gcc error)

			If emsg.find("In constructor `")<>-1 Continue
			If emsg.find("In destructor `")<>-1 Continue
			If emsg.find("In member function `")<>-1 Continue


*EDIT* I've found a new problem with the parser regarding class methods (ie class::method getting spilt into lines), so dont bother yet.


Mark Tiffany(Posted 2008) [#64]
We could probably do with re-factoring the ParseError code such that it gets directed into a codetype specific ParseError. As we always know which file we hit compile for as our main file, we can at least initially send the error to a TCodePanel.ParseError that can interpret the error returned...


REDi(Posted 2008) [#65]
Sounds like a good idea mate.

fix for the problem with class::method


*EDIT* changed it so it now adds notes for the given message if available. test C++ code...
#include <iostream>
using namespace std;

class testclass {
	public:
	int func(int a,double b) {cout << "hello1" << endl;}
	int func(short a,long b) {cout << "hello2" << endl;}
};

testclass tc;

main() {
	tc.func(10);
}



Mark Tiffany(Posted 2008) [#66]
Okay, I've added this as is for now, not able to really check it so please grab the version from SVN and make sure it's okay.


REDi(Posted 2008) [#67]
Thanks Mark, seems to be working here.

Is there any more parsing code somewhere, because with some errors the TBMXHost.ParseError isnt being called at all, but a message is still being displayed. I added a notify to the very top of TBMXHost.ParseError and it doesnt get shown, but when running the test code above it does display. very wierd.

example of an error that doesnt call TBMXHost.ParseError
#include <iostream>
using namespace std;

class testclass {
	public:
	int func(int a,double b) {cout << "hello1" << endl;}
	int func(short a,long b) {cout << "hello2" << endl;}
};

testclass tc;

main() {
//	tc.func(10);	// uncommenting uses TBMXHost.ParseError
	sdksjda;		// This error doesnt call TBMXHost.ParseError but does show a message
}



Mark Tiffany(Posted 2008) [#68]
Is this on linux? I get problems with the int declaration on windows...


Mark Tiffany(Posted 2008) [#69]
No matter, got the int declaration working (it had been capitalised when pasted in initially as a new bmx file). However, I get the same error message either way - title on message = GCC Error, message = xxx was not declared in this scope

I think there's something in the code that runs the program (in debug.bmx) that handles errors that don't get interpreted by ParseError?


REDi(Posted 2008) [#70]
hmm, found ParseError in TBMXCodePanel and TCCodePanel, so i suppose really TBMXHost.ParseError needs the bcc/gcc handling removed and the TCCodePanel/TCPPCodePanel needs updating, so thats upto you guys ;)


Mark Tiffany(Posted 2008) [#71]
Right, looks like mingw behaves differently - I get an error re: sdksjda regardless of commenting / uncommenting the tc.func line. However, if comment out sdksjda, I do get the error handled differently. So maybe on mingw the order of precedence for errors is different? In any case, both appear to be working okay (error displayed and line selected), so not sure what the problem is?


Mark Tiffany(Posted 2008) [#72]
hmm, found ParseError in TBMXCodePanel and TCCodePanel, so i suppose really TBMXHost.ParseError needs the bcc/gcc handling removed and the TCCodePanel/TCPPCodePanel needs updating, so thats upto you guys ;)

Any idea if we would we ever expect gcc errors from bmk? i.e. should C/CPP just have the gcc error handling, and then BMX just have bmk error handling, or should the bmx panel be able to hand back over to gcc if necessary?


REDi(Posted 2008) [#73]
. (dodgy alternate posting going on here :D)


Mark Tiffany(Posted 2008) [#74]
Yuck, I see what you're saying - there's error parsing code in the TCodePanels for BMX & C, and then more again, plus generic handling in TBMXHost. Which one wins? When do each of them get called? Yuckity-yuck. I'm in the depths of fixing highlighting issues right now, so if you get any inspiration, let me know...


REDi(Posted 2008) [#75]
Cool

It seems TBMXCodePanel and TCCodePanel always gets called first... i think... :/
Gotta go out now, will have a play around later.


REDi(Posted 2008) [#76]
Thinking about it, the problem is we dont really know what language the errors referring too until its parsed, so the only solution i can see is to stick all the parsing in TCodePanel, and perhaps have unhandled error reporting in TBMXHost, leaving the other T***CodePanel parsers empty.

any thoughts?

Right gotta go!


Mark Tiffany(Posted 2008) [#77]
The neatest thing to do would be to have the the parsing controlled by TCodePanel, but calling all registered TCodePanel (i.e. bmx, c, etc) in turn first before giving up. e.g. when TCCodePanel inits, it should register it's own ParseError function, and these can then be called in turn when an error occurs.


Mark Tiffany(Posted 2008) [#78]
Okay, I've spent a large part of today hacking code relating to highlighting.

In doing so, I've fixed a whole host of issues, not least problems with multi-line comments in BlitzMax and C/C++. I've refactored the code so as to simplify where possible and make elements more generic, and implemented some functions as Abstract to force new classes to consider implementing them.

This is a fairly major change, so I'm sure there's some nasties in there. I've tried a fair few examples in BlitzMax and C++, and things look loads better. I've also given undo / redo a bashing which all to oftens gets trampled when messing in these areas, but looks good for once (my last rewrite of that must have been good, as I haven't had to touch it thank god!).

PLEASE download the SVN version, compile it and give it a thorough bashing. I'm sure there are bugs in there, but hopefully now it will be easier to spot and fix the things!


REDi(Posted 2008) [#79]
Excellent mate, seems much better.

One thing I've noticed, in C++ if you have a /*remblock*/ and delete it with backspace, everything after it stays rem'd out.

*EDIT* another bug... open up editor.bmx and look in the fields list of TCodePanel (in the code tab), it has a field called "but lower case"!!
It seems to be getting confused by the comma in that lines remark.


REDi(Posted 2008) [#80]
when TCCodePanel inits, it should register it's own ParseError function

The problem is if a TCCodePanel hasnt been opened then it wont be registered. (ie if a bmx file imports a cpp file, but no c/cpp files have been loaded in the IDE)

Here's one idea for parsing... (just a suggestion)

(errorparser.bmx)

then in TBMXHost...
	Method ParseError( cmd:String, err:String)
		TErrorParser.ParseError(cmd,err)
	EndMethod
and then just empty out/remove the other ParseError methods in TxxxCodePanel ect.

maybe a little over complicated but it is easley extendable for other compilers.


Mark Tiffany(Posted 2008) [#81]

One thing I've noticed, in C++ if you have a /*remblock*/ and delete it with backspace, everything after it stays rem'd out.

If you "/*remblock*/" then backspace, then everything after it *should* be rem'd out as soon as you delete the last /, and until you delete the first * in the line. Seems to be working as expected here...

*EDIT* another bug... open up editor.bmx and look in the fields list of TCodePanel (in the code tab), it has a field called "but lower case"!!
It seems to be getting confused by the comma in that lines remark.

Yeah, I've seen some weirdness in there before now. No idea why as there's a clear "forget it if I hit a ' rule".

As for error parsing, I think that what's probably needed is a proper rethink of the inter-relation between TCodePanel (the editor), TQuickHelp (the keywords, at least for max), and possibly a new TCompiler (for the compiling, debugging and error parsing, plus any other related tools like Build Modules for BlitzMax). Not really sure, but want to start simplifying to something like the above first...


Mark Tiffany(Posted 2008) [#82]
Okay, the Field problem was caused by it just looking for commas on the Field line, ignoring '. Fixed in SVN, but there's still a quirk there if you have

Field a$="'",b$ ' b$ doesn't get seen


REDi(Posted 2008) [#83]

If you "/*remblock*/" then backspace, then everything after it *should* be rem'd out as soon as you delete the last /, and until you delete the first * in the line. Seems to be working as expected here...


Just checked again and everything stays rem'd after deleting the *entire* rem block here.


and possibly a new TCompiler (for the compiling, debugging and error parsing, plus any other related tools like Build Modules for BlitzMax)


Completely agree mate, I'm gonna use the temp fix above until its all finalised, 'cause it stops me from getting borked C/C++ error messages.

Keep up the good work mate, I'm really enjoying using it!

*EDIT*
by "borked" I mean like this one...
#include <iostream>
using namespace std;

class testclass {
//	public:
	int func(int a,double b) {cout << "hello1" << endl;}
	int func(short a,long b) {cout << "hello2" << endl;}
};

testclass tc;

main() {
	tc.func(10,10);	// attempt to use a private function
}



Mark Tiffany(Posted 2008) [#84]
Just checked again and everything stays rem'd after deleting the *entire* rem block here.

Aha!

Hit backspace to delete, and it's okay.

Hit backspace to lose the last /, then select the remainder and hit backspace, and TADA!

Is that consistent with what you are seeing?


Mark Tiffany(Posted 2008) [#85]
Okay, I think I've fixed the /*remblock*/ issue in SVN. Still need to sort out nested remblocks, although I don't think that'll be too hard (one for later tonight).


Mark Tiffany(Posted 2008) [#86]
Field (and const and global) fixes applied


REDi(Posted 2008) [#87]
I'm still getting the same problem with /*rem blocks*/ while deleting the entire block with backspace (one charactor at a time), deleting the /* doesnt result in the rest of the document returning to the correct highlighting. (can anybody else confirm this? or is it just me :/)

It does work fine if I delete from left to right with the "Delete" key, or select the rem block text and delete all in one go.

Request: any chance you could make the highlighter case sensitive for non blitz languages. ie in C++ "fasle" should highlight and "False" shouldnt.


anawiki(Posted 2008) [#88]
The "new" IDE is great, but I have one issue - when you do "Search" and then press CTRL+Left or Right arrow instead of moving to next word it switches tabs. The IDE should focus on the source code and found word instead of tab.

cheers
Roman


SebHoll(Posted 2008) [#89]
The "new" IDE is great, but I have one issue - when you do "Search" and then press CTRL+Left or Right arrow instead of moving to next word it switches tabs.

Isn't that what F3 is for? I thought F3 was the Windows standard shortcut for "Find Next".


Mark Tiffany(Posted 2008) [#90]
Isn't that what F3 is for? I thought F3 was the Windows standard shortcut for "Find Next".

F3 is pretty well accepted as Find Next.

Almost all keyboard controls are configurable though, so feel free to configure it as you like (hmm, with the possible exception of prev / next tab!)


Mark Tiffany(Posted 2008) [#91]
I'm still getting the same problem with /*rem blocks*/ while deleting the entire block with backspace (one charactor at a time), deleting the /* doesnt result in the rest of the document returning to the correct highlighting. (can anybody else confirm this? or is it just me :/)

It does work fine if I delete from left to right with the "Delete" key, or select the rem block text and delete all in one go

This is weird because I can't see any problems at all! Can you list precise steps from opening the ide to reproduce? I'm opening a test cpp file (your examples above), then adding the remblock at the top, then backspacing to delete. Feel free to drop it in an email....


REDi(Posted 2008) [#92]
tested on revision 26.

Start the IDE and create a new file, save as "blah.cpp", type in something simple...
/* test */
int test;

then just delete the remblock with backspace (for me the "int test;" stays blue). thats it, nothing special, I get the same result with any loaded .c or .cpp files.

If there is another remblock anywhere below the one I'm deleting, then it works perfect.

I can correct the highlighting after its borked by typing */ and then deleting it again.

would be nice if someone else could confirm this, before you worry to much about it.


REDi(Posted 2008) [#93]
I didnt know this until last night, but it turns out you can import .s files in blitzmax and call their functions :)

So I've been playing around with adding FASM support to the IDE (added as an include file), which so far is working quite well compiles/runs and most of the hightlighting is done :D

But I have a couple of questions if you have the time...

1. Is there any way to call host.execute without the output window being cleared of text? because FASM doesnt have a option to compile and run like bmk, so I have to compile and run with two seperate calls to host.execute.

2. How can I add ASM/S files to the file requester filter. (could solve this one myself, but It'll save me a ton of searching ;) )

3. The IDE crashes when I attempt to close a ASM/S file, any idea how to get around this?

I dont expect you to want to add this into the IDE, but I'll certainly get alot of usage out of it myself, I've got an excuse to learn some asm now I know I can use it within blitzmax.


anawiki(Posted 2008) [#94]
Yeah, I know I can use F3 for Find Next, but I need to use CTRL+F for Find First (or to change query). And that's when it is not so convenient.

cheers
Roman


Mark Tiffany(Posted 2008) [#95]
1. Is there any way to call host.execute without the output window being cleared of text? because FASM doesnt have a option to compile and run like bmk, so I have to compile and run with two seperate calls to host.execute.

I see no reason not to tweak host.execute to take an additional optional "clearoutput" parameter (defaulted to True), and then use that...

2. How can I add ASM/S files to the file requester filter. (could solve this one myself, but It'll save me a ton of searching ;) )

Assuming that you are extending TCodePanel (which you pretty much must be), then you should have something like the following ahead of your codepanel:
Const CODETYPE_BLITZMAX:Int	 = 	1
TCodePanel.Register(CODETYPE_BLITZMAX , ["bmx"] , Byte Ptr TBMXCodePanel.Create)

This should really add it to the drop-down list, although it doesn't at present. The drop-down list is defined in maxide.bmx as the const Filter_files...so either we add a hardcoded extra option, or make the Register process add to the list.

3. The IDE crashes when I attempt to close a ASM/S file, any idea how to get around this?

No idea...maybe the code type is not registered correctly - does it crash on creating new, and / or saving?


I dont expect you to want to add this into the IDE, but I'll certainly get alot of usage out of it myself, I've got an excuse to learn some asm now I know I can use it within blitzmax.

Well....I don't really see why not. Especially if you've added it in an include file, and based it on extending the TCodePanel...


Mark Tiffany(Posted 2008) [#96]
I see no reason not to tweak host.execute to take an additional optional "clearoutput" parameter (defaulted to True), and then use that...

Silly me: there already is an optional "home" parameter that if set to False, just just what you want! (4th param)

And I've tried following your steps for the remblock, but it works fine here!!! Is this on WinXP? Wonder if it's worth us swapping compiled EXEs?


REDi(Posted 2008) [#97]
Cool, thanks for the tips mate, I'll get stuck in tonite :)

Is this on WinXP? Wonder if it's worth us swapping compiled EXEs?

Yeah XP, I'll send you a copy of the exe.


REDi(Posted 2008) [#98]
The drop-down list is defined in maxide.bmx as the const Filter_files...so either we add a hardcoded extra option, or make the Register process add to the list.

Thanks, adding asm to the hardcoded filter also fixed the crash when closing/saving the files.


Blueapples(Posted 2008) [#99]
Just built the source ZIP for Mac OS Intel on 10.5.

What's up with this?



This window comes up after loading a file. There doesn't appear to be a way to close it.

The default pane sizes and tab sizes are also a bit off:




Mark Tiffany(Posted 2008) [#100]
Been busy with work for the past 2 weeks, hopefully things will calm down a little now. Will try to take a look at this later today...


SebHoll(Posted 2008) [#101]
Have just committed a few tiny tweaks to SVN, replacing LoadGuiFont() with LookUpGuiFont() where appropriate.

The default pane sizes and tab sizes are also a bit off:

That's strange... Which version of MaxGUI.CocoaMaxGUI and MaxGUI.MaxGUI are you using? It'll be written at the top of the root module files in the respective module directories.


Otus(Posted 2008) [#102]
Using "lock build file" messes things up if you have two files with the same name open. Sometimes the wrong one will compile and you cannot unlock.


grable(Posted 2008) [#103]
@Otus:
I added it to the bug tracker and comited a fix to SVN, thanks =)

@Blueapples
Thats strange, the window should be hidden on creation... but that part of the ide is very Windows specific atm :/
Does any Linux/MacOS people use the AutoComplete window at all?


Mark Tiffany(Posted 2008) [#104]
Ta!

Not sure why the auto-complete window is getting shown at startup - and I can't think what has changed to make that happen now...

As for the default splitter position: there is *something* screwy in there, as sometimes it opens up in the wrong place for me. I've looked, but never found an answer as it is really intermittent.


Mark Tiffany(Posted 2008) [#105]
Just committed a tweak to SVN that enables the next / prev tab keyboard shortcuts to be amended.


Blueapples(Posted 2008) [#106]
MaxGui.CocoaMaxGui: 1.39
MaxGui.MaxGui: 1.20

I would use an auto complete thing if it worked ;) ... is this like intellisense?


Mark Tiffany(Posted 2008) [#107]

I would use an auto complete thing if it worked ;) ... is this like intellisense?

Kind of - just basic keyword completion and also keywords from within the file you are in at present. It appears when you hit ctrl+space. (hmm, must check if you can change that shortcut...)

The known issue is that on mac & linux there is no way at present (*looks for sebholl and brucey*) to grab the text cursor position in a textarea. As such, the pop-up window rather naffly appears at the mouse cursor instead. Why it's showing at startup is a mystery...


plash(Posted 2008) [#108]
I can't click on the items in the auto-complete list?

P.S. The item tooltip for a list item looks horrible.


Mark Tiffany(Posted 2008) [#109]
I can't click on the items in the auto-complete list?

I can, but it does nothing. Bug. (although to be fair, I'd expect most people to use the cursor keys)

P.S. The item tooltip for a list item looks horrible.

Agreed!


SebHoll(Posted 2008) [#110]
MaxGui.CocoaMaxGui: 1.39
MaxGui.MaxGui: 1.20

Why it's showing at startup is a mystery...

Not so much of a mystery as being bloody typical! I changed a few things in the Cocoa driver concerning hidden windows in the last release (v1.39) as they were being shown automatically if maximized, activated or resized. This allowed the new IDE splash screen to work as expected, and fixed all the problems I had witnessed. Obviously I've missed something. Regarding tab icons - I remember this being one of the first ever MaxGUI tweaks I did in Cocoa, but it appears to have reared its ugly head again. I'll have a look when I get things sorted - I'm moving house at the moment, and have packed my Mac up so it may be a few days before I get a chance.


Mark Tiffany(Posted 2008) [#111]
Okay - bug fixed, you can already change the hotkey, and I've made the tip that displays to the side look a little better. It's still a bit naff, but I'm not going expend effort on it until we find a way to build some better font size functions. *ahem* ;-)


slenkar(Posted 2008) [#112]
hi Mark T.
Just a little issue.... when I copy/paste some lines of code into the IDE it doesnt highlight the keywords
thanks


Blueapples(Posted 2008) [#113]

Kind of - just basic keyword completion and also keywords from within the file you are in at present. It appears when you hit ctrl+space. (hmm, must check if you can change that shortcut...)



Can you add this:

Right click a keyword and get a command "Find Declaration" in the context menu and/or on the toolbar. This is such a fantastically useful thing I miss from the Delphi IDE... requires a lot of parsing to find the source of something but a generic solution to create a small db of keywords defined in a file would be useful anyway. Heck maybe I should build this but I just don't know the IDE source very well. I also gotta get on that macro system I wanted to make... hmm


SebHoll(Posted 2008) [#114]
@Blueapples: I've fired up my G3 Mac (running on Tiger) and can't seem to reproduce the problems you are having. All the tab items are properly aligned and no windows are appearing when they shouldn't.

I know this is clutching at straws, but you did remember to build modules after your last SVN checkout, didn't you? Also, what version of the source are you trying to compile? The source in the SVN repository or the source in the ZIP file in Mark's first post in this thread?


Otus(Posted 2008) [#115]
Could someone maybe add "BMK Options" under Build Options. It would work like Command Line, but be passed to BMK. I tried to look into it, but things are a bit difficult to find in the source code.


Ked(Posted 2008) [#116]
At the moment, I am working on a GUI for module building. I, personally, dislike the IDE's building method because it builds ALL of the modules instead of a specified one.

EDIT: Just thought I'd inform everyone. :P Not sure why I felt the need to though.


slenkar(Posted 2008) [#117]
hi, a little request...

Could we have a find tool for the output of a blitz program?
I have hundreds of lines generated by debuglog commands that I need to search for keywords.


computercoder(Posted 2008) [#118]
Hey SebHoll:

I get the same issues that Blueapples mentioned. I did rebuild mods after grabbing the svn code. I'm running on an Intel MacBook Pro with Leopard 10.5.4. I started looking into what was going on a couple weeks ago, but vacation came and I haven't dove back into it yet.

I'll play a lil this weekend with it as I get the time.


SebHoll(Posted 2008) [#119]
I get the same issues that Blueapples mentioned. I did rebuild mods after grabbing the svn code. I'm running on an Intel MacBook Pro with Leopard 10.5.4.

That's very strange. It's sounding like this might be an Intel/Leopard specific problem...

Thought I'd post a new build of MaxIDE CE built with the latest FLTK fixes that I've been working on during the last few days.

MaxIDE CE FLTK Test Build


Jesse(Posted 2008) [#120]
I notice that when I am keying in a variable name or function name etc. As I am keying in the letters when I have completed enough letters that it matches a reserved key word, it capitalizes the word. As I continue keying, it keeps the capital letter. I have learned to ignore this but it is becoming bothersome.

can you have it ignore the word until one presses the space bar, the arrows, backspace, Enter, or the mouse moves the cursor to another location?


computercoder(Posted 2008) [#121]
Thanks Seb... I'll give it a try :)


Mark Tiffany(Posted 2008) [#122]
For anyone trying to commit changes to SVN (probably only affects grable), note that you may need to change your svn location from http to https as a results of the sf.net server move. I've had to completely remove my checked out folder, and then do a new check out from https to get commit working again. Checkout and Update (i.e. read-only) access is unaffected.


SebHoll(Posted 2008) [#123]
Thought I'd upload another new Linux build which simply inherits the recent FLTKMaxGUI tweaks. Same link as before.

MaxIDE CE FLTK Test Build (Superseded by Build 2)

Looks slightly better than the old one, and the HTMLView is a lot more usable (thanks markcw!).


Htbaa(Posted 2008) [#124]
On Ubuntu I have a rather annoying problem. When using the stop button to stop my program the process is instead still running and increasing in memory.

Edit: When just quiting the program without the stop button (thus the program runs to End) the process is still running as well, eating up memory.


SebHoll(Posted 2008) [#125]
On Ubuntu I have a rather annoying problem. When using the stop button to stop my program the process is instead still running and increasing in memory.


What build of the CE IDE are you using (the one in my last post, or one you have built yourself from the source)? Are you experiencing this behaviour just with the CE IDE or with the Official IDE too? Does turning "Build GUI App" off help at all?


Htbaa(Posted 2008) [#126]
I used the latest build from you. But it doesn't happen all the time. If I'm able to reproduce it again I'll post the executed code. I believe it was a Repeat...Until KeyHit(KEY_ESCAPE) loop. It was a console application. Perhaps the Output tab doesn't respond very well to them... But perhaps it was due to a bug I had earlier in my code. After that it didn't happen again.

But if it'll happen again I'll let it know.


SebHoll(Posted 2008) [#127]
I've just uploaded another new build which should benefit from some more FLTKMaxGUI fixes/enhancements:

MaxIDE CE FLTK Latest Build 2 (Superseded by Build 3)


SebHoll(Posted 2008) [#128]
I've just spend the evening tracking down the CocoaMaxGUI bugs reported in this thread, and I'm pleased to say that I think I've managed to fix them.

They should include...

> Tab items now enlarging for icons
> Child window, activation and focusing fixes.

Please checkout the latest fixes from the MaxGUI SVN, build modules, recompile MaxIDE CE and let me know how you get on.

Cheers


SebHoll(Posted 2008) [#129]
Another new build is up which should improve help doc layout further (thanks again markcw) and a few more stability/aesthetic tweaks:

MaxIDE CE FLTK Latest Build 3 (Superseded by build 4)


SebHoll(Posted 2008) [#130]
Can anyone confirm whether this is a CE IDE only bug, as it seems to work fine in the official IDE?

[Win32] bcc.exe crash


Mark Tiffany(Posted 2008) [#131]
If no-one else does, I'll check when back off hols (2 weeks away from work - hurrah!)


Figbash(Posted 2008) [#132]
So has anyone made an os x build? I really want to try it out, switched my project over to os x and the default ide is driving me nuts :)
I can only compile it myself if I own maxGUI correct?


SebHoll(Posted 2008) [#133]
If no-one else does, I'll check when back off hols

Cheers Mark

I can only compile it myself if I own maxGUI correct?

Correct

Edit: Just uploaded build 4 of MaxIDE CE with the latest FLTKMaxGUI bug fixes. See link in Mark's first post in this thread.


MikeHart(Posted 2008) [#134]
So has anyone made an os x build?


I just got an IMAC (X86) a week ago and will try to help. Give me a day or two and I will let you know!

Do I need the BlitzMax SVN version to compile it?

Michael


SebHoll(Posted 2008) [#135]
Do I need the BlitzMax SVN version to compile it?

Well, you don't need it, but there are a few bug fixes the IDE will benefit from if you use it. The same goes with MaxGUI, so make sure you checkout the latest versions of both from SVN before you compile.


MikeHart(Posted 2008) [#136]
Well, you don't need it, but there are a few bug fixes the IDE will benefit from if you use it. The same goes with MaxGUI, so make sure you checkout the latest versions of both from SVN before you compile.


Ok, I got the latest MaxGui.Mod and the changed mods from BlitzMax since the release of 1.30.
Rebuild all the modules and now every MaxGui samples crashes:



I can compile and run MaxIdeCE without the changes that were suggested but then the area with Home/Code/Debug is allways empty. So it isn't much of a use I guess.


SebHoll(Posted 2008) [#137]
Just committed a fix to the MaxGUI SVN.

Let me know if it works...


MikeHart(Posted 2008) [#138]
Thanks Seb, it works now. The Complete window is gone now and the treeview still doesn't show up. Does anyone know if it worked at some time? I have to go to work now and will post the app later today.


SebHoll(Posted 2008) [#139]
I can also confirm that nothing is showing in the treeview on OS X (which is slightly weird). I'm sure that that didn't used to be the case.


MikeHart(Posted 2008) [#140]
Ok, I uploaded the OSX executable to my webspace: http://www.fantomgl.com/maxide2.zip

Still, the treeview is empty. As the code for the community IDE differs totally from the official one, I couldn't find out why it isn't working. Just not enough time on my hands for that.

Michael


Figbash(Posted 2008) [#141]
Thanks, I appreciate it :) I also noticed auto-complete just kind of flickers on then disappears, that may be another os x specific bug.


Ian Thompson(Posted 2008) [#142]
Some request...

Dont collapse the code tree between clicks of the main IDE editor tabs. If a code tree was open for a particular tab it should remember what node it was on and open it at it when that tab comes back into focus. Otherwise to get back to where your method list was for example takes 3 clicks ever time you tab your source.

Also, can we have a key asignment for 'Save All' please?

Many thanks :)


One weird bug in Windows version though... if I go to the help, click "Tutorials and articles","BlitzMax overview","The first 5 'Nehe' OpenGL tutorials" then select on of the Nehe Tutorials... pow, no IDE, or error, it simply disappears without warning?

(XP service Pack 3)


Hotcakes(Posted 2008) [#143]
Hmm, I'm having a problem.

Vista Home Premium 64 bit, UAC on, SP1, MaxIDE 2.0beta4, Max 1.30 (no SVN) and MinGW 5.1.3 installed.

All compiles work fine, except for any compile related to Grey's Framework code. That is, I can run any bmax demo code, or any code for other programs I have tested, also have built all my modules and that went fine.

But when I try to run any of the demos that come with Grey Alien's framework, the IDE quits out completely somewhere during the compile!

A bunch of text whizzes across the output but I don't have a chance to read any of it before this happens and I can't seem to locate any log or error files anywhere.


Mark Tiffany(Posted 2008) [#144]
Does it happen with the official IDE, or just CE IDE?


SebHoll(Posted 2008) [#145]
Just uploaded a new FLTK build for you MaxIDE CE Linux users out there. Available from the link in Mark T's first post.


Hotcakes(Posted 2008) [#146]
Official IDE brings up a compile error dialogue. I've seen CE IDE bring these up before, but apparently not in this instance...


degac(Posted 2008) [#147]
After a long time using Beta3 (modified for my needs) I decided to 'restart' with Beta4.
I would like to show some ideas about the MaxIDE-CE I dont' like.

1. Menu Project > Build Options > Quick Build, Build GUI app

I think - with the new Threaded support - we need to go back to the 'old' style
Menu Options
- Quick build
- Debug
- Threaded
- Build GUI app

It's fast and immediate: you dont' need to choose IDE Options > Build etc...

2. Tools menu

- I will drop 'Import BB': I used it once, and never touched it. I prefer rewrite my program in Bmax...it easier.
- Sync should be replaced with 'Update via SubVersion' (if SVN is installed...) or dropped.
- Build modules/Rebuild all modules should support '-h' option if is possible to detect what BMK version user is running (until Threaded BMAX is official).

I think it will be useful if 'external' commands like BMK makemods, can be replaced by user program.
I mean, I modified MaxIDE to run a program (via CreateProcess) to create a special HTML page: the program itself runs BMK MAKEMODS and then makes the changes to the html pages. And you are still in MaxIDE.

Same thing with BMK makeapp.

And another idea could be to add PRE and POST process-command to 'BUILD APPLICATION'.
Example: I want to build a program, add an icon, compress it, zip it, and make a copy of the source in another folder.
I already modified MaxIDE CE for icon support and UPX support. But I think this approch grants more flexibility.
For my beta3 I made even a PlugIn support to run 'external' programs (what you want, like Find In File for standard MaxIDE).

In general I like a 'light IDE': everything is NOT needed (SVN checkout, Project managers, resource manager...) should be run external - and everything is 'extern' can be easily maintained without consequency on the IDE (or minimal).

Just my opinion of course, I want only know your comments.


edit:

Another question. I noticed when I put my mouse on the MaxIDE (official) icon a tooltip appears showing 'Description: Official BlitzMax IDE Company: BlitzResearch Ltd, Version: 1.0.0.0'
These informations are stored in the file 'maxicons.o' and this file is imported in MaxIDE during the compilation.
How can I/we make them (icon + information) ?


Yan(Posted 2008) [#148]
1. I'd prefer toolbar toggles TBH.

2. Import BB - While I agree with the sentiment, does it really do any harm to leave it in?

Doesn't the tooltip come from the shortcut's comment field and is therefore down to the installer?


degac(Posted 2008) [#149]
1. good suggestion
2. I've any harm in leave it in, I just think to cut-off bridges with past, smaller 'useless' code - and in case it could be replaced with some 'external' commands


Doesn't the tooltip come from the shortcut's comment field and is therefore down to the installer?


Well, I really dont' know, I would like to know how to add these informations directly from the IDE to the application I create.


SebHoll(Posted 2008) [#150]
Doesn't the tooltip come from the shortcut's comment field and is therefore down to the installer?

Nope, it's declared in a manifest (the same manifest that dictates Windows's use of the new common control library). This manifest was then converted into an Object (.o) file using windres, which can be linked in easily when the application is built.

See this post for more info.


degac(Posted 2008) [#151]
Ohhh! Yeeees! Thanks SebHoll!!!


Yan(Posted 2008) [#152]
@degac - Soz, I thought you meant when hovering over the desktop icon. Not that I would have been certain of the answer anyway. ;o)

Nope, it's declared in a manifest (the same manifest that dictates Windows's use of the new common control library)
Apparently not...

http://msdn.microsoft.com/en-us/library/aa381058(VS.85).aspx

...It's just a plain old resource file definition.


[edit]
Doh!...I just noticed your link.

What's it to do with the manifest? You're just trying to confuse poor old Yan, aren't you. ;o)
[/edit]


johnnyfreak(Posted 2009) [#153]
no more updates?


Mark Tiffany(Posted 2009) [#154]
I personally have next to no time available for this now, and as I was the primary contributor, I guess it's unlikely there will be further updates TBH. The SF.net page, SVN, etc are still up and available, so anyone else can feel free to take it on, but I'm about done - sorry!


peltazoid(Posted 2009) [#155]
What needs doing to the editor, just really being curious. I may dabble with making some improvements if I get chance.

Also under ubuntu 8.10 I get an error "unable to determine blitzmax version, please reinstall blitzmax to repair this problem" I am using blitzmax version 179 from the SVN server, Maxgui version 125 again from the SVN (the version numbers are the increment update numbers from the SVN server) and Version 21 of MaxIDE-CE.

Any pointers, I have the CE in the root blitzfolder, I have also tried it in the bin folder as well. Blitz compiles ok as I compiled the editor from source with no errors.

Thanks in advance.
Andy.


Mark Tiffany(Posted 2009) [#156]
There's a readme.txt, but in short so long as you copy it to the same place as the standard IDE and rename it, it should be fine.

It might be necessary to ensure the bin directory is in the path too...

Check the sf.net pages (links in sig) as there are a few bugs reported, and several suggestions you can take look at. You could also take a look at a custom code editor that is currently separate that I never got round to tidying up and integrating - big job that one. If you feel up to doing anything, sign up to sf.net, drop me an email and I can give you access to svn to update.


peltazoid(Posted 2009) [#157]
The problem with starting the Maxide-CE under linux is when it tries to a create process to check the version of bcc. the process is not being created at all. I don't really know why. I have added the blitzmax folder and the blitzmax/bin folder to my PATH. I can compile programs ok through the default editor. I have checked the code and the CE is using the correct path to bcc but the process does not get created.

Any ideas on this?

with regard to the svn, as soon as I have had a chance to get to grips with the layout and the way the ce code works, i'll let you know as long as I feel i can handle the challenge. :D


cheers.
Andy.


Mark Tiffany(Posted 2009) [#158]
Is it a permission thing? If you comment out the create process step and recompile, does it work? And if it does, can you then build stuff, or is that also failing?


peltazoid(Posted 2009) [#159]
I found the issue, there was only ?win and ?macos defines in createprocess nothing for linux so no process was ever going to be created.

I have adjusted this now with

?linux
p.handle=fdProcess(bbStringToUTF8String(p.name),Varptr infd,Varptr outfd,Varptr errfd,flags)

The CE now gets the bcc version and complies.

I have also emailed Mark with this.

Cheers.


BladeRunner(Posted 2009) [#160]
Anyone able to add threaded building to the CE? I'm not into the code but I think it would be a thing of minutes if you know where to look, so if someone of you knows where the changes must happen...

If I knew where to go, I could give it a try by myself, but i have to confess that I did not understand much of it as I looked into the main files.


grable(Posted 2009) [#161]
Heres a patch that adds threading to CE for those who want it :)
Only tested it on last BlitzMax-SVN though, but should work with 1.32++



BladeRunner(Posted 2009) [#162]
Thank you very much, works fine :)


markcw(Posted 2009) [#163]
Hosting a v1.32 build of MaxIDE CE for Linux FLTK on this site as maxidec.tar.gz Edit: removed

Doesn't have the threading patch posted by grable above as I'm not meld/diff/whatever-savvy enough yet.


Mark Tiffany(Posted 2009) [#164]
grable has access to the cvs to apply the change directly, and mark, I'll happily give you (and grable) relevant rights to access cvs / post updated binaries on the relevant places on sf.net.


markcw(Posted 2009) [#165]
Hi Mark, ok that would be great thanks.


Mark Tiffany(Posted 2009) [#166]
Hi mark, I think I've added you (if you go by the markcw alias there, you're in. If not, someone else is!).


markcw(Posted 2009) [#167]
Hmm, no I'm pretty sure I don't have a sourceforge account. I'll create one now.

Edit: strange, it does appear to be me. Must have forgot I had an account. Sorry, I'll try and sort it out.


Mark Tiffany(Posted 2009) [#168]
lol - I did check out the name on sf.net and here, and you appeared to be the same person!


markcw(Posted 2009) [#169]
Hi Mark, ok I can login now.

Just added the 2.00 beta 5 release, hope I haven't trod on any toes.

grable's threading patch still needs added to svn [edit: done].

Also the main page download link still links to beta 4, I think you need admin rights to edit it [edit: done].

Edit: just noticed I'm getting a crash with the fltk version when I build anything (specifically when I end the built app). The report is either "Segmentation fault" or "double free or corruption (fasttop)" depending on if I use Lucida.ttf or Blitz10.pcf as the editor font. Maybe it's an issue with anti-aliased fonts introduced in fltk 1.3? :/ I will try to build a gtk version now.




Mark Tiffany(Posted 2009) [#170]
r40 committed with grable's addition of threaded mode.


degac(Posted 2009) [#171]
Hi,

I've just downloaded and tested the latest (6) revision under Ubuntu 9.04 (FLTK version).
I found 2 'bugs'

1. the file 'autocompleteiconssmall.png' should be renamed 'AutoCompleteIconsSmall.png' - Linux/Ubuntu has the quite annoying case-sensitive thing...

2. When you select Open File the File Requester shows Home, 'User-name', Desktop.... as 'fast-link-selection' (on the left side of the window).
If you are using an English version of Ubuntu there is no problem. While if you are using a localized versione (like the mine) there's is no DESKTOP but SCRIVANIA as short-link...nothing really important - but I think the Requester should be open the 'localized' term.

ps: I downloaded the pre-build version from then 2nd link (sourceforge): it doesn't work / never started on Ubuntu 9.04...the Seb's link is not working...


Mark Tiffany(Posted 2009) [#172]
Hi degac.

The filenames have all been lowercase fixed for some time, and I get no errors on my linux install. I therefore suspect you are downloading a very old revision - not sure why you stated (6) above - I've just committed changes to SVN that take it to revision 47. If you don't have SVN, use the link in the top post (copied below) for the latest source (updated overnight).

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

The file requester is the bog standard FLTKmaxgui file requester. So if it is bugged, try writing a simple app that uses RequestFile and raise a maxgui bug report if it is the same.


degac(Posted 2009) [#173]
Ohh! My error sorry! I think I've mixed the old and new source code on 2 different computer!
(with '6' I mean MaxIDECE2.0beta6)...

The file requester is the bog standard FLTKmaxgui file requester.


I imagined that...maybe before was different - but it is not real important. I will check deeper on standard Bmax application.
Thank you very much


markcw(Posted 2009) [#174]
ps: I downloaded the pre-build version from then 2nd link (sourceforge): it doesn't work / never started on Ubuntu 9.04...the Seb's link is not working...

hi degac,
do you mean the beta5 fltk build? ..and yes, it would be better if Mark removed that link now.


Mark Tiffany(Posted 2009) [#175]
aha - forgot that in addition to having to create the release, you also have to go to "Create/Edit Download Page", then remove the old and add the new packages you want to appear as the default download for each platform.

Why sf.net doesn't let you auto-update these when you do a new release is beyond me (although I guess it gets a little tricky with multi-platform releases I suppose).

Should be all fixed now.

Also, if you check out the very latest from SVN, I now have a rather nifty automated test.bmx set up (using Brucey's rather nice MaxUnit and a few code tweaks to allow programmatic control of the app), which has already shown up 2 (very minor) CE IDE issues, and I'm moving towards setting up a suite for Undo/Redo and finally nailing any issues in there.


Mark Tiffany(Posted 2009) [#176]
And the top post amended to point at beta5 (which is probably what you meant anyway!). Will probably (finally) post a 2.01 and create a whole new thread in the next week, now that a) gtk/fltk generally behave themselves, and b) assuming I fix those last undo/redo issues.


markcw(Posted 2009) [#177]
I updated the beta5 downloads and added a gtk build, using bmax 1.32. I also updated the src zip as a kind of beta5 'final' release, hope that's okay.

The 'main' download page now says "no download selected".. did I broke something when I deleted the old tar/zip files or did you do this Mark?

Thanks anyway, I like it better like that.. oh and I like the funky new loading screen too, nice work.


Mark Tiffany(Posted 2009) [#178]
sf.net have completely ballsed up managing / updating default downloads in their latest re-design.

I prefer to keep the packaged src.zips and compiled versions "in line" with a point in time, and bump the version number on a new release (so this would be beta6, not a "tweaked" beta5. May be best to update it to call it beta6 and then not release another until I make a 2.01. Remember the latest src is always available in the nightly file for people to download, so not entireloy necessary to make sure the latest src.zip is always available.

The loading screen is simply the one from the official IDE, with a tweaked progress bar & CE tag on it.


markcw(Posted 2009) [#179]
Ok, I updated the builds to beta6 and restored beta5, it's actually not quite the same but near enough (rev 34 but now lacks the threading option). I had deleted all my original beta5 files.. oops.


Mark Tiffany(Posted 2009) [#180]
SVN version now includes support for Brucey's wxMax appstub on mac, and for cross-compiling!

I still want to fix 2 bugs with text formatting in the text editor before releasing the next build.


Mark Tiffany(Posted 2009) [#181]
For anyone interested, SVN version now contains code that I believe to be fully stable : I will be testing over the next few days and releasing v2.01 if all okay...I would be very interested in any mac feedback...


Alessandro(Posted 2009) [#182]
Hello,

I tried maxIDE 2.beta4, beta5 and beta6, over Linux Mint 6 computers either with Gnome or with XFCE, and they had always the same problem:
I write a piece of code (even a simple "print 10") then I execute it. It is execute, but MaxIDE2 will be closed.

Can you help me? (I like this IDE but it is not usable in this way).

NOTE: MaxIDE "standard" (blitzmax 1.33) works perfectly.

Thank you!


Mark Tiffany(Posted 2009) [#183]
Yup, fixed in next version. If you have MaxGUI, you can download the latest source including this fix from the links in the top post (either the "nightly tarball" or by using SVN) and compile it yourself.

If not, I will be compiling up a version and releasing in the next few days if you don't have MaxGUI.


Alessandro(Posted 2009) [#184]
Great job! I recompiled it and now it works!
Thank you!

One question: how can I decide if using GTK or FLTK (I wish to use GTK)?


Mark Tiffany(Posted 2009) [#185]
go to the gui_module.bmx file, comment out maxgui.drivers & uncomment the gtk imports and compile again to use GTK.

However, there are several known issues with GTK at present (see version_history.html for details), most of which are awaiting fixes from a certain Mr Brucey Henderson I'm afraid...so you might want to stick with FLTK for now...


Alessandro(Posted 2009) [#186]
OK, thank you for this.
This IDE is a must for me, since there are not so many IDE/editor under linux for bmx (for code complete, syntax highlight, etc...)

Thank you!


klepto2(Posted 2009) [#187]
Hi, I'm currently working on an advanced proxygadget replacement for the win32 textarea. A sort test integration in MaxIDE CE:



Some things needs to be fixed (correct text height).

Additional features:

SetMargins
Highlight Linenumbers (eg Error lines etc)
Clear Highlighting
FirstVisibleLine
lastVisibleLine

Unfortunatly this will only be windows only, but the control is designed to be crossplattform with just deactivated features. Integration in MaxIDE CE was just changing 2 lines of code :)


Mark Tiffany(Posted 2009) [#188]
Nice one klepto - I was thinking about exactly this kind of thing myself. I'd be really interested to see how you've done this if you want to email me code.

My plan for CE IDE is based on that there is already a codearea control in the CE IDE repository that was kindly donated (by dmaz I think). It has a rather specific approach that requires knowledge of the language inside the control, making it actually quite complex to integrate. It's cross-platform though...so I recently decided the best thing to make use of it would be to:

1. Isolate the drawing / formatting code from the codearea code
2. drop that in isolation into a proxy gadget just to get all the standard textarea commands working
3. drop that into the CE IDE
4. Extend out the proxygadget to support various things, including line numbers, highlighting line you're on, code folding, cursor position so that auto-complete works on all platforms, etc, etc...
5. As each extension is added to proxygadget, add function to CE IDE.

Will be taking a look into this very shortly...it may take some time, but I may have my own cross-platform proxygadget to do same eventually...


plash(Posted 2009) [#189]
Glad to see there is still interest in that canvas based code-area gadget.


klepto2(Posted 2009) [#190]
I think you've misunderstood ;)

This is a straight Textarea extended in a proxygadget. There is not canvas involved. Just a small interception of the WM_PAINT message. Instead of an extra panel it is a much deeper dive into the gadget paint via gdi and use of advanced richedit/win32 api features.


Mark Tiffany(Posted 2009) [#191]
No, I understand you've "just" extended the win32 textarea - it was more how you'd wrapped it up as a proxygadget so that it presumably "looks" like a normal textarea to the maxide code that I'm interested in. The canvas based codearea is code in the svn that I really must get round to using.


plash(Posted 2009) [#192]
The canvas based codearea is code in the svn that I really must get round to using.
Yup, that's what I was referring to.


klepto2(Posted 2009) [#193]
Then I have misunderstood you. Sorry.

I have done and tried various techniques for canvasbased textareas in the past and the most difficult part was to maintain compatibility on the different OS. eg Linux was not passing KeyEvents in the canvas and locked the refresh rate to 60.


Mark Tiffany(Posted 2009) [#194]
Latest compiled versions here: http://www.blitzmax.com/Community/posts.php?topic=84959


Alessandro(Posted 2009) [#195]
Hello, I wish to highlight a small but annoying problem (in Linux, and I don't know if for windows is the same).
If I press shift-lock, then all shortcuts (e.g.: CTRL-S) do not work any more (since "s" is different from "S").

I think shortcuts should be case insensitive.

Thank you!


Mark Tiffany(Posted 2009) [#196]
I think shortcuts should be case insensitive.

I'd agree with that. However, the keys are just menu shortcuts, so may actually be a bug in linux maxgui - are you using gtk or fltk? Does the same thing happen in the official IDE? Have you tried the latest version in the link above your post?


SebHoll(Posted 2009) [#197]
Locked.

Please continue discussion in the new thread: MaxIDE - Community Edition 2.01.