If you're using Visual Studio, chances are you've heard of Visual Assist. For the three of you who haven't, it's a plug-in for Visual Studio (.NET or 6.0) intended to improve the everyday tasks of C++ programming.
Some of its features improve on things Visual Studio already supposedly does, like syntax coloring. Visual Assist takes it a step further and uses different colors for classes, variables, preprocessor macros, and class member functions. You can print the source code using those colors, or copy it to the clipboard in full color.
One of my favorite features is the ability to switch between an .H file and its corresponding .CPP file. Keeping the class declaration and the implementation in synch was never so easy; press a key and you're there. Visual Assist integrates very well with Visual Studio, allowing you to map any of its commands to keyboard shortcuts or toolbar buttons.
I often find myself searching for a specific function within a file, but I might not remember the exact name of that function. No problem, Visual Assist lets me bring up a list of all the functions in the current file, and with a click it jumps to that location. You can even sort the functions alphabetically.
Another indispensable feature is the ability to jump to the declaration or definition of any symbol under the cursor. Visual Studio claims to do that, but it often fails miserably, especially when dealing with symbols outside the current project. Visual Assist does a much better job, and only on rare occasions won't be able to find a symbol. They even finally implemented good namespace support. Visual Assist can also display the full declaration of functions under your cursor, including the type of all the parameters. It also provides very effective autocompletion for any symbol while you are typing.
Using a new and improved parser, the Visual Assist Add-ins enrich the IntelliSense of the standard editing environments.
As far as I'm concerned, the rest of the features are pure gravy: column delimiter marking, current scope display, auto insertion of parentheses and brackets, and syntax error underlining, to name a few. You can also turn off any feature you don't need.
So, what's not to like? My biggest complaint is the apparently rushed way in which new versions are released. Sometimes it seems that every week there is a new release coming out, and sometimes major bugs slip through. I spent a whole month getting lock-ups and crashes that I was blaming on Visual Studio, until I upgraded to the latest release of Visual Assist and it fixed all my problems. Needless to say, I was not particularly happy.
Installation wasn't totally smooth either. Maybe it's because I was upgrading from VC++ 6.0 to .NET, but at one point I had to fully uninstall Visual Assist and install it from scratch. Not a big deal, but I lost all my custom settings in the process. Some people have also reported incompatibility problems with other plug-ins. Whether that's a problem with Visual Assist or with the other plug-ins, I don't know, but you should definitely get the trial version and make sure you don't have any problems.
Their upgrade policy isn't particularly friendly. You have to pay an upgrade fee for each major version released, which is understandable, but the versions for .NET ($49 upgrade) and VC++ 6.0 ($29 upgrade) are considered two different products, so you'll be paying twice if you need to upgrade both versions. At least their pricing scheme is reasonable ($79 for either version new or $119 for a bundle).
All in all, Visual Assist is an indispensable aid for any C++ programmer using Visual Studio. But be warned: you'll feel withdrawal symptoms if you ever have to program without it.
Whole Tomato Software