C/C++ Directories

The Projects branch of the Visual Assist X options dialog is pertinent only to C/C++ developers. The C/C++ Directories node in the branch tells Visual Assist X where to find headers included by your C/C++ code, and which headers it should reparse immediately when modified.

Visual Assist X extracts symbol definitions from headers included by your code. The software does not ship with a pre-built database of symbols.

optionsDirectories.gif

For most users, the default values in the C/C++ Directories node are correct. The values in the node are taken from IDE and project settings, and are displayed read-only.

Directories from the IDE that apply to all of your projects are considered stable. Changes to your IDE settings and parsing of headers within these directories are done after you install Visual Assist X, when you press Rebuild on the Performance node of our options dialog, and once-a-week thereafter.

directoriesStableDefault.gif

Directories from settings associated with individual projects, i.e. project settings, are considered dynamic. Headers within these directories are parsed each time you open a project, and immediately after modification. These directories do not appear in the C/C++ Directories node since, by default, they change per project.

directoriesOtherDefault.gif

Locating Headers

Proper setup of the C/C++ Directories node is essential for proper operation of Visual Assist X. Incorrect setup causes Visual Assist X to find outdated or wrong versions of headers, no headers at all, or not recognize modifications fast enough.

Visual Assist X does not necessarily find headers in the directories searched during a build. The complete path of directories for a build is determined only when a build begins, not during edit when Visual Assist X is active.

You know settings are incorrect if improper paths appear in the Definition field when your caret is inside a #include statement, if an excessive number of definitions are unknown, or if modifications to headers are not recognized immediately. If any of these problems occur, you must correct settings in your IDE, or switch to custom settings in the C/C++ Directories node of the Visual Assist X options dialog. You must restart your IDE after a change in either case.

Default Directories

Visual Assist X builds default paths of directories when you start your IDE. Values are extracted from IDE settings, environment variables and project settings. Directories of headers listed in IDE settings common to all projects are considered stable; directories of headers associated with projects are assumed to change more frequently.

For Microsoft Visual Studio .NET users, stable include files listed in the C/C++ Directories node are those listed in Tools|Options|Projects|VC++ Directories.

directoriesIDE.gif

Other include files, i.e. those that change frequently, are those listed in Project|Properties|Configuration Properties|C/C++|General.

directoriesOther.gif

While your IDE is active and a project is open, changes to the IDE settings are detected after you save your project if Watch for externally modified files is enabled in the Visual Assist X options dialog. If you use property sheets to specify directories in Visual Studio 2005, you must save the sheets before changes are detected. (Saving the project is insufficient.)

Custom Directories

For some users, default directories are not sufficient. This occurs typically when settings in your IDE are not complete, or when headers associated to one or more projects are listed in project settings. In such cases, you may specify a custom set of directories in which Visual Assist X should search for your headers.

Users who specify custom directories typically:
  • Develop software for multiple platforms in which case IDE settings can change often,
  • Use a Microsoft IDE for editing non-Microsoft projects so IDE settings are not set at all,
  • Have stable directories, e.g. BOOST, listed in Project|Settings, (Headers located using stable directories are parsed less often and yield better performance.)
  • Configure IDE settings improperly.
Create custom directories by changing platform to Custom. The directory list is no longer read-only. The initial values for Custom are the directories in use currently. If a project is open, the initial values include the directories in the project settings.

directoriesPlatformCustom.gif

Modify the list using the toolbar in the dialog. The icons to copy and paste are useful if you must list numerous directories.

optionsDirectoriesToolbar.gif

List only the directories a compiler would need to locate headers, e.g. C:\BOOST. Do not list subdirectories.

You can create only one set of custom directories. You can switch between custom and non-custom directories without losing your settings.

Headers are found by searching directories in the order you specify.

Stable versus Other Directories

When creating custom lists, place directories of headers in either the Stable or Other list.

directoriesShow.gif

Stable include files rarely change. They are parsed infrequenly and definitions are stored in a read-only, static database for fast lookup and global access. Use the Rebuild button on the Performance node of the Visual Assist X options dialog to make Visual Assist X recognize modifications to these headers.

Headers in Other include files are parsed each time you open a project, or open a source file that references the headers. Visual Assist X see changes to definitions in these headers immediately.

Directories specified in IDE settings associated with your projects are included by default in Other include files, even when building custom lists. Do not include them manually.

directoriesOther.gif

Support for Multiple Platforms

Developers creating software for multiple platforms typically have headers for each platform supported. You must tell Visual Assist X the platform whose code you are editing at any one time. Visual Assist X searches the directories appropriate for the platform and displays definitions you expect.

directoriesPlatform.gif

Visual Assist X stores a default set of directories for each platform. The values are extracted from IDE settings and from your environment.

Building for a specific platform does not change the platform for which Visual Assist X assumes you are editing. If you need definitions for a different platform, you must change the platform setting C/C++ Directories node and restart your IDE.

Locating Implementations

Visual Assist X searches for implementations when you press the Goto button. By default, Visual Assist X searches for implementations in all source files in your projects, and in source files found using IDE settings.

directoriesSources.gif

When Platform is Custom, specify additional sources in which Visual Assist X should search.

directoriesShowSourceFiles.gif

You must restart your IDE if you modify any of the values in the C/C++ Directories node.