MaxIDE tweaks

BlitzMax Forums/BlitzMax Module Tweaks/MaxIDE tweaks

Perturbatio(Posted 2005) [#1]
See this page for details on the latest version of the MaxIDE: https://sourceforge.net/projects/blitzmax-ide/


morszeck(Posted 2005) [#2]
Is buggy. My WinXP-laptop running 100% and the memory is eaten...


Hotcakes(Posted 2005) [#3]
He only changed shortcut keys. How does that change cpu usage? ;]


morszeck(Posted 2005) [#4]
The new BlitzIDE version can't start. Memory is eaten, more than 200MB and CPU running 100%!!! Must break off with the taskmanager. I don't know why it do not run!


Perturbatio(Posted 2005) [#5]
I don't know why it's happening for you, when I run it on my system, it has a 16MB footprint and doesn't increase whilst idle and at most uses 16% cpu for me.

Does this do the same? (compiled win32 exe)


Cajun17(Posted 2005) [#6]
Good stuff Pertbatio. I don't have any troubles with your edited version. I did have some problems editing the file source because of its large size. Anyway I also made some modifications myself.

src - http://www.louisiana.edu/~jrs7561/maxide.zip
win32bin - http://www.louisiana.edu/~jrs7561/maxide_Main.exe
'Cajun17's code tree modifications
'Contact: raulsoccer17@...
'Tested on: Win32, should be fine on all platforms
'Added 15th Nov 2005
'Areas changed: TOpenCode.GetNode() in maxide_Main
'Changes:
'+ Overall added support for fields, constants, globals within or without a type
'+ Broke the code tree down into multiple sub trees: Globals, Consts, Functions, Types, Framework,
'Import, Include, Incbin
'+ Types are broken down into their components
'+ Types that are extensions of other types have the parent placed in a subtree of the child type. Double
'clicking on the parent will bring you to the parent.
'+ Empty Sections within a type are disgarded
'+ Separated the file into 2 pieces.  The ide choked while making this addition to the header area the
'1st time. Apparently rapidly making text uncommented or commented bogs down the parser?
'TODO:
'- The method I edited was pretty hacky to begin with, but now it looks more like very hacky. It should really be
'redone at some point. It's pretty inefficient, but it doesn't seem to slow things down much.
'- Add support for multiuple files including extended types "seeing" their parents in another opened file.
'- The tree should be based on some sort of project instead of a file.
'- Possibly save the tree for quicker loading.
'- Parse function and method arguments so tree only show arg type.
'- Split the file up some more. 


Edit:
'Cajun17 minor update and bug fixes
'Changes:
'+ Put TCodePlay in it's own file since it's the main Type of the app.
'Bugs:
'- Types with no extend or abstract coming after it wouldn't be shown in tree. FIXED
'- Includes weren't showing up. FIXED
'- The last type in the list wasn't being cleared of unused subtrees. FIXEDISH
'(have To have an extra line after the last Type definition)



semar(Posted 2005) [#7]
Nice mods !

@Perturbatio and Cajun17,

one of my favorite IDE wishes, is to have the function list sorted alphabetically.

There's a treeview control in the IDE, but as far as I tryed, there's no way to obtain the nodes sorted, unless re-write the whole structure each time a new node (that is, a new function) is inserted.

In other words, if I input a function like:
Function B
it will be shown as the first entry in the function list.
Then, if I input a function like
Function A
it will be positioned after the function B, while would be nice to have the list alphabetically sorted.

The same concept for types, and the like, as they are also entries for the treeview control.

Could you give me some hint on how can I accomplish this behaviour ?

Thanks in advance,
Sergio.


morszeck(Posted 2005) [#8]
Hmm, this defines are only for win32 and not for linux-systems.

SB_LINEUP 
SB_LINEDOWN 
SB_PAGEDOWN 
SB_PAGEUP


?win32
		Select EventID()
			Case EVENT_HOTKEYHIT
				'Print "HOTKEYHIT"
				Select EventData()
					Case KEY_UP
						'Print "KEY UP Event"
						If EventMods() = MODIFIER_CONTROL Then 'Scroll(SB_LINEUP)
					Case KEY_DOWN
						If EventMods() = MODIFIER_CONTROL Then 'Scroll(SB_LINEDOWN)
					Case KEY_PAGEDOWN
						If EventMods() = MODIFIER_CONTROL|MODIFIER_ALT Then 'Scroll(SB_PAGEDOWN)
					Case KEY_PAGEUP
						If EventMods() = MODIFIER_CONTROL|MODIFIER_ALT Then 'Scroll(SB_PAGEUP)
						
				End Select
		End Select
?



Perturbatio(Posted 2005) [#9]
Hmm, this defines are only for win32 and not for linux-systems.

Yes, that's why I made a note in the comments at the top, it shouldn't be particularly difficult to convert to the other two platforms though (I might have a bash at the linux conversion but I don't have a mac so can't do that).

The xlib manual: http://tronche.com/gui/x/xlib/


Perturbatio(Posted 2005) [#10]
Cajun17, your modifications look good, one thing though, some of the field entries under the types have their first letter chopped off.

*EDIT*
it seems to be only where multiple fields are declared on the one line.


Cajun17(Posted 2005) [#11]
Ya I noticed that one, was a quickie. I'm having trouble getting the entries to sort. I added an option for it, but it doesn't do anything yet. I'll have another look after school.

The links above have that fix and apparently the option to show the toolbar wasn't able to bring it back so I fixed that.


Hummelpups(Posted 2005) [#12]
THANKS to you Cojun17!!!!!

I can skipwords with CTRL+Cursor rigth,left now.
That is so cool :)

IMurDOOM


BHoltzman(Posted 2005) [#13]
You know this is really cool! I love being able to make these changes and having the source code available. Thanks everyone. And especially thanks to Mark and Skidracer. You guys are making a great product with lots of potential.


The Caffeine Kid(Posted 2005) [#14]
I don't suppose anyone fancies adding some folding in for functions, loops, etc?


Mark Tiffany(Posted 2005) [#15]
You guys might want to add this little gem:

http://www.blitzbasic.com/Community/posts.php?topic=53048

mark / skid, any chance of a heads up on whether / how you're gonna consider including this lot into the official version?


Jay Kyburz(Posted 2005) [#16]
Yes, I'd like to contribute as well but not sure of the best way to merge in everybodys changes and keep everthing uptodate.


Proger(Posted 2005) [#17]
Please - delete changed (file) tabs on button Ctrl+Left (Right) and set this to Ctrl+Tab..... Please ;)


Perturbatio(Posted 2005) [#18]
Jay Kyburz (Posted 6 minutes ago)
Yes, I'd like to contribute as well but not sure of the best way to merge in everybodys changes and keep everthing uptodate.



I was thinking about this myself, posting line numbers solves it so long as the code you are adding the changes to has not been modified.

It would be more accurate to specify it in the format
File->[Type]->Function/Method
Then use a simple {code}{/code} box to specify the block of code to insert your changes after. Followed by a codebox containing the changes.

Please - delete changed (file) tabs on button Ctrl+Left (Right) and set this to Ctrl+Tab..... Please ;)

huh?


skidracer(Posted 2005) [#19]
mark / skid, any chance of a heads up on whether / how you're gonna consider including this lot into the official version?


If people can include a signature comment on the line before any modifications it would be helpful,
' Pertunto was here

I'll be adding a new fork of the IDE source code to my axe modserver by the end of the week and will try and keep it uptodate with everyone's contributions.


Perturbatio(Posted 2005) [#20]
Skid, just to confirm, are you sticking with a single source file or will you have it split into multiple files (as Cajun has done)?

Once I know this, I will the post source with comments next to the mods I have done.


Cajun17(Posted 2005) [#21]
I was thinking of something along the lines of what Perturbatio said. Release mods as chucks of code and specify what to replace and where to put it.

I also think we should organize our efforts in some way. So there's not 2 people working on the same mod or one mod breaking another, etc.

One other suggestion, as you're looking through the code and figure a piece of it out or adding new stuff put some comments. There's plenty enough uncommented code to figure out already without multiple additions from multiple people. I'll admit I didn't add enough, but I'm going to start.


skidracer(Posted 2005) [#22]
I've split the code into ~20 files, and removed all the blitzmax specific dependencies so the following code base is the new editor app, which you will see imports the new axe.maxedit module and builds with two plugins for rawtext and blitzmax code:
' bigted.bmx

Strict

' appdir - bigted.ini and toolbar.png

' appdir/tools - scans for exe files for tools menu

Framework brl.maxgui

Import axe.MaxEdit

Import "textplugin.bmx"
Import "blitzmaxplugin.bmx"

Const VERSION$="0.1"
Const ABOUT$="bigted Beta Version "+VERSION$+"~n~nCopyright Blitz Research~n"
Const HOMEPAGE$="/doc/index.html"

Global bigted:TBigTed

bigted=New TBigTed
bigted.Initialize("bigted")

While bigted.running
	bigted.poll
Wend

End

Type TBigTed Extends TMaxEdit

	Field	bmxplugin:TBMXPlugin
	Field	txtplugin:TTextPlugin

	Field	syncmodsreq:TSyncModsRequester
	Method Initialize(name$)
		Local	dir$
		Local	stream:TStream
		
		bmxplugin=New TBMXPlugin
		txtplugin=New TTextPlugin

		Register bmxplugin
		Register txtplugin

		super.Initialize(name)

		syncmodsreq=TSyncModsRequester.Create(Self)

		If bmxplugin.nomods syncmodsreq.Show	

		If is_demo
'			DisableMenu syncmods
		EndIf
	End Method


	Method ScanBlitz3DHelp()		
		Local	root:TDataNode
		Local	user:TDataNode
		Local	lang:TDataNode
		Local	cmds:TDataNode	

'		root=helproot.AddNode("Blitz3D")
'		root=AddLink(helproot,"Blitz3D",blitz3dpath+"/help/index.html")
		user=root.AddNode("UserGuide")
		lang=root.AddNode("Language")
		cmds=root.AddNode("Commands")
'		helppanel.AddLink root,"Samples",b3dpath+"/samples/index.html"
		helproot.refresh
	End Method

	Method ScanBlitzPlusHelp()		
		Local	root:TNode
'		root=AddLink(helproot,"BlitzPlus",blitzpluspath+"/help/index.html")
		helproot.refresh
	End Method

	Method FullPath$(path$)
		If path[..8]="$BMXPATH" path=bmxpath+path[8..]
		path=RealPath(path)
?win32
		path=path.Replace("\","/")
?
		Return path
	End Method

	Method IsTempPath(path$)
		If path[..Len bmxpath+5]=bmxpath+"/tmp/" Return True
	End Method

End Type



Mark Tiffany(Posted 2005) [#23]
I have some small modifications ready to add to improve doc-ing. The idea is simply to group like-minded modules together into groups, as per the screenie below. All I need to add are about 10 lines to docmods.bmx and 10 lines to maxide. Which I'd do now if axe were up on the modserver...



All you (mark & skid) would need to do is to categorise every mod into a group (see the piccy below). Do this by adding:

ModuleInfo "DocGroup: Basic"


It's a trivial thing, but I think it can really help people navigate the docs / realise there's some good docs out there. The only trick remaining is to force a sort order, or at least "which one sits at the top of each group".


Jay Kyburz(Posted 2005) [#24]
Just want to say that I like Marks T's idea!


Difference(Posted 2005) [#25]
Feature request:

Could somebody make it so that doubleclick on a tab closes that file? Prompt if there are unsaved changes of course.

It's like that in most apps I know.


Chris C(Posted 2005) [#26]
I think this thread ought to be sticky, surely the "community" ide is important enough to warrant it.

Theres some real nice stuff here!


Hummelpups(Posted 2005) [#27]
I think a double click is not a good idea. what about rightklick
and then closefile or sth like that.

btw: Bought the MGui days ago but not got the BUID yet, how many days had gone until some of you got the BUID of the max module?

IMurDOOM


KamaShin(Posted 2005) [#28]
I added some code so that the IDE now has auto completion... only basic commands are taken into account for now, but i'll be adding user defined functions and types soon
(and then maybe try my luck with globals and locals but these two seems a lot more annoying to do so not sure I'll be able to)

if you just want to "add" the autocompletion without simply replacing the whole source, download the source bmx and look for the word AUTOCOMPLETION (it s several time in the source, I just hope I didn't forget any):

source: http://kamashin2.free.fr/maxide.bmx

Mac app: http://kamashin2.free.fr/macmaxide.rar

Win exe: http://membres.lycos.fr/kamashin/winmaxide.zip


Kernle 32DLL_2(Posted 2005) [#29]
is there anybody who can build the maxIDE for linux?


KamaShin(Posted 2005) [#30]
I've updated the autocompletion so that it now accepts user defined types and functions... still if you declare an object of type MyType, the autocompletion doesn't work for the functions and procedures that are inside this type so you can't declare mt:MyType and then type mt. and hit TAB hoping every field and functions and methods to popup... they wont... however create your type and some "global" functions and try using the autocompletion and this will work...
I don't know if I m going to try implementing the "inside types" autocompletion or the golbals/locals... don't know yet...

by the way, both the source and the windows exe have been updated... will make the Mac version as soon as I'm home :)

source: http://kamashin2.free.fr/maxide.bmx

win exe: http://membres.lycos.fr/kamashin/winmaxide.zip

if you want to update your exe, you only have to replace the "CreateAutocompleteMenu" function with the new one... no other changes
and just like before, if you just want to take the autocompletion part of my code to add it to your own source (say for ex because you've already made other kind of modif.) then just look for the "AUTOCOMPLETION" keyword throught the .bmx

OK I M DUMB... I UPDATED THE .EXE BUT FORGOT THE .BMX... and since it s at work I ll have to wait till monday for updating it... DAMN


Kernle 32DLL_2(Posted 2005) [#31]
would it be possible to build a linux version? please.

Fr3eMaN


KamaShin(Posted 2005) [#32]
I can't... someone else will have to do it... and I don't know anybody who's running linux, less someone having linux AND MaxGUI... I can only build the Mac and Win32 versions... sorry


Mark Tiffany(Posted 2005) [#33]
You guys might want to check this thread out.

http://www.blitzbasic.com/Community/posts.php?topic=53227

In the meantime, I'm posting my mods as a series of instructions, not a wholesale update to cater for either someone plugging them into the above fork fo code, or skidracers axe version (see thread above).

In maxide.bmx (or wherever they moved to in axe.maxedit)
Replacement docmods.bmx
and a replacement docparser.bmx



Mark Tiffany(Posted 2005) [#34]
All that's needed then is for the individual module sources to be amended to include a DocGroup in the ModuleInfo, using a small number of high level groupings as per the image above.
ModuleInfo "DocGroup: Basic"



bregors(Posted 2005) [#35]
Here is what I've always wanted the default IDE to have in BlitzMax, a simple TODO list. Just put a comment somewhere in the code as follows:

' #!TD This is the comment.

And when you choose Edit->ToDo in the menu, a list of these comments pop up in a dialog. Simply double-click the comment and the IDE jumps to the source and line of the comment. Simple simple. (Sorry, no multi-line

If you have a locked source file, it's comments will show up in the todo list no matter which tab you have selected in the IDE.

Here's how to add it to the maxide code distributed with BlitzMax 1.12:

1. Search for "Type TSyncModsRequester Extends TRequester" in the source. Now insert the following code:

Type TToDoRequester Extends TRequester
	Field	tditemlb
	Field tdlist:TList=Null
	Field tdtlist:TList=Null
	Field tdcnt=0
	Field selitem

	Method Poll()
		Local tdlista:Object[]
		Local tdtlista:Object[]
		Local clin
		Local tabfil$
		Local current:TOpenCode
		
		Select EventSourceHandle()
			Case window
				If EventID()=EVENT_WINDOWCLOSE
					Hide
				EndIf
			Case cancel
				Hide
			Case tditemlb
				If (SelectedGadgetItem(tditemlb)=selitem) And (SelectedGadgetItem(tditemlb)<>-1) Then
					tdlista = ListToArray(tdlist)
					tdtlista = ListToArray(tdtlist)
					tabfil$ = String(tdtlista[selitem])
					host.OpenSource tabfil$
					clin = tdlista[selitem]
					current = TOpenCode(host.currentpanel)
					SelectTextAreaText current.textarea,clin,1,TEXTAREA_LINES
					Hide
				Else
					selitem=SelectedGadgetItem(tditemlb)
				End If				
		End Select
	End Method
	
	Method Show()

		Local locked:TOpenCode
		Local current:TOpenCode
		
		SetGadgetText cancel,"Close"
		SetGadgetShape cancel,(GadgetWidth(window)/2)-(GadgetWidth(cancel)/2),GadgetY(cancel),GadgetWidth(cancel),GadgetHeight(cancel)
		ClearGadgetItems tditemlb

		If tdlist=Null Then tdlist = CreateList()
		If tdtlist=Null Then tdtlist = CreateList()
		
		ClearList tdlist
		ClearList tdtlist
		tdcnt=0

		'Always list items in build file
		If host.lockedpanel<>Null Then
			locked=TOpenCode(host.lockedpanel)
			Populate(locked.textarea,host.lockedpanel.name,host.lockedpanel.path)
		End If
		
		'List items in current file
		If (host.currentpanel <> host.lockedpanel) Then
			current=TOpenCode(host.currentpanel)
			If current<>Null Then
				Populate(current.textarea,host.currentpanel.name,host.currentpanel.path)
			Else
				Return False
			End If
		End If

		selitem=-1

		Super.Show()
		ActivateGadget tditemlb
	End Method

	Method Populate(ta:TGadget,nam$,pth$)
		Local clin,cpos
		Local lin$,cr$
		Local tabnam$=nam$

		If nam$[..6] = "build:" Then nam$=nam$[6..]
		If nam$[1..] = "*" Then nam$=nam$[..(Len(nam$)-1)]

		For clin=0 To TextAreaLen(ta,TEXTAREA_LINES)-1 '#Lines
			lin$ = TextAreaText$(ta,clin,1,TEXTAREA_LINES)
			
			For cpos=0 To Len(lin$)-5
				cr$=Lower$(lin$[cpos .. (cpos+4)])
				If cr$="!#td" Then
					ListAddLast tdlist,clin
					ListAddLast tdtlist,pth$
					AddGadgetItem(tditemlb, nam$+":  "+Trim$(lin$[(cpos+4) ..]))
				End If
			Next
		
		Next
	End Method

	Function Create:TToDoRequester(host:TCodePlay)
		Local	td:TToDoRequester
		
		td=New TToDoRequester
		td.initrequester(host,"TODO",420,420,1)

		'Build requester here.
		
		td.tditemlb = CreateListBox(10,10,GadgetWidth(td.window)-25,340,td.window)

		Return td
	End Function
		
End Type


2. Find the definition of the TCodePlay type and add the following field:
	Field   todoreq:TToDoRequester


3. Find "searchreq=TSearchRequester.Create(Self)" in the source and add the following line:
	todoreq=TToDoRequester.Create(Self)


4. Find "Const MENUDOCMODS=49" in the source and add the following line:
Const MENUTODO=100


5. Find "Case MENUSELECTALL currentpanel.invoke TOOLSELECTALL" in the source and add the following lines:
			Case MENUTODO
				todoreq.Show


I hope this proves to be useful, I LOVE it! :)

*EDIT*

To actually add the TODO menu Item to the Edit menu, find "CreateMenu "Goto Line",MENUGOTO,edit" in the source and add:
CreateMenu "To Do",MENUTODO,edit



Mark Tiffany(Posted 2005) [#36]
I'd personally prefer a 'TODO: prefix, as opposed to '#! as this is more readable code regardless of the editor being used! Also a 'FIX: or 'BUG: would be handy, with more prominent highlighting for more urgent stuff.

But what would be really cool, is for this lot to show up in a treeview panel alongside Help / Code / etc.


Beaker(Posted 2005) [#37]
I don't know if this has been addressed, but:
when you double click a word with a following space, it selects the word and the space as well. I don't like this behaviour.

Any ideas?


bregors(Posted 2005) [#38]
@Mark.

Those are some good ideas Mark. I'll see if I can implement the TODO/FIX/BUG into a treepanel (Todo).


Jay Kyburz(Posted 2005) [#39]
Bregors, make it generic so that you can give it any sting and it provides a list of all lines with that string. we can then pull out a list of function names or whatever.


Jay Kyburz(Posted 2005) [#40]
I'm having trouble getting bigted to run. I notice there have been a few changes to what is above. Should i simple be able to sync the modules, rebuild all and then compile bigted? Am i missing a step.


skidracer(Posted 2005) [#41]
Have you tried overwriting the bigted.bmx source with the one posted above?


Robert Cummings(Posted 2005) [#42]
Another thing to address: tabbing a block seems flakey. Sometimes it will not work and it'll erase my text.


bregors(Posted 2005) [#43]
Following Mark Tiffany's suggestions I have hacked together a version of the IDE with most of the fixes already posted here, along with a TODO tabber with bugs and fixes. (doesn't sound right, does it?)

I've left the old TODO code in, because I just realized that I forgot to take it out. :p

@Jay: Good suggestions for a todo search from you. I may try to tackle this at a later date.

@skidracer: If you want to include this functionality into bigted, *HINT* *HINT* then go right ahead, I'm glad to contribute. ;)

source: http://home.earthlink.net/~cdhcars/maxide-todo-tree.zip


Tachyon(Posted 2005) [#44]
How about an executable for those of us without MaxGUI (can't compile the source) but want to try this improved IDE?


marksibly(Posted 2005) [#45]
Nice going dudes!

Any volunteers for an IDE 'maintainer' guy?

I could make a sticky topic for people to append changes to, while the maintainer merges them into the main build.

Unfortunately, we're a bit busy to be able to contribute much here, but we dig the idea of a 'public' IDE.


Grisu(Posted 2005) [#46]
Nice job guys.
I'm not volunteering as I lack of time. :)

But Mark, could you give them a separate forum for that matter? So people can discuss features, bugs, etc without messing around in the main forums?


bregors(Posted 2005) [#47]
*Update*

All who are interested in the todo-tree please re-download ( http://home.earthlink.net/~cdhcars/maxide-todo-tree.zip ) as it now has an EXE included for those without the GUI mod.

Also, when I said above that ALL of the changes were made in this version of the IDE, I was sadly mistaken. The new copy above does have Perbatio's shortcut keys incorporated, if that helps the future maintainer.


Mark Tiffany(Posted 2005) [#48]
I think that one person needs to pull all the code together now - from the maxide.bmx and from bigted.bmx - and everyone else STOP for now. We're in danger of all flying off in completely different directions, and we need a stable, fully functional base to work from, and to that end we need to get bigted.bmx into a fit state first.

Obviously that means someone needs to sit down and pull all of the above together. I personally believe that needs to be skid (sorry mate!), as he understands both the maxide.bmx code and the bigted.bmx code. He can also add loads of TODO:s wherever he knows there are problems that need addressing. Once this is done, it can be handed over to "The Maintainer".

I am tempted to volunteer as maintainer, but don't have *that* much time to spare as it is. If no-one else comes along, you can choose to put up with me if you so wish.


Mark Tiffany(Posted 2005) [#49]
Okay, I bit the bullet and merged all the code fragments for maxide.bmx together at the link below. Looks stable to me, please give a thorough bashing.

http://myweb.tiscali.co.uk/thetiffanys/tmp/maxide.zip

Code and Win32 EXE only, sorry.

The only changes I haven't included are Perturbatio's, simply because I think we need to work out (and agree) how shortcuts will progress, bearing in mind cross-platofrm issues. I've gone through the current crop of changes in a separate thread to prompt discussion. Once a consensus is reached then we can make the changes.

http://www.blitzbasic.com/Community/posts.php?topic=53326


Mark Tiffany(Posted 2005) [#50]
next up, and before any other changes get added, we need to merge this into the axe module. yuck.


Perturbatio(Posted 2005) [#51]
Mark, the DocGroup change you made seems to be adding the commands as a node to the previous command (although it does classify them under the correct group).




Robert Cummings(Posted 2005) [#52]
I dig this...

marksibly
Nice going dudes!

Any volunteers for an IDE 'maintainer' guy?


I Vote Perty to be the maintainer... anyone will do though :)

That is, if you want the role, Perty?


Perturbatio(Posted 2005) [#53]
That is, if you want the role, Perty?


Whilst I wouldn't object to doing this, I should point out that I won't have a lot of time to do this. I am out every Sunday, Monday, Tuesday and Friday evening and every second thursday.

A CVS would be the ultimate solution of course, but since the IDE isn't open source, we couldn't use Sourceforge.


Mark Tiffany(Posted 2005) [#54]
Re: docgroup change

Oops! No time to fix now (will this evening), but if you run my docmods tweaks above, it should sort itself out. Must have had something hanging around when testing, cos I thought I tried with normal docs...


Perturbatio(Posted 2005) [#55]
but if you run my docmods tweaks above

If you mean the docmods.bmx, I already did. :)


Mark Tiffany(Posted 2005) [#56]
Another bug - if you open the IDE now and there's a file auto-opened (notable maxide.bmx), it barfs. I think this is caused by stray Prints...as I nabbed one earlier, but obviously didn't catch-em-all...


Perturbatio(Posted 2005) [#57]
Could you clarify the phrase 'it barfs'? :)

When I run the current one with maxide auto-opening, it takes a few seconds to highlight the file then everything seems to run fine.


taxlerendiosk(Posted 2005) [#58]
I've been trying to do this myself but not getting anywhere - can anyone show me where I can go in the IDE code, or what modification I can make and where, in order to be able to post-process EXEs as soon as they have been built (to add UPX, command-line ResHacker modifications, and stuff) and then have this processed EXE run instead (if build & run was selected). I'd really appreciate any help with this.


Perturbatio(Posted 2005) [#59]
look at the BuildSource method


Robert Cummings(Posted 2005) [#60]
CVS would be nice. I'd like to download the latest IDE when I feel like it, and have a play, and others could improve and submit changes for possible review.

And if say, a couple of "mantainers" approve it, it gets put in.

So instead of one boss, may I build on the CVS idea and ask if perhaps a couple of the bigger contributors would like to take this role? given it will be a lot less pressure than if one person was to mantain?


Tachyon(Posted 2005) [#61]
AWESOME work guys. Thanks to everyone who has contributed to this.

My only request/complaint is that the updated IDE seems to take twice as long to highlight code as the original 1.12 IDE did. Granted, it is as much my fault for having such a large chunk of code (instead of breaking it out into multiple files), but a 6000 line program takes ~30 seconds to open in the new IDE. Any room for optimization there?

Also, any way of maintaining a version number to these updated IDE(s) in the "About" dialog box? It would be nice to know we are all working on the same version. Maybe something like "1.12 RC1", "1.12 RC2", etc.


Perturbatio(Posted 2005) [#62]
instead of one boss, may I build on the CVS idea and ask if perhaps a couple of the bigger contributors would like to take this role? given it will be a lot less pressure than if one person was to mantain?

That sounds a lot more manageable to me, but we would still need somewhere to host the cvs


taxlerendiosk(Posted 2005) [#63]
look at the BuildSource method

Thanks - but, how do I wait until the build process has finished before doing my stuff?


Perturbatio(Posted 2005) [#64]

Thanks - but, how do I wait until the build process has finished before doing my stuff?

I'd imagine if you did a search for "Process Complete" you'd find some code that's useful


skidracer(Posted 2005) [#65]
denzil,

You will need to add a post argument to the line

host.execute cmd,"Building "+StripExt(StripDir(path)) ',exe$



Before the -x switch was added to bmk the post argument use to be the exe$ name which causes projects to run with the build and run command.

if you want to create another process after the build, pass an entire command line in the post$ argument and enable the following line:

' Execute post$,"","",False,0

if you want to simply trigger an action that is already accessible in the MainMenu use String(MenuActionID) as your post argument,

hope this helps


Mark Tiffany(Posted 2005) [#66]
but a 6000 line program takes ~30 seconds to open in the new IDE

Hence two TODOs added to the source:
1) Add options as to what you want parsed and appearing in the code tree (personally don't care about consts, globals)
2) Optimise the TCodePlay.OpenCode routine - it looks pretty messy and I'm sure could be tidied. But what would be really cool would be a separate thread to handle all that kind of gubbins...
Could you clarify the phrase 'it barfs'? :)

It tries to run and then dies. I see a screen briefly appear, then disappear, with no error. This happened incessantly until I spotted a Print "ok" in the TCodePlay.OpenCode and uncommented it. I'm guessing it's related...

re: docgroup bug, trying to junt it down now. Clearly something hanging around on my PC, as it's fine here; may need a re-install to nail this one.

re: CVS, I'd be all for a proper CVS controlled version. And multiple maintainers would suit me fine. We can use any number of free CVS providers - I am registerred with SourceForge.net but very rarely use it.

Mark / Skid, can we have your thoughts on CVS, and where we're allowed to take this - if anywhere?


Chris C(Posted 2005) [#67]
when the character cursor jumps to an error, I'm always searching for the darn thing!

I looked on msdn to see if there was anyway to send a message to turn the cursor into a block cursor to make it more visible but came up blank...

Anyone any ideas?


Who was John Galt?(Posted 2005) [#68]
Chris I'm totally with you on that one - first thing I tried to change. I've convinced myself there are no Blitz commands to change it but haven't looked at MSDN yet.


Perturbatio(Posted 2005) [#69]
Would it make sense to highlight the offending code in some way rather than changing the text cursor type?


Mark Tiffany(Posted 2005) [#70]
Also, a highlight of the current line (icon to the left or full row highlight) would be nice. However, I suspect we'll end up needing to roll our own gadget to get all of this working.

Whilst we're on feature requests, bookmarks would be very handy.

Anyway, fixed up my bodged update (same download name, but updated and includes the new docmods.exe too). Link below:

http://myweb.tiscali.co.uk/thetiffanys/tmp/maxide.zip


Mark Tiffany(Posted 2005) [#71]
Skids - can't get axe maxedit working - complains around loading the toolbar using the bigted.bmx that comes through syncmods and the one posted above, although I'm not convinced it's the real error.


Hotcakes(Posted 2005) [#72]
A CVS would be the ultimate solution of course, but since the IDE isn't open source, we couldn't use Sourceforge.

Yes it is. How do you think you're messing with the source right now? ;] The IDE source is even distributed without MaxGUI (even though it needs MaxGUI to compile).

There's no reason a sourceforge CVS couldn't be used, unless sourceforge restricts license terms... If they don't though, just chuck up a huge copy'n'paste from BRL's license terms (if they're actually mentioned anywhere). Seriously. I don't see the difference between people with BlitzMax (but not MaxGUI) seeing the IDE source and the general public (without BlitzMax) seeing the source. It's just a crappy IDE (atm). =]


Perturbatio(Posted 2005) [#73]
I'm pretty sure that the license has to be one of the sourceforge approved ones.

Take a look about halfway down this thread for details.

The BMax IDE is in fact under the Blitz Shared Source Code License ( file:///C:/Program%20Files/BlitzMax/doc/licenses/bssc.html )


Hotcakes(Posted 2005) [#74]
Well, that sucks, then.


skidracer(Posted 2005) [#75]
Not exactly a tweak but it looks like we'll be changing the license to public domain.

Has anyone had any experience with creating a sourceforge project?


Perturbatio(Posted 2005) [#76]
Has anyone had any experience with creating a sourceforge project?


I'm willing to try it, I still have a membership from when we almost signed up to them during the Alien Breed dev.


Perturbatio(Posted 2005) [#77]
Ok, I went ahead and submitted it, it may take two or three days to be processed.

Project Registration: Submission completed

Your request should be reviewed by SourceForge.net staff in the next two business days (9AM to 5PM, Monday through Friday). Response regarding your project (notice of rejection/approval) will be posted to your My SourceForge.net Projects page (accessible via the My SF.net link at the top of each site page). No email notification will be provided about approval/rejection of your project.

For your convenience, a copy of the details you submitted about your project has been sent to you via email. Please keep this information in a safe place, for future reference.

Should you have questions or concerns regarding the status of your project registration, please submit a Support Request.


You may check on the status of your project at any time using the My SF.net Projects page. Until your registration is reviewed by SourceForge.net staff, it will be shown in the list of Pending Projects on the My SF.net Projects page. After review has occurred, it will appear in the list of Active or Rejected projects, depending on the outcome of that review.



A copy of the registration info I submitted can be found here


skidracer(Posted 2005) [#78]
Excellent, good luck with that!


Mark Tiffany(Posted 2005) [#79]
I'm willing to try it, I still have a membership from when we almost signed up to them during the Alien Breed dev.

Ditto! I keep meaning to dust that off sometime and 'max-ify it.

Once we're registerred, we should probably start a new thread for this as we're approaching the customary 100 post mark...


Chris C(Posted 2005) [#80]
@skidracer - thanks for changing the license - that's gonna make it so much easier!

glad I'm not the only one who's cursor blind!

is there anyway to change the background colour on a richedit control?

I remember doing somthing with a delphi component years ago where I overrode(?) the paint function, found out what text was to be displayed and how many lines then draw them myself...

I'm just looking for ideas, what do people think is the best way to go about it?

maybe another component on the left providing a gutter we could use for highlighting (and maybe adding invisible debugstop statements)?


Tom(Posted 2005) [#81]
Can someone fix this indent behaviour, it's irritating!

Put cursor at the beginning of the line 'Local a' and hit return twice, also, put cursor in front of 'Local b' and hit return a few times. It's adding tabs here Grrrr!

	Local a
		Local b



Perturbatio(Posted 2005) [#82]
Can someone fix this indent behaviour, it's irritating!

File->IDE Options->Untick Auto Indent


Mark Tiffany(Posted 2005) [#83]
maybe another component on the left providing a gutter

This feels like the best option to me. It means we can leave the richtext field well alone, and if at some point in the future someone wants roll a whole new text control, they can, and our gutter won't be wasted.


Tom(Posted 2005) [#84]
Perturbatio: I've always used the auto-indent option, but it's working differently in 1.12.

Did you try the example I gave you?


Perturbatio(Posted 2005) [#85]
it's a shame there's no OSX version of Scintilla


Wiering(Posted 2005) [#86]
A feature I would really like to see in the IDE is an easy way to set the main .bmx file that should be compiled, while working on a different file (like "Set primary file" / "Clear primary file" in Turbo Pascal) or simply a shortcut key Shift+F5 to re-compile/run the same .bmx file you compiled last time (without first having to switch to your main file, then press F5 and afterwards go back to the file you were working on).


Robert Cummings(Posted 2005) [#87]
Local a
Local b


Tom's example for intenting is a bug. It should not indent that.


Cajun17(Posted 2005) [#88]
Mark Tiffany
1) Add options as to what you want parsed and appearing in the code tree (personally don't care about consts, globals)
2) Optimise the TCodePlay.OpenCode routine - it looks pretty messy and I'm sure could be tidied

It tries to run and then dies. I see a screen briefly appear, then disappear, with no error. This happened incessantly until I spotted a Print "ok" in the TCodePlay.OpenCode and uncommented it. I'm guessing it's related...


Sorry about that. I was debugging it, I thogutht I got all those out in the version I submitted. Oh well I'll check when I get home. I'm gonna leave number 1 alone for now, but I'll go back through the method and redo it.


Mark Tiffany(Posted 2005) [#89]
A feature I would really like to see in the IDE is an easy way to set the main .bmx file that should be compiled, while working on a different file (like "Set primary file" / "Clear primary file" in Turbo Pascal) or simply a shortcut key Shift+F5 to re-compile/run the same .bmx file you compiled last time (without first having to switch to your main file, then press F5 and afterwards go back to the file you were working on).

Seen the menu item Program \ Lock Build File ? ;-)

Cajun17: no probs, I haven't had it crash since I removed the one that I did find, and I saw a separate thread somewhere earlier today that implies similar behaviour to what I saw occurs in the original 1.12 IDE too. As for "todo" number 2 that you quoted above, I reckon there must be a way of only formatting what's visible at any one time, and that might help?


Wiering(Posted 2005) [#90]
Seen the menu item Program \ Lock Build File ? ;-)


Thanks! I never saw that one before :o


Jay Kyburz(Posted 2005) [#91]
The problem with lock build file is that is has to be open.


Yan(Posted 2005) [#92]
I'm a bit confused, is everyone supposed to be working off of the BigTed source or the MaxIDE source and which one is going on SorceForge?


skidracer(Posted 2005) [#93]
For the next few weeks it will probably be a lot simpler to be working off the single file MaxIDE source.

Hopefully I'll get a more comprehensive MaxEdit module released soon, the aim is to provide a standard application framework for building any type of editor with a plugin system so that apps can be built standalone or as plugins for an IDE such as bigted.


bregors(Posted 2005) [#94]
Skidracer: The above post sounds a bit like an application framework... Is BRL working on an application framework? :)


Shagwana(Posted 2005) [#95]
Will someone please put the projects information in its own tab like Home, Code, Debug and ToDo!!


Robert Cummings(Posted 2005) [#96]
Yes that is a TERRIFIC idea putting projects in it's own tab.


I also would like block folding done like in visual studio.
Including folding rem blocks.

That would be heaven for simplifying the code in view. Make it like visual studio tho...


Another feature I have always wished for is the ability to re-arrange tabs. I would like to be able to shuffle them left or right. This is because in big projects you usually have a your work split across files... and often need to rearrange them next to each other in the IDE.

A final note: the bug still exists where if you use lock build file, and then rename or move the file, when you re-open maxide it will crash and quit if it cannot find the previous lock build file.


Hotcakes(Posted 2005) [#97]
Not exactly a tweak but it looks like we'll be changing the license to public domain.

And that completely unsucks =]

The thing I love about Sourceforge is that I don't have to check for whenever a major update is released. They email me. That's just... super nice.


Perturbatio(Posted 2005) [#98]


Current status: Rejected by SF.net
Review comment: The project description you submitted was deemed inadequate for purpose of project approval by the member of the SourceForge team who reviewed your project registration. The project description you submit is used to determine whether your project qualifies for hosting on SourceForge.

Chances are high that one of the following cases is true:

1. You submitted a description which did not provide any description of your project (i.e. you left this field blank or filled it with garbage).

2. You submitted a description which did not clearly explain the purpose of your project; simply restating the name of the project is not adequate, in most cases. We often ask for additional details on project registrations for games, web-based forum systems and content management systems; how does your project differ from existing projects?

3. You provided a very vague description for your project and did not provide any details of how your software operates, what OS platforms you intend to support, which programming languages you are using the development of your project, or the graphical nature of your application (whether your app is a command-line utility, X11-based, GTK+ or qt-based, etc.).

In order to remedy this situation, modify your project description.

Thank you,

SourceForge.net support team


:(


Need some help with the description of this project guys.

What I have is:

UNIX NAME: blitzmax-ide

Descriptive Name: Blitzmax IDE

Public Description: A public domain version of the BlitzMax IDE.  Requires the commercial MaxGUI mod and BlitzMax v1.12 to compile.  (See http://www.blitzmax.com for details)

Trove Categorization:

#  	 License :: Public Domain
# Intended Audience :: by End-User Class :: Developers
# Development Status :: 4 - Beta
# Topic :: Software Development
# Programming Language :: BASIC
# Operating System :: Grouping and Descriptive Categories :: OS Portable (Source code to work with many OS platforms)
# User Interface :: Graphical :: Cocoa (MacOS X)
# User Interface :: Graphical :: Win32 (MS Windows)
# User Interface :: Toolkits/Libraries :: FLTK
# Translations :: English

Registration Description:

A user-maintained public domain version of the BlitzMax IDE for use with the BlitzMax Programming language ( http://www.blitzmax.com ).

Blitzmax is a multiplatform (Win32/Linux/OSX) programming language and the IDE will be targeted at these platforms also (and written using the language itself).

It is based on the source code provided by Blitz Research for modification when purchasing the full BMax language.


We need to come up with a more detailed description methinks (and maybe some way of proving that BRL have declared it to be public domain).


skidracer(Posted 2005) [#99]
Here is an IDE description I borrowed from browsing existing projects on source forge which suggests maybe make the description simpler not more complicated. Maybe just replace SharpDevelop with MaxIDE and .net / c# with BlitzMax?



SharpDevelop

SharpDevelop is an open source IDE for the .NET platform. It is entirely written in C#, and supports various project types in multiple programming languages.

* Development Status: 5 - Production/Stable
* Intended Audience: Developers
* License: Public Domain
* Operating System: 32-bit MS Windows (NT/2000/XP)
* Programming Language: Basic
* Topic: Software Development , Integrated Development Environments (IDE)
* Translations: English
* User Interface: Win32 (MS Windows)




Perturbatio(Posted 2005) [#100]
Ok, for the categories I have:


# License :: Public Domain
# Intended Audience :: by End-User Class :: Developers
# Development Status :: 5 - Production/Stable
# Topic :: Software Development
# Topic :: Text Editors :: Integrated Development Environments (IDE)
# Programming Language :: BASIC
# Operating System :: Grouping and Descriptive Categories :: All 32-bit MS Windows (95/98/NT/2000/XP)
# User Interface :: Graphical :: Win32 (MS Windows)
# Translations :: English



Does the rest of it need to be changed do you think?


Yan(Posted 2005) [#101]
I haven't got a clue as to what SourceForge expect from the description, I'm afraid.

But I have added a numeric text style, Hex highlighting and updated the IDE options window...

MaxIDE.zip ~311KB

You may want to back up your 'ide.ini' file before running this version.


Mark Tiffany(Posted 2005) [#102]
nice one!


Chris C(Posted 2005) [#103]
@Perturbatio - about needing comercial tools, there are plenty of projects for VC++ (only) and they dont make such a point about it,

MaxIDE, an IDE (written in BlitzMax by the BRL and the BlitzMax community) to help users of BlitzMax create and maintain BlitzMax source code. This source code has been released by BRL as public domain.
the editor currently has the following features
.
.
.
In the future we plan the following features
.
.
.

An if that aint enough for them!

Categories:
If its a text field for language I'd say its written in BlitzMax not Basic...
OS should be MacOS, Win(xx), and Linux

Other than that just what do they want inside leg measurements?


skidracer(Posted 2005) [#104]
I would reduce it to a couple of sentences and forget all the BRL references.


MaxIDE

MaxIDE is a Public Domain IDE for the BlitzMax programming language. It is written entirely in BlitzMax and is the basis of the IDE included in the BlitzMax distribution available from www.blitzbasic.com.




Perturbatio(Posted 2005) [#105]
ok, I've resubmitted it with a the minimal description above. They'll probably reject it cos' it doesn't have enough fullstops now. :)


Chris C(Posted 2005) [#106]
lol you would have thought

IDE for BlitzMax.

should be enough!


Jay Kyburz(Posted 2005) [#107]
Hey all,

I think it's important that when we add a new features to the IDE we add a section to the options to disable it.

I think this should be a prerequisite for inclusion in the Source Forge project.

What do you guys think?


Hotcakes(Posted 2005) [#108]
# Operating System :: Grouping and Descriptive Categories :: All 32-bit MS Windows (95/98/NT/2000/XP)
# User Interface :: Graphical :: Win32 (MS Windows)

I don't like those two entries. You were better off the first time I think. It's not just for Windows...


Jay Kyburz(Posted 2005) [#109]
Good point.. can we make another prerequisite that all features added work correctly on all 3 platforms.


Proger(Posted 2005) [#110]
Please add the "find smthng in the project" feature :)


Mark Tiffany(Posted 2005) [#111]
Good point.. can we make another prerequisite that all features added work correctly on all 3 platforms.

Definitely agree (was why I didn't add some of perturbatio's shortcut changes, despite them being worthwhile).
I think it's important that when we add a new features to the IDE we add a section to the options to disable it.

Also agree in principle, although some changes will just be obvious. It might be worthwhile taking the version of the options screen that skid has started in the axe.maxedit source, and build that up to plug into the existing source. Not only will it open up more options, but it's a step towards getting the two sources back in sync. It's also a better style of option screen (tree of options categories that yield different pages of options).


Perturbatio(Posted 2005) [#112]
I agree too.

No update on status of sourceforge application btw.


Mark Tiffany(Posted 2005) [#113]
One "Bobby Ferris" registerred a project on SourceForge called "maxide" back in Feb 2004. This may be part of the problem - a conflicting name?


Perturbatio(Posted 2005) [#114]
Project  	  	Created on  	Business days in queue  	Status
MaxIDE - Blitzmax IDE  	2005-11-21 03:41  	3  		Pending Review



Robert Cummings(Posted 2005) [#115]
Another little bugette in the IDE worth fixing: if you go rem...endrem, then remove endrem before removing rem, then remove rem...

The rest of the text will not be highlighted again.

You also can't nest rem statments. For instance you have remarked out some comments then need to rem out a block of code with the comments inside.


Hotcakes(Posted 2005) [#116]
Being unable to nest rem statements is a compiler issue. I mentioned it in the past but don't know if it changed with the 1.12 release.


Artemis(Posted 2005) [#117]
There's a problem with the new update:
I'm not able to commpile anymore.
There's an error in line 431:
Compile Error: Unable to convert from 'Int' to 'TGadget'

What is it and how do I fix it?


Wiebo(Posted 2005) [#118]
Read the release notes, all is explained =]


Mark Tiffany(Posted 2005) [#119]
Yeah, skid has updated the old maxide code slightly to deal with this; we need to do the same to our branch of code. Personally, I'd like to switch over to SuperStrict, but just getting it compiling under Strict will be a start...


rdodson41(Posted 2005) [#120]
I really would like numeric literals to be highlighted, but they aren't now, and I am hoping they will be eventually, but in the mean time I added a little code snippit to highlight decimal integers. I might add code to highlight floating point, hex, and binary literals too if the capability isn't added soon.

Add between lines 3505 and 3506:
'***** decimal numbers
			If 48 <= a And a <= 57 Then
				q=p+1
				While q<p1
					a=src[q]
					If a < 48 Or 57 < a Then Exit
					q:+1
				Wend
				s=style[QUOTED]
				s.format(textarea,p,q-p)
				p=q
				Continue
			EndIf



Mark Tiffany(Posted 2005) [#121]
Sushi, we already incorporated this one into the most recent source posted above, and someone else added the ability to have a different colour for literals in the options.


bregors(Posted 2005) [#122]
How is the SourceForge project going? Hasn't it been three days yet?


Perturbatio(Posted 2005) [#123]
Woohoo!
MaxIDE - Blitzmax IDE (blitzmax-ide)  	2005-11-21 03:41  	Approved by SF.net


https://sourceforge.net/projects/blitzmax-ide


Mark Tiffany(Posted 2005) [#124]
Looks like it's been approved:

http://sourceforge.net/projects/blitzmax-ide

My userid is sgtbillko, name=Mark Tiffany (duh!) on SourceForge, feel free to add me as a developer Perty!


Mark Tiffany(Posted 2005) [#125]
doh! that'll teach me to leave a page open for 7 minutes before posting!


Perturbatio(Posted 2005) [#126]
Mark, it tells me that your UserID (sgtbillko) does not exist. can you verify that you are able to log in and that the above is your UNIX name?


Mark Tiffany(Posted 2005) [#127]
oops, typo! should be just one l : sgtbilko


Perturbatio(Posted 2005) [#128]
ok, you've been added now :)

I have to go out now, but you should be able to authorise people now.


Mark Tiffany(Posted 2005) [#129]
Ta.

I now have a copy of code that compiles (and seems to work) under 1.14. Will merge in skid's additional changes tomorrow night and upload to sourceforge once I've figured out the CVS stuff. I may also start trying to pull it apart a bit, in line with skids more pluggin-able "axe module" version.


Perturbatio(Posted 2005) [#130]
I now have a copy of code that compiles (and seems to work) under 1.14. Will merge in skid's additional changes tomorrow night and upload to sourceforge once I've figured out the CVS stuff.

Ok, it would be a good idea if anyone else who is making or planning changes, could hold off until this is done.

Incidentally, if you need help with CVS Chris C (posted a request) has used sourceforge before, apparently it's not all intuitive.


Chris C(Posted 2005) [#131]
arrrgh no run away....

when I started my project 1/2 of sourceforge was only working 1/2 the time, mind you that happens quite often...
(overloaded me thinks!)

mark email me via profile email if you're having no joy


Perturbatio(Posted 2005) [#132]
landed you in it there didn't I?


Chris C(Posted 2005) [#133]
nah not really, only too glad to help...
cvs is *real* fun, easier just to stick with packages cvs aint half as clever as people seem to think...
that way anyone can just d/load the latest release, and post a DIFF file to the sourceforge patch forum.


Wiebo(Posted 2005) [#134]
He guys,
This is cool stuff! Keep it up.


d-bug(Posted 2005) [#135]
Where have I to post my Support-Request ? At the SF-Project or over here ?

How about Multi-Language-Support ? Startet yesterday with this issue, but i'm not shure if it is wanted. Also I'm not shure, if i got the last version of all those tweaks and how to handle it becourse i have to tweak nearly the whole code for this ?! :)

regards


Perturbatio(Posted 2005) [#136]
Any suggestions/bugs/comments would be better placed at the SourceForge page, even though there is no source there currently.


Yan(Posted 2005) [#137]
Which leads to the question of how this is gonna work?

Will we all need a CVS client, an SF account and be registered as a developer or are you chaps going to maintain the code manually?


Perturbatio(Posted 2005) [#138]
I *hope* that we can get CVS working reasonably well, but if not something like Chris C suggested with a DIFF file may be the next best option.


Mark Tiffany(Posted 2005) [#139]
How about Multi-Language-Support ?

I already added this as a feature request. Skid suggested a while back the idea of a (BRL?) module that did basic translation for all apps, all languages (e.g. File, Open, Close, Save, etc), which would then need some kind of "extendability" to then add specifics for your app (e.g. Compile, Sync Mods, etc). So it'd be good to bear that in mind if you can!


Which leads to the question of how this is gonna work?

Will we all need a CVS client, an SF account and be registered as a developer or are you chaps going to maintain the code manually?

I think anyone interested should get an SF account. This will enable you to post feature reqs, bugs, discussion, etc.

In terms of everyone editing the code, we'll presumably provide a download package of just the binary, and one for the source code. If you want to amend the code big-style, then yes, I'd suggest you'll need CVS, but for smaller, or self-contained stuff, I don't see why it couldn't be manually merged in by one of us.

I've yet to get to grips with CVS, so I may have a better view later. I've used plenty of other source control systems in the past, but not CVS. Chris C, any input?

One thing that would be handy is for someone / somepeoples to gather up all IDE bugs scatterred over this site and dump them into the SF.net bug tracker.


d-bug(Posted 2005) [#140]
O.K. ! So I'll keep it in mind and wait for this module. Just thought about adding it as *.ini files in a specific directory and add a dropdown in the options-requester wich items are scanned from the directory at startup. Of course with a new value in the config file, to keep the language.


Mark Tiffany(Posted 2005) [#141]
Okay, I've uploaded my single file version of maxide (called it 1.14), and created a src and i386 release. All files are now in the CVS.

O.K. ! So I'll keep it in mind and wait for this module. Just thought about adding it as *.ini files in a specific directory and add a dropdown in the options-requester wich items are scanned from the directory at startup. Of course with a new value in the config file, to keep the language.

I'm thinking that a simple module can be built with a couple of commands:

SetLanguage LANGUAGE_ENGLISHUK
SetAppTranslations "incbin:\\mytrans.xml"
Print Translate("Save As")
Print Translate("Synchronize Modules")

Where common stuff like "Save As" gets looked up in a common lookup table (IncBin a file within the module), and all specific stuff like "Synchronize Modules" gets looked up in the app specific file. If nothing is found, just return the string as it was passed in.

At this stage, a module would be nice, but if you write a bit of code to do the above, we can easily plug it in whatever. I don't have much preference for a file format, XML might be a good idea I guess, e.g.:

<translation phrase="Close">
<english>Close</english>
<french>Fermez</french>
</translation>


But any structured text format would probably do the job...


Perturbatio(Posted 2005) [#142]
XML would be my preference


d-bug(Posted 2005) [#143]
Hm, I dont know if it is a very good idea to do this in XML, since I thought of the fact, that every body can build it's own language-files and not every body is able to use XML (me too :( ).

O.K. I will do the code snippets and some examples, how to use them. I've still got a ready to use Ini module at my place , so this might last to long. But please give me 2 days, becourse i can't upload until then.

Regards


MrCredo(Posted 2005) [#144]
Q: what is about COMPLETE rewrite? BlitzIDE is very very bad


Mark Tiffany(Posted 2005) [#145]
Q: what is about COMPLETE rewrite? BlitzIDE is very very bad

Thanks for the useful critique. Feel free to post feature requests and / or bug reports.
Hm, I dont know if it is a very good idea to do this in XML

INI files will do, at least for now. I don't think we should spend any time getting XML stuff up and running - if at some point a BRL XML module comes along, then maybe we switch then.

Thinking about my suggestions for translations above, I'm still undecided as to whether you should pass in some text, or an ID. At the very least, we need a bunch of constants defined for the common stuff which can be treated as if they are IDs.


Yan(Posted 2005) [#146]
Okay, I've got CVS to checkout the maxide module and I've added some stuff (just binary numeric highlighing, mainly as a test) and I've got a text 'patch' file.

I'll post it here and you can merge it...I think ;o)

It was called 'maxide.bmx.patch' this end (dunno if that matters)...


Mark Tiffany(Posted 2005) [#147]
No idea what to do with the patch file! Can't seem to find any clues, other than a vague reference to a patch command on the CVS docs site, which isn't then explained!


Chris C(Posted 2005) [#148]
patch is a *really* neat piece of unix software (works in cygwin too...) basically type
man patch

from linux command line or cygwin (you'll need to select it when you use setup.exe)

its basically purpose make for what ppl are doing here!


Chris C(Posted 2005) [#149]
http://winmerge.sourceforge.net/ - found this too, hope you find it useful.


Perturbatio(Posted 2005) [#150]
winmerge looks like a good choice, it even integrates with TortoiseCVS.


Chris C(Posted 2005) [#151]
but dont let that be an excuse for not using cygwin ;p


skidracer(Posted 2005) [#152]
New thread started here