Table of content

Definition Field

Click on any symbol and see its definition in the VA Navigation Bar. The Definition field works in concert with the Context field to give you more detailed information for a symbol.

When not on a symbol, the Context field contains an orange arrow and identifies your current scope. The Definition field contains details of the scope. For example, when you are within a for statement, the Definition field contains the for condition.

When at global scope, the Definition field contains the full filename with path of the current file.

When the caret is on a symbol with multiple definitions, the dropdown arrow at the right of the Definition field opens a list of all definitions of the symbol. The list is informational only; selecting in the list causes no action.

Clicking on an unknown symbol makes the Definition field go blank.


Icons in the Definition field describe symbols. The icons are identical to those in the Class View, and include the following:

Protected Classes
Private Classes
Protected Structs
Private Structs
Public methods and functions
Protected methods 
Private methods 
Public members and variables 
Protected members 
Private members 
Preprocessor macros

C/C++ Header Files

When the caret is on a #include statement in C/C++, the Context contains the base name of the header file and the Definition field contains the full path of the header file. The path you see is the one Visual Assist uses to find the header file, which is typically the same one used by the compiler.

If Visual Assist finds the incorrect header file, you should correct the problem by updating your IDE settings or the Directories node in the options dialog of Visual Assist.

Evaluate All Macros

For C/C++ users, definitions reflect moderate evaluation of typedefs and preprocessor macros during parsing of definitions. In this way, Visual Assist displays definitions in meaningful terms; definitions are not evaluated to base types alone. For example, the Definition field indicates myFn() returns a MYTYPE, not an int, despite the fact MYTYPE is a typedef for a int.

By default, Visual Assist evaluates only preprocessor macros that take arguments, i.e. those defined with (). For example, the Definition field shows foo is a MYINT, not a long.

You can force Visual Assist to be more aggressive in evaluating preprocessor macros by modifying the registry. When in this mode, the Definition field often shows base types.

Copying a Definition

Right+Click in the Definition field to copy its content.

Top or Bottom

Specify the location of the VA Navigation Bar in the options dialog. Disable the feature, or eliminate the IDE's Navigation Bar or Wizard Bar, to conserve space in your source windows.

Registry Settings

Value Name Meaning
EnhanceMacroParsing Parse nested preprocessor macros