The editor component in VS2010 was completely new. Plug-ins that need to get to the ugly, deep bowels of Visual Studio, such as ViEmu and Codekana, needed rewriting. We rewrote ViEmu, which was a large project. We got started rewriting Codekana, actually with a much more ambitious goal rather than just a straight port. New, user-customizable parsing and display technology, this could turn Codekana into a really powerful and popular product.
After a few months of work, it became clear the goal was too ambitious. It would take years, not months. Given our current status, it had to be postponed, to a moment where more resources are available.
We evaluated doing a simple, straight port instead, but it didn’t make much sense. Codekana wasn’t a stellar selling product before VS2010, and there was no reason to think this would change radically without a radical redesign. A straight port was still a large project, and it just didn’t make business sense.
But there was an existing customer base, and I didn’t want to leave them stranded.
For the past months, I haven’t been able to give Codekana the attention it needs and deserves. The most salient issue is that we haven’t been able to release a port to VS2010. After giving it a lot of thought, I decided that the right thing to do is to make it open source, so that anyone can help out, and so that existing users can be supported or can even self-support themselves. This is as much an experiment as anything else.
As the first step in going open source, I have removed the license-key checks, released a new version (1.5.5), and removed the purchase options from the web site. So now, Codekana is effectively free to use.
In the coming weeks, I hope to clean up and tidy up the codebase a bit, chose the license, and upload the source code somewhere. I will be grateful for any suggestions and advice regarding the technicalities of this: source code control, public repository, collaboaration infrastructure, etc… I usually use Subversion, but I will start a new repository from scratch, and I’m happy to use something else if it will make things easier for everyone.
I will be more than happy to help out those interested with a tour of the codebase, answering questions about it, etc… Codekana includes a multithreaded asynchronous job system (used for background parsing), an incremental C/C++/C# parser, complex text-changeset processing logic, custom drawing, and deep interaction with VS. It can definitely be unwieldy at times.
So open source it was.
I’ll announce the availability of the source code here, and meanwhile, let me know what you think!