I'm thinking it would be a decent idea to move away from IDEs in the Linux end of things, instead creating a cohesive set of smaller tools that work in a predictable way...
Just symlinking bmk from a place on my PATH and running the terminal works pretty well, but it could be nicer. I like GUIs :)
MaxIDE is a glorified text editor. While that is alright on its own, since it does theoretically give quick access to common things, it is not a very attractive text editor on this platform. Both GNOME and KDE thrive on integration, and this program is not at all integrated. Besides that,
nobody uses FLTK.
We have a lot of much more attractive glorified text editors already available in Linux, such as Scribes, which ingeniously does away with any need for clever autocomplete with big lists of objects. Instead, it just keeps a history of single words that have been written, and autocompletes those. Much quicker, works for everything, and seems fine for most cases.
The only place in need of a fancy tool is debugging, building modules, and
maybe reading documentation. We can scratch out the text editor component and start opening an external browser instead of trying hopelessly to embed the thing. Jumping to / highlighting lines via the debugger would be sadly missed, but that could be implemented by text editor plugins.
What gives me the right to babble on like this? The very rough and imperfect beginnings of a GTKSourceView syntax highlighter!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language _name="BlitzMax" version="1.0" _section="Sources" mimetypes="text/x-bmx">
<default-regex-options>i</default-regex-options>
<line-comment _name = "Line Comment" style= "Comment">
<start-regex>'</start-regex>
</line-comment>
<block-comment _name = "Block Comment" style = "Comment" case-sensitive="FALSE">
<start-regex>Rem</start-regex>
<end-regex>End Rem</end-regex>
</block-comment>
<string _name = "String" style = "String" end-at-line-end = "TRUE">
<start-regex>"</start-regex>
<end-regex>"</end-regex>
</string>
<pattern-item _name="Number" style="Number">
<regex>\b[0-9]+\b</regex>
</pattern-item>
<keyword-list _name = "Keywords" style = "Keyword" case-sensitive="FALSE">
<keyword>Matrix</keyword>
<keyword>Plane</keyword>
<keyword>Quaternion</keyword>
<keyword>Rectangle</keyword>
<keyword>Vector2</keyword>
<keyword>Vector3</keyword>
<keyword>TBankStream</keyword>
<keyword>TBank</keyword>
<keyword>Abs</keyword>
<keyword>Abstract</keyword>
<keyword>And</keyword>
<keyword>Asc</keyword>
<keyword>Assert</keyword>
<keyword>Byte</keyword>
<keyword>Case</keyword>
<keyword>Catch</keyword>
<keyword>Chr</keyword>
<keyword>Const</keyword>
<keyword>Continue</keyword>
<keyword>Default</keyword>
<keyword>DefData</keyword>
<keyword>Delete</keyword>
<keyword>Double</keyword>
<keyword>EachIn</keyword>
<keyword>Else</keyword>
<keyword>ElseIf</keyword>
<keyword>End</keyword>
<keyword>EndExtern</keyword>
<keyword>EndFunction</keyword>
<keyword>EndIf</keyword>
<keyword>EndMethod</keyword>
<keyword>EndRem</keyword>
<keyword>EndSelect</keyword>
<keyword>EndTry</keyword>
<keyword>EndType</keyword>
<keyword>EndWhile</keyword>
<keyword>Exit</keyword>
<keyword>Extends</keyword>
<keyword>Extern</keyword>
<keyword>False</keyword>
<keyword>Field</keyword>
<keyword>Final</keyword>
<keyword>Float</keyword>
<keyword>For</keyword>
<keyword>Forever</keyword>
<keyword>Framework</keyword>
<keyword>Function</keyword>
<keyword>Global</keyword>
<keyword>Goto</keyword>
<keyword>If</keyword>
<keyword>Import</keyword>
<keyword>Incbin</keyword>
<keyword>IncbinLen</keyword>
<keyword>IncbinPtr</keyword>
<keyword>Include</keyword>
<keyword>Int</keyword>
<keyword>Len</keyword>
<keyword>Local</keyword>
<keyword>Long</keyword>
<keyword>Max</keyword>
<keyword>Method</keyword>
<keyword>Min</keyword>
<keyword>Mod</keyword>
<keyword>Module</keyword>
<keyword>ModuleInfo</keyword>
<keyword>New</keyword>
<keyword>Next</keyword>
<keyword>Not</keyword>
<keyword>Null</keyword>
<keyword>Object</keyword>
<keyword>Or</keyword>
<keyword>Pi</keyword>
<keyword>Private</keyword>
<keyword>Ptr</keyword>
<keyword>Public</keyword>
<keyword>ReadData</keyword>
<keyword>Release</keyword>
<keyword>Rem</keyword>
<keyword>Repeat</keyword>
<keyword>RestoreData</keyword>
<keyword>Return</keyword>
<keyword>Sar</keyword>
<keyword>Select</keyword>
<keyword>Self</keyword>
<keyword>Sgn</keyword>
<keyword>Shl</keyword>
<keyword>Short</keyword>
<keyword>Shr</keyword>
<keyword>SizeOf</keyword>
<keyword>Step</keyword>
<keyword>Strict</keyword>
<keyword>String</keyword>
<keyword>Super</keyword>
<keyword>SuperStrict</keyword>
<keyword>Then</keyword>
<keyword>Throw</keyword>
<keyword>To</keyword>
<keyword>True</keyword>
<keyword>Try</keyword>
<keyword>Type</keyword>
<keyword>Until</keyword>
<keyword>Var</keyword>
<keyword>Varptr</keyword>
<keyword>Wend</keyword>
<keyword>While</keyword>
<keyword>EmitEventHook</keyword>
<keyword>TEvent</keyword>
<keyword>FlipHook</keyword>
<keyword>TLink</keyword>
<keyword>TList</keyword>
<keyword>TListEnum</keyword>
<keyword>BaseLuaInterface</keyword>
<keyword>TPixmap</keyword>
<keyword>TPixmapLoader</keyword>
<keyword>TCStream</keyword>
<keyword>TIO</keyword>
<keyword>TStream</keyword>
<keyword>TStreamException</keyword>
<keyword>TStreamFactory</keyword>
<keyword>TStreamReadException</keyword>
<keyword>TStreamWrapper</keyword>
<keyword>TStreamWriteException</keyword>
<keyword>XmlAttr</keyword>
<keyword>XmlDocument</keyword>
<keyword>XmlNode</keyword>
</keyword-list>
</language>
That is based on Noel's (currently superior) highlighter for Kate. Thanks, Noel!
Just dump it in your home folder, under ~/.gnome2/gtksourceview-1.0/language-specs/blitzmax.lang
The next big release of GTKSourceView is changing things with these language specs, and I had originally written for that one by accident, which is why this one is a bit half-assed. That version will work far nicer with BlitzMax :)
As for the GTK version of the CE IDE, I am almost ready to finally buy MaxGUI and try to get the thing working to my likings. It is a stellar improvement over the default IDE. I do not see any benefit to using that integrated browser control, though, since it has caused way more trouble than it's worth. Having the browser in a different window really is not that bad, especially when it means the difference between working well and working badly!