Project Settings

The Project Settings command allows you to set various options that govern the current project. If no project is currently open, then the Project Settings command allows you to set the default options inherited by subsequently created new projects.

The Project Settings are saved with the project data file, in the project directory. These settings are independent of the configuration file.

Configuration Options

This specifies what configuration is used when the project is opened. The configuration is what holds most of your user customizations, such as key bindings.

Project has its own configuration file

This means the project has its own private configuration file, which is stored in the project directory. The name of the project configuration file is <project name>.CF3.

Shares global configuration file

The project shares the global configuration with other projects. The global configuration file is stored in the Source Insight program directory, and it is named Global.cf3.

Conditional Parsing

This controls the settings of condition compilation values.


Click to edit the conditions defined that are specific to the current project only. The conditions are only in effect when the current project is open, and only for files that belong to the project. Another quick way to edit the conditions is to use the Edit Condition command.

The Source Directory

The Project Source Directory

This should contain the path of the main location of your source files. You might consider this the “home” directory of the project. When Source Insight displays file names, it will show them relative to this directory. If you leave this text box blank, then Source Insight will use the project data directory where you created the main project file, with the .PR extension.

Letting you specify a different project source directory is useful if you want the project data files kept in a separate directory from the source files. The project data files are stored where you specified the .PR file, but the source files can be somewhere else. For example, you could create a project stored locally on your workstation, and add files from a remote network drive to the project. The file names will not contain extra path information if you specify the network drive path to the source files as the project source directory.

This feature is helpful when you are not allowed, or unable, to create project data files in the same directory as the source files. Some project administrators will allow you read-only access to the source code share point, and do not want you to put any Source Insight files there.

You can change the project source directory setting in the Project Settings dialog at any time after the project is created.

The project source directory path is stored with the project data in a relative format. The path is relative to the directory with the .PR file. That allows projects that were created on one machine to be opened remotely from another without confusing the logical drives. It also allows copying whole project directory trees to new locations.

Some Custom Command string meta-character substitutions are also affected by this path setting. The %j (project source directory) and %v (project source directory volume letter) refer to this path value, and not where the .PR file is.

Symbol Database Options

These options affect what is stored in the project’s symbol database. You should choose these options before you add a bunch of files to your project. If you change these options after the project is already built, then the project will need to be rebuilt. Source Insight will rebuild it for you.

Store function-local symbols in the database

This will cause local variables, declared inside function bodies, to be stored in the symbol database. This will increase the database size, but syntax formatting for those variables will appear right away when you open the files.

Quick browsing for member names

If enabled, you only need to type the structure and class member names in order to perform partial matches on their names. However, the symbol index size and memory usage can increase by a factor of two or more. This option is recommended if you are using an object-oriented language primarily, so that you can find member functions and variables without having to type in the class name too.

Quick browsing for symbol syllables

If enabled, you only need to type one or two syllables of symbol names in order to perform partial matching on their names. However, the symbol index size and memory usage can increase by a factor of four or more. By indexing syllables, you can use syllable matching to quickly find symbols, even if you don’t know what letters the symbol names begin with.

This option is not recommended for external common projects that you intend to only refer to via the project symbol path. In that case, syllable indexing offers no benefit and just uses extra space.

This option is not recommended if your project is very large, and you have a small amount of system RAM and/or swap space on your disk.

In this section: