Skip to content

Update C++ Settings doc #8310

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 26 commits into from
Apr 30, 2025

Conversation

AlexandraKemperMS
Copy link
Collaborator

The current settings doc for C++ points to the C_Cpp.default settings and contains inaccurate and incomplete information. Default settings are described in the general VS Code docs and only need to be linked to, and one exception needs to be covered. Additionally, this settings doc contains no information on the c_cpp_properties .json schema, which is in a separate doc that does not even have a place in the TOC right now. These two docs have been merged under "Settings Reference" to match Python's layout and updated with the most recent information.

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

A documentation update for C++ settings that merges the old customization doc with the new c_cpp_properties.json reference, clarifying default settings and introducing a recursive include paths section.

  • Removed the outdated "Customize default settings" document.
  • Updated and merged C++ settings reference with revised metadata, improved descriptions, and added recursive include path properties.

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
docs/cpp/customize-default-settings-cpp.md Removed obsolete document; content now merged in the new settings reference.
docs/cpp/customize-cpp-settings-cpp.md Updated metadata and documentation content; added new recursive include properties and editorial improvements.


- `intelliSenseMode`
The IntelliSense mode to use that maps to an architecture-specific variant of MSVC, gcc, or Clang. If not set or if set to `${default}`, the extension will choose the default for that platform.
The IntelliSense mode to use that maps to an architecture-specific variant of MSVC, gcc, or Clang. If not set or if set to `${default}`, the extension chooses the default for that platform.

Platform defaults:
- Windows: `windows-msvc-x64`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it listed somewhere the actual values for the triplets?

Might be nice to have at least the viable parts listed windows|macos|linux-msvc|clang|gcc-x86|x64|arm|arm64

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The values will appear in the IntelliSense for the config file. I would say that we can forego listing all the combinations here.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to be consistent - then we would need to list all the options for every variable. But considering that cstandard, C++ standard, and IntelliSenseMode all have dropdowns available in the Config UI I think people can find this information very easily without us specifying.


- `defines`
A list of preprocessor definitions for the IntelliSense engine to use while parsing files. Optionally, use `=` to set a value, for example `VERSION=1`.

- `cStandard`
The version of the C language standard to use for IntelliSense. For example, `c17`, `gnu23`, or `${default}`. Note that GNU standards are only used to query the set compiler to get GNU defines, and IntelliSense will emulate the equivalent C standard version.
The version of the C language standard to use for IntelliSense. For example, `c17`, `gnu23`, or `${default}`. Note: GNU standards are only used to query the set compiler to get GNU defines, and IntelliSense emulates the equivalent C standard version.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And again, are the supported values listed?

Copy link
Contributor

@ntrogh ntrogh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AlexandraKemperMS mostly minor text updates.

@ntrogh ntrogh merged commit cff5dda into microsoft:main Apr 30, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants