Correctly inserting a new line in a VSIX

To split a line in an ITextBuffer the developer simply needs to insert a recognized new line text into the existing line. Many VSIX extensions just default to Environment.NewLine for this task

Rethinking IEnumerable

The .Net enumeration story based on IEnumerable<T> is a very succesful pattern. It’s the backbone of many different language and framework features including foreach, LINQ, iterators, etc … And yet when switching between C++ and C# and I’m often frustrated by its inefficiencs and quirks:

Testing for VSIX Memory Leaks

A common bug in VSIX projects is to hold onto an ITextView instance long after it has been closed. This is problematic because it ends up preventing a large number of resources from being collected including the ITextBuffer, language service elements, WPF items, other extension objects, etc … In short it is a substantial memory leak.

Deploying a VSIX Project to AppVeyor

As usual Scott Hanselman wrote a blog post that got me super excited about a new piece of software: AppVeyor. A continuous integration system which had built in integration with github. I couldn’t wait to try it out on a few projects.

We should ban the phrase "thread safe"

There few are phrases in programming that make me shudder more than