# C/C++ Project properties: Preprocessor Include Paths, Macros, etc. - Providers tab

Include paths and preprocessor macros for C/C++ indexer and other Language Settings are supplied by Language Settings Providers as part of Scanner Discovery. Language Settings Providers can be set up and configured for the selected configuration in the "Providers" tab.

"Providers" tab is only shown in properties of a project, not in properties of a file or a folder.

Providers tab controls
Group | Description
--- | ---
Configuration | A set of properties for the project. Not required for debugging.
Manage Configurations... | A dialog to create or manage configurations. Not required for debugging.
Language Setting Providers list | Lists all of the providers available for the current configuration. Select the providers to assign to the configuration.
Clear Entries | Clears all entries of the selected provider. This operation takes effect after pressing "Apply" or "OK". Normally this will trigger a rerun if the provider supplies built-in compiler settings. Build output parsers will regain language settings after build while parsing new build output. This operation might be unavailable if the provider does not have any language settings. Some providers may not have the capability to clear. On this property page, this operation is applicable only to non-shared providers.
Reset | Resets options of the selected provider to default values. This operation also clears the provider entries. The button can be enabled if some options in "Language Settings Provider Options" panel were changed. In this dialog, this operation is applicable only to non-shared providers.
Move Up | Moves the selected provider higher in the list.
Move Down | Moves the selected provider lower in the list.

A user can define some options for configuration providers (or "non-shared") on this property page. Note that providers can be either shared or defined per configuration. Options of global (or "shared") providers can be configured on C/C++ Preferences: Scanner Discovery.

There are 2 specific options that are added for non-shared providers defined per configuration. They are described in the table below.

Discovery tab
Group | Description
--- | ---
Use global provider shared between projects | Providers can be global or belong to a configuration. Global providers share their entries between all configurations which refer to them.
Store entries in project settings folder | Providers can persist their entries in workspace or under project folder. Storing entries under project when approprate can make sharing with the other team members easier.

The rest of the options is described in C/C++ Preferences: Scanner Discovery, under Language Settings Providers Options.

Scanner Discovery
C/C++ Indexer

Setting up include paths and macros for C/C++ indexer

C/C++ Project properties: Preprocessor Include Paths, Macros, etc. - Entries tab