Share via


Options, Text Editor, C/C++, Advanced

Lets you change the behavior related to Intellisense and the browsing database when you are programming in C or C++.

To access this page, in the Options dialog box, in the left pane, expand Text Editor, expand C/C++, and then click Advanced.

Note

Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. The Visual Studio edition that you have and the settings that you use determine these elements. For more information, see Customizing Settings.

Browsing/Navigation

You should never have to disable these options except possibly in rare cases where a solution is so large that the database activity consumes an unacceptable amount of system resources.

  • Disable Database
    This option completely disables any use of the browsing database (SDF). The database will not be created or opened. It disables all of the other Browsing/Navigation options and it disables all IntelliSense features except for #include Auto Complete.

  • Disable Database Updates
    The database will be opened read-only and no updates will be performed as files are edited. Most features will still work although as edits are made, the data will become stale and you will get incorrect results.

  • Disable Database Auto Updates
    The code browsing database will not be automatically updated when source files are modified. However, if you choose Rescan Solution from the project’s context menu in Solution Explorer, all out-of-date files will be checked and the database will be updated.

  • Disable Implicit Files
    The code browsing database does not collect data for files not specified in a project. A project contains source files and header files that are explicitly specified. Implicit files are files that are included by explicit files (i.e. afxwin.h, windows.h, atlbase.h, etc). Normally, the system finds these files and also indexes them for various browsing features (including Navigate To). When this option is selected, those files are not indexed and some features are not available for those files. Selecting this option also implicitly selects “Disable Implicit Cleanup” and “Disable External Dependencies”.

  • Disable Implicit Cleanup
    The code browsing database does not clean up implicit files that are no longer referenced. This option prevents implicit files from being removed from the database when they are no longer used. For example, if you add an #include directive that references mapi.h to one of your source files, mapi.h will be found and indexed. If you then remove the #include, and there are no other references to that file, information on it will eventually be removed (see the Rescan Solution Interval option) unless this option is set. This setting is ignored when you perform an explicit “Rescan Solution”.

  • Disable External Dependencies Folders
    The ‘External Dependencies’ folder for each project is not created/updated. In Solution Explorer, there is an External Dependencies folder under each project. This folder contains all implicit files for that project. If this option is set, that folder does not appear.

  • Recreate Database
    Recreate the code browsing database from scratch the next time the solution loads. This option causes the next solution load to delete the SDF database file, thus causing it to be recreated and all files indexed.

  • Rescan Solution Interval
    A ‘Rescan Solution Now’ job will be scheduled every ‘value’ minutes. The value must be between 0 and 5000. The default value is 60 minutes. During a rescan solution, file timestamps are checked to see if a file was changed outside of the IDE (changes made in the IDE are automatically tracked and files are updated). Implicitly included files are checked to see if they are all still referenced.

Diagnostic Logging

These logging options are provided in case the product team or support needs to collect some advanced information to diagnose a customer issue. The logging information is not actionable for users and we recommend you leave it disabled.

  • Enable Logging
    Enables diagnostic logging to the output window.

  • Logging Level
    Lets you set log verbosity, from 0 to 5.

  • Logging Filter
    Lets you filter displayed event types by using a bitmask.

    Set by using a sum of any of the following options:

    • 0 - None

    • 1 - General

    • 2 - Idle

    • 4 - WorkItem

    • 8 - IntelliSense

    • 16 - ACPerf

    • 32 - ClassView

Fallback Location

The fallback location is the location to put the SDF and IntelliSense support files (i.e. iPCH) when the primary location (same directory as solution) is not used. This could be because the user does not have the privileges to write to the solution directory or the solution directory is on a slow device. The default fallback location is in the user’s temp directory.

  • Always Use Fallback Location
    Indicates that browsing database and IntelliSense files should always be stored a folder that you specify as your “Fallback Location”, not next to the .sln file. The IDE will never try to put the SDF or iPCH files next to the solution directory and will always use the fallback location.

  • Do Not Warn If Fallback Location Used
    Do not inform or prompt you if a ‘Fallback Location’ is used. Normally, the IDE will let you know if it had to use the fallback location. This option turns off that warning.

  • Fallback Location
    This value is used as a secondary location to store the browsing database or IntelliSense files. If empty, this will default to your temporary directory. The IDE will create a subdirectory under the specified path (or the temp directory) that includes the name of the solution along with a hash of the full path to the solution, which avoids issues with solution names being identical.

IntelliSense

  • Auto Quick Info
    Enables QuickInfo tooltips when you move the pointer over text.

  • Disable IntelliSense
    Disable all IntelliSense features. The IDE does not create VCPkgSrv.exe processes to service IntelliSense requests and no IntelliSense features will work (QuickInfo, Member List, Auto Complete, Param Help). Semantic colorization and reference highlighting are also disabled. This option does not disable browsing features that rely solely on the database (including Navigation Bar, ClassView, and Property window).

  • Disable Auto Updating
    IntelliSense updating will be delayed until an actual request for IntelliSense. This can result in a longer execution time of the first IntelliSense operation on a file, but it may be helpful to set this option on very slow or resource constrained machines. Selecting this option also selects “Disable Error Reporting” and “Disable Squiggles”.

  • Disable Error Reporting
    Disables reporting of IntelliSense errors through squiggles and the Error List window. Also disables the background parsing associated with error reporting. Selecting this option also selects “Disable Squiggles”.

  • Disable Squiggles
    Disable IntelliSense error squiggles. The red “squiggles” does not show in the editor window, although the error will still show up in the Error List window.

  • Disable #include Auto Complete
    Disables auto-completion of #include statements.

  • Use Forward Slash in #include Auto Complete
    Uses "/" to trigger auto-completion of #include statements. The default delimiter is backslash ‘\’. The compiler can accept either, so use this option to select what your code base uses.

  • Max Cached Translation Units
    The maximum number of translation units that will be kept active at any one time for IntelliSense requests. The value must be between 2 and 15. This number directly relates to the maximum number of VCPkgSrv.exe processes that will run (for a given Visual Studio instance). The default is 2 but if you have available memory, you can increase this value and possibly achieve slightly better performance on Intellisense.

    For more information about translation units, see Phases of Translation.

  • Disable Aggressive Member List
    The member list does not appear while you are typing a type or variable name. It only appears after you type one of the commit characters, as defined by the Member List Commit Characters option.

  • Disable Member List Keywords
    Language keywords such as void, class, switch and so on do not appear in member list suggestions.

  • Disable Member List Code Snippets
    Code snippets do not appear in member list suggestions.

  • Disable Semantic Colorization
    Turns off all code colorization except for language keywords, strings, and comments.

  • Smart Member List Commit
    When true, Member List commit will add a new line when you press Enter at the end of a fully typed word.

  • Member List Filter Mode
    Sets the type of matching algorithm. Fuzzy finds the most possible matches because it uses an algorithm similar to a spell checker to find matches that are similar even if they are not identical. Smart filtering matches substrings even if they are not a the start of a word. Prefix only matches on identical substrings starting from the beginning of the word.

  • Member List Commit Characters
    Specifies the characters that will cause the currently highlighted Member List suggestion to be committed. You can add or remove characters from this list.

References

  • Disable Resolving
    For performance reasons, ‘Find All References’ by default displays raw textual search results instead of using IntelliSense to verify each candidate (faster). You can uncheck this box for more accurate results on all find operations. Or, to filter on a per-search basis, then right-click in the result list and choose "Resolve Results."

  • Hide Unconfirmed
    Hide unconfirmed items in the ‘Find All References’ results. If you unset the “Disable Resolving” option, you can use this option to hide unconfirmed items in the results.

  • Disable Reference Highlighting

See Also

Other Resources

Setting Language-Specific Editor Options