Post navigation

The Un-Improvements to “Find All References” in Visual Studio 2010

A November 2009 post on the Visual C++ Team Blog by Raman Sharma delved into the improvements Visual Studio 2010 was purported to have made to the “Find All References” feature of Visual Studio. This feature is a must-have for any developer in almost any language. As a project grows in size and complexity, it becomes a real chore to remember and locate exactly where a particular variable was defined – which is something that’s quite useful to know.

According to the VC++ blog post, VS2010 now uses a “speed-mode” by default to locate these references. It’s a bit less accurate in that it generates a lot of false positives, searching by name rather than by usage, but that this reduced accuracy comes with greater speed. And the option remains to further filter out results by having the compiler and the intellisense databases resolve the actual results and determine whether or not they indeed reference the search term.

Except that’s the way it’s supposed to work. In truth, that’s not what happens:

1) Visual Studio 2010’s “Speed Mode” of Find All References is slower than it was in Visual Studio 2005.

2) Visual Studio 2010’s “Speed Mode” not only generates extraneous false positives, it also fails to show items that do match the search term.

On any project of considerable size, “Find All References” will cause a hangof the Visual Studio 2010 user interface for up to a minute as it does nothing more than plain-text search for the selected variable or function. It blocks the main user thread, it hangs the UI, and it takes forever. Much longer than Visual Studio 2005/2008 did with its more accurate compiler-based variable references search.

And as for point 2, the time-lapse screenshot below (to show both the selection, the menu, and the resulting dialog) should speak louder and clearer than a thousand words.

Unfortunately, Visual Studio 2010 seems to be exemplifying the ongoing trend at Microsoft of slowly giving less and less attention to C++ developers as they continue to push .NET (now at version 4.0 and growing strongly) at the cost of everything else… while still refusing to embrace the .NET platform for their own technologies, leaving their once-content developer-base fighting against their own IDEs for life.

This is the first of several posts about Visual Studio 2010, it’s advantages, and its shortcomings. We love Visual Studio and despite everything else, its still the best IDE out there and a damn good one at that. But some things just need to be said in hopes that they will be addressed at some point in the future.

Matt, I’m referring to the exposed APIs for developers to use. When you’re talking about the Ribbon UI, the Windows API, the new Vista/7 features, shell integration *even for newly-implemented stuff* and so on and so forth, there are no native .NET APIs to do so.

Every artist needs tools that aid him, so does every programmer. That is the reason why I am rather disappointed by this un-improvement, as this is something I personally use a lot when debugging my programs. Wish they would improve this in an update.