Click here to Skip to main content
15,434,647 members
Articles / Programming Languages / Visual Basic
Posted 30 Mar 2006


16 bookmarked

Visual Assist X: The Indispensable IDE Add-In

30 Mar 20068 min read
Read on to learn the real reason my co-workers virtually dragged me to our purchasing agent to get my very own license for Visual Assist X!

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

This is a showcase review for our sponsors at CodeProject. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.


by Kevin Sikes

When I started my current job as a senior product developer, one of the first things my new co-workers asked as I met each of them was, "Have you installed Visual Assist X yet?" After the fourth or fifth developer hit me up, I figured they were all involved in a network marketing scheme and soon I too would be recruiting friends and family to Buy Software from Themselves to Achieve Financial Independence. Why else would everyone be so adamant about installing an IDE plug-in?

Read on to learn the real reason my co-workers virtually dragged me to our purchasing agent to get my very own license for Visual Assist X!

So Many Features; So Little Time

Visual Assist X is the flagship product of Whole Tomato Software. The software is an impressive toolbox of Intellisense upgrades, syntax highlighting, and other cool extensions to the Microsoft line of IDEs, from Visual C++ 6.0 through Visual Studio 2005. Visual Assist X supports C#, C++ and VB.NET.

If I reviewed every one of the 40 features in Visual Assist X, you'd be reading for an hour, so I'll just give you the goodies in this article.

Enhanced Syntax Coloring

To compare the look and feel of Visual Studio with and without Visual Assist X, consider this screen shot from Visual Studio .NET 2003:

Image 1

Now look at the same snippet of code after installing Visual Assist X:

Image 2

As you can tell from from the screen shots, Visual Assist X offers a more visually stimulating look at your code. Visual Assist X allows you to work more efficiently by distinguishing functions/methods (brown), variables (gray), and types (blue). Of particular interest to me is the ability to color macros (purple), which the IDE still can't do as of Visual Studio 2005.

You can even apply the syntax coloring to tooltips!

Image 3

Since the authors of Visual Assist X understand different developers work in different ways, they make the syntax coloring highly customizable. You pick the colors that make sense to you, and choose what you want and don't want colored.


What's useful to one developer might simply be noise to another, so Visual Assist X allows you to enable only those features you find helpful. For instance, my code screen shots also show local symbols in bold and "stable symbols" in italics, but I prefer not to use these features and have not enabled them on my production machine.

Goto Definition

This was the feature that got me hooked on Visual Assist X. Place the caret on a symbol and press Alt+G, or click the Image 5 button. You are taken to the definition of the variable or type, or the prototype or implementation of the method. In the latter case, Visual Assist X gives you the choice of the header or implementation file.


This feature does not rely on the browser files generated by Visual Studio, so you don't have to compile your code first. Instead, Visual Assist X parses your code and library/SDK headers in the background. This process is throttled so it doesn't kill the IDE's performance.

Visual Assist X even knows the value of C/C++ macros and where they're defined, and will display the value in a tooltip and allow you to go to the definition of the macro. In my opinion, this alone was worth the price of the software!


Suggestion Lists

Visual Assist X offers suggestions to complete partial symbol names as you type. This incredible feature allows you to concentrate on your development task rather than the drudgery of remembering hundreds of variable and method names. As you type, Visual Assist X matches your keystrokes against symbols that are currently in scope, and displays a list so you can accept a suggestion. The more characters you type, the more refined the suggestions become:

Image 8 Image 9

Enhanced Member Listboxes

Here's another feature you'll wonder how you lived without. After pressing "." or "->" following a class instance, Visual Assist X presents you with a powerful member listbox. You can configure Visual Assist X to display non-inherited methods in bold and to place them first in the list, giving you quick access to the class members that are most needed. Visual Assist X also allows you to filter the list on public, private, and protected methods, variables, operators, constants, and enums.

Image 10

Shorthand and Acronyms

If you remember part of a method's name, you can utilize Shorthand to type as much as you know, and Visual Assist X filters the list based on the partial text you've entered. In the following example, the list is reduced to all members containing "fill."

Image 11

Acronyms save typing by matching your keystrokes to members that may have other characters interspersed. For instance, a variable named nSomeVeryLongIntegerName may be accessed by typing the characters n-s-v-l-i-n one at a time until a match is found. In my example, I find the entry I want with "m_bnu."

Image 12

Shorthand and Acronyms work with both suggestion lists and enhanced member listboxes.

Open File in Workspace (OFIW)

Another area where Visual Assist X is extremely helpful is when working with many source files, whether in a single project or distributed among multiple projects in a large solution. Although Visual Studio allows you to be organized by grouping your files together under logical folders in the Solution Explorer, this makes it hard to find a particular file when you don't know to which group it belongs.

With Visual Assist X, quickly locate a file residing under any project in your solution by opening the OFIW dialog and entering a portion of the file name. In my example, I've found all headers containing "util."

Image 13

Find Symbol in Workspace (FSIW)

In the same vein as OFIW, the Find Symbol in Workspace dialog allows you to enter part of a symbol name, whether it be a variable, method, macro, or constant, and the list is populated with matching symbols defined anywhere within the solution. Double-click a row to be taken to that symbol definition.

Image 14

I can't even begin to tell you how much more productive this is than Find in Files, and you can find symbols anywhere on your include path by clearing the "Show only symbols defined in current workspace" check box. For instance, uncheck the box and type SendMessage to find it in the Windows headers.


I could write a book about this feature alone. Basically, Autotext is a set of templates used to stamp out common code constructs. The templates may contain literal strings or placeholders that are replaced with predefined Visual Assist X variables, user input, environment variables, the current text selection, or clipboard contents. Consider this example, where the key shortcut is "//-" and the code is "// $end$ [$MONTH$/$DAY$/$YEAR$ %USERNAME%]":

Image 15

You can guess what's going on here by the intuitive Autotext language.

Visual Assist X watches for keystrokes that match shortcuts you've set up, and offers you a suggestion list upon a match. If you accept the suggestion, the replaceable parameters are stuffed in, and the cursor is placed at the $end$ tag for further typing. You may also insert Autotext without keying in a shortcut combination.

Autotext may be used to spit out a few characters or to create an entire application framework. You're in control with the easy-to-use Autotext editor and plenty of sample templates.

Other Timesavers

Here are just a few of my other favorite features:

  • Quickly switch between source and corresponding header files with a single keystroke or mouse click.
  • Find previous or next by context. For instance, if you have a hundred methods in a file and each of them contains a local variable named nCount, restrict your search for nCount to the current method (or even within an if or while loop). Visual Assist X ignores the instances of nCount that do not belong to the current scope.
  • Automatically convert . to -> when you erroneously use the dot operator with a pointer.
  • Automatically rePaIR CAse of mistyped symbols.
  • Quickly get information for string resources. Look at this handy tooltip:

    Image 16

I'm upgrading to Visual Studio 2005, so I don't need Visual Assist X, right?

Wrong. Despite the welcome improvements to Intellisense in VS 2005, there are still features that only Visual Assist X brings to the table, such as better syntax coloring and improved member listboxes. Basically, Visual Assist X works in conjunction with features of VS 2005.

For instance, you can take advantage of VS 2005's new ability to parse conditionally compiled code while maintaining Visual Assist X enhanced listboxes. In the first example below, a macro that determines the presence of additional members in a class is defined. The VS 2005 Intellisense parser detects this macro and grays out the #ifndef...#endif blocks.

In the second example, the macro has been commented out; VS 2005 has restored the source code, and Visual Assist X shows the additional members, with the ability to apply a filter in the listbox using the filtering toolbar. In both examples, enhanced syntax coloring is provided by Visual Assist X.

Image 17Image 18

The ability to parse symbols for conditionally compiled code in VS 2005 comes at a cost, since the code is essentially being compiled constantly as you type. For many developers who work with large solutions, this has made VS 2005 unusable.

Some of these developers have disabled VS 2005 Intellisense altogether and employ Visual Assist X as their sole symbol parser to get back on their feet with VS 2005.


I promised I'd tell you why my co-workers insisted I get my own license for Visual Assist X. It's simple, really. They were loath to slog through a code review or type so much as an if statement on my machine without the advantages that Visual Assist X brings to Visual Studio. Yeah, it's that good.

Try Visual Assist X free for 30 days, and I guarantee you'll gladly pony up the modest purchase price for this excellent tool.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Written By
United States United States
Whole Tomato Software, Inc. was founded in 1997 with a mission to improve developer productivity. We make progress on our goal by creating simple yet powerful improvements to existing development environments.

Since its founding, the company has improved every Microsoft IDE since Microsoft Visual C++ 5.0. In that early IDE, the company introduced features that form the foundation of what is now called IntelliSense.
This is a Organisation

2 members

Comments and Discussions

Questionwho to add a c MACRO which is not defined in source code? Pin
wxwok17-Mar-08 17:28
Memberwxwok17-Mar-08 17:28 
Generalvoid main Pin
Tydia-kun2-Mar-08 8:40
MemberTydia-kun2-Mar-08 8:40 
GeneralI tried for 3 weeks, and did not like it Pin
iveccc2-Oct-06 20:48
Memberiveccc2-Oct-06 20:48 
GeneralReserverd Auto Text Word for Function Pin
Sarath C21-Sep-06 21:41
MemberSarath C21-Sep-06 21:41 
GeneralRe: Reserverd Auto Text Word for Function Pin
Jeff Straathof22-Sep-06 10:54
MemberJeff Straathof22-Sep-06 10:54 
AnswerRe: Reserverd Auto Text Word for Function Pin
kevinsikes6-Oct-06 7:04
Memberkevinsikes6-Oct-06 7:04 
GeneralRe: Reserverd Auto Text Word for Function Pin
Sarath C7-Oct-06 0:17
MemberSarath C7-Oct-06 0:17 
QuestionVisual Studio 2005 [modified] Pin
Bartosz Wójcik19-Sep-06 7:23
MemberBartosz Wójcik19-Sep-06 7:23 
GeneralLineNumber feature for VC6.0 supported! Pin
David Howe26-Jul-06 15:13
MemberDavid Howe26-Jul-06 15:13 
Generalvery useful Pin
Fred Ackers23-Jul-06 5:06
MemberFred Ackers23-Jul-06 5:06 
Generallooking for a spellcheck feature..... Pin
Are Jay23-Jul-06 3:47
MemberAre Jay23-Jul-06 3:47 
GeneralRe: looking for a spellcheck feature..... Pin
Jeff Straathof23-Jul-06 22:19
MemberJeff Straathof23-Jul-06 22:19 
Generalgood job!thanks:) Pin
sun.shuo@aliyun.com14-Jul-06 19:56
Membersun.shuo@aliyun.com14-Jul-06 19:56 
GeneralPlain old VS is fine for me... Pin
Cyril Gupta5-Apr-06 5:57
MemberCyril Gupta5-Apr-06 5:57 
GeneralRe: Plain old VS is fine for me... Pin
Rainer Schuster6-Apr-06 20:49
MemberRainer Schuster6-Apr-06 20:49 
GeneralRe: Plain old VS is fine for me... Pin
Tim Stubbs18-May-06 3:39
MemberTim Stubbs18-May-06 3:39 
GeneralNice, but... Pin
__magic__4-Apr-06 14:03
Member__magic__4-Apr-06 14:03 
GeneralRe: Nice, but... Pin
kevinsikes13-Apr-06 9:09
Memberkevinsikes13-Apr-06 9:09 
GeneralRe: Nice, but... Pin
__magic__13-Apr-06 14:47
Member__magic__13-Apr-06 14:47 
GeneralVisual Assist rocks! Pin
Nish Nishant4-Apr-06 2:08
sitebuilderNish Nishant4-Apr-06 2:08 
Totally rocks! I've used their versions (up to the one that supports 2003) and not only has it saved me a lot of effort, but it's made the whole C++ coding experience a lot less tedious Smile | :)

I I think I should take look at their 2005 version too now!

Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
The Ultimate Grid - The #1 MFC grid out there!

Generalalso compare to CodeSmart ... Pin
BillWoodruff4-Apr-06 1:37
mveBillWoodruff4-Apr-06 1:37 
GeneralIt's a good tool but.. Pin
Robin3-Apr-06 21:57
MemberRobin3-Apr-06 21:57 
GeneralRe: It's a good tool but.. Pin
kevinsikes13-Apr-06 8:59
Memberkevinsikes13-Apr-06 8:59 
GeneralRe: It's a good tool but.. Pin
Robin13-Apr-06 9:49
MemberRobin13-Apr-06 9:49 
GeneralRe: It's a good tool but.. Pin
Walveranta4-May-06 9:10
MemberWalveranta4-May-06 9:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.