The first thing you'll want to do is get your IDE self-hosted. The best way to figure out what the most important thing to work on is by dogfooding. I also suggest that you use the most basic tools to bootstrap yourself. This way you are more likely to use your IDE rather than the one you usually do.
I've chosen to use notepad with a goal of switching to my IDE ASAP.
So it seems like the first step is to get a form to show up. Obviously, this is rather trivial:
internal static class Program
private static void Main()
internal class MainForm : Form
I'll need something to type into, a
should do for now. I put all the code to add it to the form in
and set it's
. Next, I need to be able to open and save files. Instead of the traditional File, Edit, ..., Help menus I decided to just have the three items right there as root menus: Save, Open, and New. Some things I ran into: I had to add the
attribute to the
method as I wanted to use the built-in
control does not have carriage returns ("\r"), so I had to do a
on new lines ("\n") with
when writing the file; and finally I had to use the
encoding option, so that © et al. will get displayed on the form and saved to the file properly. With that I have a self-hosted IDE that I can begin using.