- Joined
- Dec 26, 2007
- Messages
- 202
About 7 months ago, I thought that when SC2 comes out, we're screwed because we don't have any IDE/syntax highlighter for it. (Asuming that Blizz doesn't include one in StarEdit2)
So, I started an IDE called Moonlite in Visual Basic. I thought that syntax highlighting was a simple task of just colouring some damn text with a RichTextBox, but along the way I figured out how very wrong I was.
Since Microsoft was very stupid when creating their RichTextBox component, it is very inefficient (stores the whole RTF in a gigantic text string, not in different strings dependent on lines, reparses the RTF every time the user types something, draws inefficiently, etc.)
So I looked around for syntax highlighting components, but found only crappy ones. I started my own with the RichTextBox (I thought I could do a workaround on MS' failure) using regular expressions. However, after 3 months of hard work, I figured that MS' failure was unfixable. I made a bigger search around the net and found the ICSharpCode.TextEditor component.
It was very efficient, highlighted thousands of lines of codes in milliseconds, had line numbers, (very hard to get working) code folding and was all in all very good.
However, it wasn't good enough for me. (I wanted it to be capable of bookmarks + breakpoints), so I searched around EVEN MORE, found a pretty good syntax highlighter that used Win32 Native GDI+ rendering and coded on from there.
However, the code was a complete mess, unstructured, inefficient (not the rendering, but everything else), ugly (shitloads of try catch statements, commented out code, etc.)
I thought that making it better wouldn't take that long, but it took me 3 months. I was finally done, and then I thought: "nobody should go through all this when somebody could release a component and it could take them 5 minutes instead of 6 months" - I searched around AGAIN for components like mine that I created, but figured that the only ones that were on the same level were 500$ components, which is like robbing.
So, I started the Storm framework (my middle name is Storm) - it now consists of Storm.TextEditor, Storm.CodeCompletion, Storm.Win32, Storm.NotifyBars, Storm.TabControl, Storm.Plugins and Storm.Docking.
Yeah, that IS much code. In a month. Yay. You better enjoy this
But it's not finished yet. I just wanted to know what you thought about it, so here's some screenshots:
Storm.Docking enables the user to drag around windows in a Form and dock him where he likes.
Storm.Plugins allows complete and 100% extensibility! That window in the bottom of the screen is a plugin loaded from a separate .dll showing output from the Storm.Plugins .dll!
Storm.TabControl - a simple tab control. However, it is 100% owner drawn.
And finally Moonlite, the IDE. It only has the Storm.TextEditor implemented (and a Ribbon, I will not include that one in Storm), but as you can see it is fully usable. You can see that the TextEditor is able to split into more textviews, and actually 2 isn't the maximum textviews - it can split into 4!
Note: the syntax highlighting is a bit ugly, it was intended for cJass/Zinc + vJass.
PS: there's a little fuckup in the image, that Form image isn't there in reality.
Did I mention that this will be completely free and royalty-free? I think modern .net programmers deserves this.
Note: Storm is written in 100% C# and will be completely open source.
Also, I will finish my IDE when Storm is done - there's still a lot of stuff to be done, though (parsing, syntax trees, such stuff) - then I will release it for WC3 and then when SC2 comes out, I will release it for that, too.
Comments?
So, I started an IDE called Moonlite in Visual Basic. I thought that syntax highlighting was a simple task of just colouring some damn text with a RichTextBox, but along the way I figured out how very wrong I was.
Since Microsoft was very stupid when creating their RichTextBox component, it is very inefficient (stores the whole RTF in a gigantic text string, not in different strings dependent on lines, reparses the RTF every time the user types something, draws inefficiently, etc.)
So I looked around for syntax highlighting components, but found only crappy ones. I started my own with the RichTextBox (I thought I could do a workaround on MS' failure) using regular expressions. However, after 3 months of hard work, I figured that MS' failure was unfixable. I made a bigger search around the net and found the ICSharpCode.TextEditor component.
It was very efficient, highlighted thousands of lines of codes in milliseconds, had line numbers, (very hard to get working) code folding and was all in all very good.
However, it wasn't good enough for me. (I wanted it to be capable of bookmarks + breakpoints), so I searched around EVEN MORE, found a pretty good syntax highlighter that used Win32 Native GDI+ rendering and coded on from there.
However, the code was a complete mess, unstructured, inefficient (not the rendering, but everything else), ugly (shitloads of try catch statements, commented out code, etc.)
I thought that making it better wouldn't take that long, but it took me 3 months. I was finally done, and then I thought: "nobody should go through all this when somebody could release a component and it could take them 5 minutes instead of 6 months" - I searched around AGAIN for components like mine that I created, but figured that the only ones that were on the same level were 500$ components, which is like robbing.
So, I started the Storm framework (my middle name is Storm) - it now consists of Storm.TextEditor, Storm.CodeCompletion, Storm.Win32, Storm.NotifyBars, Storm.TabControl, Storm.Plugins and Storm.Docking.
Yeah, that IS much code. In a month. Yay. You better enjoy this
But it's not finished yet. I just wanted to know what you thought about it, so here's some screenshots:

Storm.Docking enables the user to drag around windows in a Form and dock him where he likes.

Storm.Plugins allows complete and 100% extensibility! That window in the bottom of the screen is a plugin loaded from a separate .dll showing output from the Storm.Plugins .dll!

Storm.TabControl - a simple tab control. However, it is 100% owner drawn.

And finally Moonlite, the IDE. It only has the Storm.TextEditor implemented (and a Ribbon, I will not include that one in Storm), but as you can see it is fully usable. You can see that the TextEditor is able to split into more textviews, and actually 2 isn't the maximum textviews - it can split into 4!
Note: the syntax highlighting is a bit ugly, it was intended for cJass/Zinc + vJass.
PS: there's a little fuckup in the image, that Form image isn't there in reality.
Did I mention that this will be completely free and royalty-free? I think modern .net programmers deserves this.
Note: Storm is written in 100% C# and will be completely open source.
Also, I will finish my IDE when Storm is done - there's still a lot of stuff to be done, though (parsing, syntax trees, such stuff) - then I will release it for WC3 and then when SC2 comes out, I will release it for that, too.
Comments?
Last edited: