Visual Assist X is a code refactoring and code navigation add-in for Visual Studio. For C++ developers like myself this is the best productivity booster. I started to use Visual Assist with Visual C++ 6 and up to Visual Studio 2010 it constantly helps me write new code faster and understand existing code better. VAX has its own C++ parsing engine that comparing to built-in Visual Studio IntelliSense for C++ is faster, more accurate, handles complex codebase like Boost and supports C++/CLI.
Goto Implementation in VAX is a better alternative to Go To Definition/Go To Declaration in VS. Find References for functions and variables in VAX provides more context than Find All References in VS:
VAX provides function and variable name autocompletion and even suggestions for known contexts. For example, when you are writing an assignment to a variable or passing a parameter to a function, required variable type is known and VAX offers local variables with matched type. When assigning to an enum variable VAX offers enum values. Configurable VA snippets provide templates for constructs like switch cases, for loops and also let you wrap selected code to try-catch and other blocks.
The Open File in Solution dialog lets you quickly type substring of a file name and open it not taking your hands off the keyboard:
The similar Find Symbol dialog lets you navigate to a constant, variable, function or class by its name:
The Find Previous by Context and Find Next by Context commands let you navigate to the previous/next variable or function usage in the current file. The Open Corresponding File command lets you switch between corresponding h and cpp files. The extended Paste command keeps clipboard history and lets you store several code fragments for copy and paste operations. Spelling errors and mistyped symbols are underlined as-you-type.
VAX provides enhanced syntax coloring for classes/typedefs, variables, macros and methods:
VAX supports several refactorings like change signature, encapsulate field, extract method etc. The two refactorings I use all the time are Add Include and Rename: