After years of faithful service, Resharper bit me hard in the bum last week. I recently started a new contract in London and turns out I am one of only two people on the whole dev team that use Resharper. In fact, the two of us basically get spurned for our beliefs, and are constantly defending ourselves. I know that Resharper can be a more of a philosophy than a simple VS plugin so normally I just smile and let the others believe they are right. I'll just win them over with my clean, readable, some would say superior code, I thought to myself.
That was until I found myself doing some maintenance on some classes in a rather large code base. My habit when maintaining my code is to first start with a bit of a cleanup (you can tell maintenance of other people's code is not my forte), just a quick 'optimize usings', maybe a 'remove redundant this. qualifier'. After I cleaned things up a bit, did whatever else it was I needed to do to the class, I did a check-in, and feeling rather proud of my work, toddled off home.
However little did I know that my simple 'optimize usings' had gone and broke the build. As I slept my happy Resharper dreams, the build server was churning away, and breaking... It turns out there was a conditional compilation block that used 'System.Threading'. Resharper thought 'System.Threading' wasn't used and blindly obliterated the line.
The woe that befell me that morning...
Not exactly the best way to leave a good first impression, not to mention my failed attempts to convince the team that Resharper was actually a Good Thing. Our team has a strict, 'Break the build and buy the team a round of beers at the pub' rule. So after suffering my punishment, we got in touch with Jetbrains about this behaviour. Their response was that it was a known bug (I think they actually said 'limitation') and that they had no plans to fix it on their current roadmap.
So watch out Resharper fans. I know we are on the true path, but we must still watch to ensure our zealotry doesn't come back and bite us in the ass.