Experiences using F# in VsVim

A few days ago while discussing VsVim with a coworker it occured to me that I’d been working on this project for 5 years now. It was a bit startling for me because it feels like just yesterday when I finally got permission to release it to the public. After reflecting for a few minutes I decided that I wanted to write a couple of posts on this project and how it shaped up over time.

Invalid Uses Of a Type

I joined a discussion recently about a new API being added to a type with well established semantics. The API seemed to violate the key invariants of the type and I was curious about the justifications. Of the various reasons given one in particular stood out to me as questionable:

Easy Motion for Visual Studio

Easy motion is a plugin for Sublime that allows for quick and simple keyboard navigation within a file 1. Just 3 key strokes can take you to any visible letter. No neeed for complex regexes or patterns, all you need to know is the letter that you want to navigate to.

  1. The Sublime plugin is itself a clone of a vim extension 

Releasing VsixUtil

A good portion of my free time, and not so free time, is devoted to Visual Studio extensions. In addition to actively developing them I’m always dogfooding my extensions and those of other developers. On any given day I probably update Visual Studio 3-5 times on various machines with new builds, proposed bug fixes, forks, etc …

Vim key maps don't have comments

One of the fun benefits of running VsVim is that I’m constantly exposed to the amazing ways that vim can be configured. Many bugs in VsVim have to deal with commands that show up in vimrc files. Users are quick to share these files to help in tracking down the bug. The amount of customization that goes into these files is quite daunting and a reminder of just how flexible an editor vim really is.