MaxIDE tweaks
BlitzMax Forums/BlitzMax Module Tweaks/MaxIDE tweaks
| ||
See this page for details on the latest version of the MaxIDE: https://sourceforge.net/projects/blitzmax-ide/ |
| ||
Is buggy. My WinXP-laptop running 100% and the memory is eaten... |
| ||
He only changed shortcut keys. How does that change cpu usage? ;] |
| ||
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! |
| ||
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) |
| ||
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) |
| ||
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. |
| ||
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 ? |
| ||
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/ |
| ||
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. |
| ||
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. |
| ||
THANKS to you Cojun17!!!!! I can skipwords with CTRL+Cursor rigth,left now. That is so cool :) IMurDOOM |
| ||
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. |
| ||
I don't suppose anyone fancies adding some folding in for functions, loops, etc? |
| ||
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? |
| ||
Yes, I'd like to contribute as well but not sure of the best way to merge in everybodys changes and keep everthing uptodate. |
| ||
Please - delete changed (file) tabs on button Ctrl+Left (Right) and set this to Ctrl+Tab..... Please ;) |
| ||
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? |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
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 |
| ||
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". |
| ||
Just want to say that I like Marks T's idea! |
| ||
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. |
| ||
I think this thread ought to be sticky, surely the "community" ide is important enough to warrant it. Theres some real nice stuff here! |
| ||
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 |
| ||
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 |
| ||
is there anybody who can build the maxIDE for linux? |
| ||
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 |
| ||
would it be possible to build a linux version? please. Fr3eMaN |
| ||
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 |
| ||
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 |
| ||
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" |
| ||
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 |
| ||
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. |
| ||
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? |
| ||
@Mark. Those are some good ideas Mark. I'll see if I can implement the TODO/FIX/BUG into a treepanel (Todo). |
| ||
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. |
| ||
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. |
| ||
Have you tried overwriting the bigted.bmx source with the one posted above? |
| ||
Another thing to address: tabbing a block seems flakey. Sometimes it will not work and it'll erase my text. |
| ||
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 |
| ||
How about an executable for those of us without MaxGUI (can't compile the source) but want to try this improved IDE? |
| ||
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. |
| ||
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? |
| ||
*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. |
| ||
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. |
| ||
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 |
| ||
next up, and before any other changes get added, we need to merge this into the axe module. yuck. |
| ||
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).![]() |
| ||
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? |
| ||
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. |
| ||
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... |
| ||
but if you run my docmods tweaks above If you mean the docmods.bmx, I already did. :) |
| ||
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... |
| ||
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. |
| ||
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. |
| ||
look at the BuildSource method |
| ||
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? |
| ||
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. |
| ||
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 |
| ||
look at the BuildSource method Thanks - but, how do I wait until the build process has finished before doing my stuff? |
| ||
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 |
| ||
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 |
| ||
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? |
| ||
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? |
| ||
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. |
| ||
Would it make sense to highlight the offending code in some way rather than changing the text cursor type? |
| ||
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 |
| ||
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. |
| ||
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). =] |
| ||
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 ) |
| ||
Well, that sucks, then. |
| ||
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? |
| ||
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. |
| ||
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 |
| ||
Excellent, good luck with that! |
| ||
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... |
| ||
@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)? |
| ||
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 |
| ||
Can someone fix this indent behaviour, it's irritating! File->IDE Options->Untick Auto Indent |
| ||
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. |
| ||
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? |
| ||
it's a shame there's no OSX version of Scintilla |
| ||
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). |
| ||
Local a Local b Tom's example for intenting is a bug. It should not indent that. |
| ||
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. |
| ||
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? |
| ||
Seen the menu item Program \ Lock Build File ? ;-) Thanks! I never saw that one before :o |
| ||
The problem with lock build file is that is has to be open. |
| ||
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? |
| ||
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. |
| ||
Skidracer: The above post sounds a bit like an application framework... Is BRL working on an application framework? :) |
| ||
Will someone please put the projects information in its own tab like Home, Code, Debug and ToDo!! |
| ||
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. |
| ||
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. |
| ||
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). |
| ||
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) |
| ||
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? |
| ||
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. |
| ||
nice one! |
| ||
@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? |
| ||
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. |
| ||
ok, I've resubmitted it with a the minimal description above. They'll probably reject it cos' it doesn't have enough fullstops now. :) |
| ||
lol you would have thought IDE for BlitzMax. should be enough! |
| ||
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? |
| ||
# 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... |
| ||
Good point.. can we make another prerequisite that all features added work correctly on all 3 platforms. |
| ||
Please add the "find smthng in the project" feature :) |
| ||
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). |
| ||
I agree too. No update on status of sourceforge application btw. |
| ||
One "Bobby Ferris" registerred a project on SourceForge called "maxide" back in Feb 2004. This may be part of the problem - a conflicting name? |
| ||
Project Created on Business days in queue Status MaxIDE - Blitzmax IDE 2005-11-21 03:41 3 Pending Review |
| ||
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. |
| ||
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. |
| ||
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? |
| ||
Read the release notes, all is explained =] |
| ||
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... |
| ||
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 |
| ||
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. |
| ||
How is the SourceForge project going? Hasn't it been three days yet? |
| ||
Woohoo!MaxIDE - Blitzmax IDE (blitzmax-ide) 2005-11-21 03:41 Approved by SF.net https://sourceforge.net/projects/blitzmax-ide |
| ||
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! |
| ||
doh! that'll teach me to leave a page open for 7 minutes before posting! |
| ||
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? |
| ||
oops, typo! should be just one l : sgtbilko |
| ||
ok, you've been added now :) I have to go out now, but you should be able to authorise people now. |
| ||
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. |
| ||
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. |
| ||
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 |
| ||
landed you in it there didn't I? |
| ||
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. |
| ||
He guys, This is cool stuff! Keep it up. |
| ||
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 |
| ||
Any suggestions/bugs/comments would be better placed at the SourceForge page, even though there is no source there currently. |
| ||
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 *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. |
| ||
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. |
| ||
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. |
| ||
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... |
| ||
XML would be my preference |
| ||
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 |
| ||
Q: what is about COMPLETE rewrite? BlitzIDE is very very bad |
| ||
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. |
| ||
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)... |
| ||
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! |
| ||
patch is a *really* neat piece of unix software (works in cygwin too...) basically typeman 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! |
| ||
http://winmerge.sourceforge.net/ - found this too, hope you find it useful. |
| ||
winmerge looks like a good choice, it even integrates with TortoiseCVS. |
| ||
but dont let that be an excuse for not using cygwin ;p |
| ||
New thread started here |