diff --git a/docs/cpp/c-cpp-properties-schema-reference.md b/docs/cpp/c-cpp-properties-schema-reference.md index bfb3492e54..9cae8ce3c7 100644 --- a/docs/cpp/c-cpp-properties-schema-reference.md +++ b/docs/cpp/c-cpp-properties-schema-reference.md @@ -4,46 +4,115 @@ Area: cpp TOCTitle: c_cpp_properties.json ContentId: EC1BA944-09B5-41EA-AAED-779A02C90C98 PageTitle: c_cpp_properties.json reference -DateApproved: 3/07/2023 +DateApproved: 10/31/2023 MetaDescription: Schema reference for C++ project settings in Visual Studio Code. --- # c_cpp_properties.json reference This article explains the scheme for the `c_cpp_properties.json` settings file. -For more information about changing these settings, see [Customizing Default Settings](/docs/cpp/customize-default-settings-cpp.md) and [Configure IntelliSense for cross-compiling](/docs/cpp/configure-intellisense-crosscompilation.md). +Looking to get started with configuring your project? See [Configure Intellisense](/docs/cpp/configure-intellisense.md).For more information about changing these settings, see [Customizing Default Settings](/docs/cpp/customize-default-settings-cpp.md). -## Example +## Example of Variables + +Note, this is an example of all fields. You do not need to specify all fields in your `c_cpp_properties.json` file. The extension will automatically fill in any missing fields with default values. ```json { - "env" : { - "myDefaultIncludePath": [ - "${workspaceFolder}", - "${workspaceFolder}/include" + "env": { + "myIncludePath": [ + "${workspaceFolder}/include", + "${workspaceFolder}/src" ], - "myCompilerPath": "/usr/local/bin/gcc-7" + "myDefines": [ + "DEBUG", + "MY_FEATURE=1" + ] }, "configurations": [ + { + "name": "Linux", + "compilerPath": "/usr/bin/gcc", + "compilerArgs": [ + "-m32" + ], + "intelliSenseMode": "linux-gcc-x86", + "includePath": [ + "${myIncludePath}", + "/usr/include" + ], + "defines": [ + "${myDefines}" + ], + "cStandard": "gnu11", + "cppStandard": "gnu++14", + "configurationProvider": "ms-vscode.cmake-tools", + "forcedInclude": [ + "${workspaceFolder}/common.h" + ], + "compileCommands": "${workspaceFolder}/build/compile_commands.json", + "dotconfig": "${workspaceFolder}/.config", + "mergeConfigurations": true, + "customConfigurationVariables": { + "myVar": "myvalue" + }, + "browse": { + "path": [ + "${myIncludePath}", + "/usr/include", + "${workspaceFolder}" + ], + "limitSymbolsToIncludedHeaders": true, + "databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db" + } + }, { "name": "Mac", - "intelliSenseMode": "clang-x64", - "includePath": [ "${myDefaultIncludePath}", "/another/path" ], - "macFrameworkPath": [ "/System/Library/Frameworks" ], - "defines": [ "FOO", "BAR=100" ], - "forcedInclude": [ "${workspaceFolder}/include/config.h" ], "compilerPath": "/usr/bin/clang", + "intelliSenseMode": "macos-clang-x64", + "includePath": [ + "${myIncludePath}" + ], + "defines": [ + "${myDefines}" + ], "cStandard": "c11", "cppStandard": "c++17", - "compileCommands": "/path/to/compile_commands.json", + "macFrameworkPath": [ + "/System/Library/Frameworks", + "/Library/Frameworks" + ], "browse": { - "path": [ "${workspaceFolder}" ], - "limitSymbolsToIncludedHeaders": true, - "databaseFilename": "" + "path": [ + "${myIncludePath}", + "${workspaceFolder}" + ] + } + }, + { + "name": "Win32", + "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/cl.exe", + "intelliSenseMode": "windows-msvc-x64", + "includePath": [ + "${myIncludePath}" + ], + "defines": [ + "${myDefines}", + "_WINDOWS" + ], + "cStandard": "c17", + "cppStandard": "c++20", + "windowsSdkVersion": "10.0.19041.0", + "browse": { + "path": [ + "${myIncludePath}", + "${workspaceFolder}" + ] } } ], - "version": 4 + "version": 4, + "enableConfigurationSquiggles": true } ``` @@ -58,10 +127,13 @@ For more information about changing these settings, see [Customizing Default Set - `version` We recommend you don't edit this field. It tracks the current version of the `c_cpp_properties.json` file so that the extension knows what properties and settings should be present and how to upgrade this file to the latest version. +- `enableConfigurationSquiggles` + Set to `true` to report errors detected in `c_cpp_properties.json` file to the C/C++ Extension. + ## Configuration properties - `name` - A friendly name that identifies a configuration. `Linux`, `Mac`, and `Win32` are special identifiers for configurations that will be autoselected on those platforms. The status bar in VS Code will show you which configuration is active. You can also click on the label in the status bar to change the active configuration. + A friendly name that identifies a configuration. `Linux`, `Mac`, and `Win32` are special identifiers for configurations that will be autoselected on those platforms. The status bar in VS Code will show you which configuration is active. You can also select the label in the status bar to change the active configuration. - `compilerPath` (optional) The full path to the compiler you use to build your project, for example `/usr/bin/gcc`, to enable more accurate IntelliSense. The extension will query the compiler to determine the system include paths and default defines to use for IntelliSense. @@ -69,15 +141,17 @@ For more information about changing these settings, see [Customizing Default Set Putting `"compilerPath": ""` (empty string) will skip querying a compiler. This is useful if a specified compiler doesn't support the arguments that are used for the query, as the extension will default back to any compiler it can find (like Visual C). Leaving out the `compilerPath` property does not skip the query. - `compilerArgs` (optional) - Compiler arguments to modify the includes or defines used, for example `-nostdinc++`, `-m32`, etc. + Compiler arguments to modify the includes or defines used, for example `-nostdinc++`, `-m32`, etc. Arguments that take additional space-delimited arguments should be entered as separate arguments in the array, for example, for `--sysroot ` use `\"--sysroot\", \"\"`. - `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. Platform defaults: - - Windows: `msvc-x64` - - Linux: `gcc-x64` - - macOS: `clang-x64` + - Windows: `windows-msvc-x64` + - Linux: `linux-gcc-x64` + - macOS: `macos-clang-x64` + + IntelliSense modes that only specify `-` variants (for example, `gcc-x64`) are legacy modes and are automatically converted to the `--` variants based on the host platform. - `includePath` An include path is a folder that contains header files (such as `#include "myHeaderFile.h"`) that are included in a source file. Specify a list of paths for the IntelliSense engine to use while searching for included header files. Searching on these paths is not recursive. Specify `**` to indicate recursive search. For example, `${workspaceFolder}/**` will search through all subdirectories while `${workspaceFolder}` will not. If on Windows with Visual Studio installed, or if a compiler is specified in the `compilerPath` setting, it is not necessary to list the system include paths in this list. @@ -86,10 +160,10 @@ For more information about changing these settings, see [Customizing Default Set 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. + 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. - `cppStandard` - The version of the C++ language standard to use for IntelliSense. + The version of the C++ language standard to use for IntelliSense. For example, `c++20`, `gnu++23`, or `${default}`. Note: GNU standards are only used to query the set compiler to get GNU defines, and IntelliSense will emulate the equivalent C++ standard version. - `configurationProvider` The ID of a VS Code extension that can provide IntelliSense configuration information for source files. For example, use the VS Code extension ID `ms-vscode.cmake-tools` to provide configuration information from the CMake Tools extension. If you have specified a configurationProvider, the configurations that provides will take precedence over your other settings in `c_cpp_properties.json`. @@ -106,17 +180,25 @@ For more information about changing these settings, see [Customizing Default Set A list of files that should be included before any other characters in the source file are processed. Files are included in the order listed. - `compileCommands` (optional) - The full path to the `compile_commands.json` file for the workspace. The include paths and defines discovered in this file will be used instead of the values set for `includePath` and `defines` settings. If the compile commands database does not contain an entry for the translation unit that corresponds to the file you opened in the editor, then a warning message will appear and the extension will use the `includePath` and `defines` settings instead. - + The full path to the `compile_commands.json` file for the workspace. If there is a matching entry in `compile_commands.json` for a file open in the editor, that command line will be used to configure IntelliSense for that file, instead of the other fields of `c_cpp_properties.json`. For more information about the file format, see the [Clang documentation](https://clang.llvm.org/docs/JSONCompilationDatabase.html). Some build systems, such as CMake, [simplify generating this file](https://cmake.org/cmake/help/v3.5/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html). +- `dotconfig` + A path to a .config file created by the Kconfig system. The Kconfig system generates a file with all the defines needed to build a project. Examples of projects that use the Kconfig system are the Linux Kernel and NuttX RTOS. + +- `mergeConfigurations` + Set to `true` to merge include paths, defines, and forced includes with those from a configuration provider. + +- `customConfigurationVariables` + Custom variables that can be queried through the command `${cpptools:activeConfigCustomVariable}` to use for the input variables in `launch.json` or `tasks.json`. + - `browse` The set of properties used when `"C_Cpp.intelliSenseEngine"` is set to `"Tag Parser"` (also referred to as "fuzzy" IntelliSense, or the "browse" engine). These properties are also used by the **Go to Definition/Declaration** features, or when the "default" IntelliSense engine is unable to resolve the `#includes` in your source files. ### Browse properties - `path` - A list of paths for the Tag Parser to search for headers included by your source files. If omitted, `includePath` will be used as the `path`. Searching on these paths is recursive by default. Specify `*` to indicate non-recursive search. For example: `${workspaceFolder}` will search through all subdirectories while `${workspaceFolder}/*` will not. + A list of paths for the Tag Parser to search for headers included by your source files. If omitted, `includePath` will be used as the `path`. Searching on these paths is recursive by default. Specify `*` to indicate nonrecursive search. For example: `${workspaceFolder}` will search through all subdirectories while `${workspaceFolder}/*` will not. - `limitSymbolsToIncludedHeaders` When true, the Tag Parser will only parse code files that have been directly or indirectly included by a source file in `${workspaceFolder}`. When false, the Tag Parser will parse all code files found in the paths specified in the `browse.path` list. diff --git a/docs/cpp/configure-intellisense-crosscompilation.md b/docs/cpp/configure-intellisense-crosscompilation.md index 9038fbf251..4036067f70 100644 --- a/docs/cpp/configure-intellisense-crosscompilation.md +++ b/docs/cpp/configure-intellisense-crosscompilation.md @@ -1,5 +1,5 @@ --- -Order: 13 +Order: 14 Area: cpp TOCTitle: Configure IntelliSense for cross-compiling ContentId: 381b7ce1-5766-49b0-ad26-f9eedae70e63 diff --git a/docs/cpp/configure-intellisense.md b/docs/cpp/configure-intellisense.md new file mode 100644 index 0000000000..47ee46c9a8 --- /dev/null +++ b/docs/cpp/configure-intellisense.md @@ -0,0 +1,192 @@ +--- +Order: 13 +Area: cpp +TOCTitle: Configure IntelliSense +ContentId: bf494c65-12b4-4506-ab6c-1fad76d7ccf1 +PageTitle: Configure C/C++ IntelliSense +DateApproved: 10/31/2023 +MetaDescription: Configure Visual Studio Code IntelliSense in the C/C++ Extension +--- +# Configure C/C++ IntelliSense + +This article is about configuring the C/C++ extension to provide C++ specific [IntelliSense](/docs/editor/intellisense.md) suggestions in VS Code. IntelliSense is a helpful tool built into VS Code that provides various code editing features that help you code faster and more efficiently. For example, code completion, parameter info, syntax highlighting, code actions (light bulbs), and member lists are all generated using IntelliSense. + +C/C++ IntelliSense only requires a C/C++ compiler to be installed on your system. The C/C++ compiler provides C++ specific information to IntelliSense, such as the locations of system include paths and other settings. For project level configurations, reference [Project level IntelliSense Configuration](/docs/cpp/configure-intellisense.md#_Project-Level-IntelliSense-Configuration) section. + +## When will the C/C++ Extension configure core IntelliSense features for me? + +A compiler is the only requirement to configure core Intellisense functionality. To identify a compiler for IntelliSense, the C/C++ Extension scans common paths on your machine for compilers such as clang, GCC, MinGW, cygwin, cygwin64, and MSVC. If any of these compilers are identified and in a secure location, they are automatically configured for IntelliSense. Otherwise, a notification is displayed asking you to confirm that this compiler should be configured for IntelliSense. In either of these scenarios, the compiler selected is also set as the default compiler. + +## How to check whether IntelliSense is configured + +If you don't have IntelliSense configured, the C/C++ Extension shows a yellow indicator in the status bar with a warning sign labeled **Configure IntelliSense**. + +![configure-intelliSense-indicator-status-bar](images/intellisense/configure-intellisense-indicator.png) + +To configure, select the status bar indicator, which navigates you to the [configuration quick pick](/docs/cpp/configure-intellisense.md#_Option-1.-Select-a-configuration-option-through-the-configuration-quick-pick). The quick pick can help you select or install a C/C++ compiler. + +If you do not see a status bar indicator, you can also check your project's `c_cpp_properties.json` file. This file stores all of your IntelliSense configuration settings. Navigate to this file by selecting **C/C++: Edit Configurations (UI)** from the Command Palette (`kb(workbench.action.showCommands)`). Check the `IntelliSense mode` to find your configuration. To learn more about the `c_cpp_properties.json` file, see the [schema reference](/docs/cpp/c-cpp-properties-schema-reference.md). + +![Command Palette](images/cpp/command-palette.png) + +## How to configure IntelliSense + +IntelliSense configuration is stored in the `c_cpp_properties.json` file, which is automatically created in your workspace. All three of the following options are different ways of editing the `c_cpp_properties.json` file: + +### Option 1. Select a configuration option through the configuration quick pick + +Open the quick pick by entering **Select IntelliSense Configuration** in the Command Palette (`kb(workbench.action.showCommands)`), which shows you a dropdown with all of the configuration options found by the C/C++ Extension on your machine. + +![Compiler Quick Pick](images/intellisense/compiler-quick-pick.png) + +Select one of the options available. If you select a compiler, this compiler is used by IntelliSense by default. You can return to the Configuration quick pick at any point to change which option is used to configure IntelliSense. + +If no options are available in the quick pick, no compiler could be identified in your system. You can browse your machine manually or install a C/C++ compiler. To install on a Windows machine, select the **Help me install a compiler** option, which redirects you to the step-by-step walkthrough of how to install a C/C++ compiler. On a Mac or Linux machine, select **Install a compiler** and navigate through the prompts to have a C++ compiler installed on your machine. + +### Option 2. Edit your IntelliSense configurations through the UI + +Open your IntelliSense configuration by selecting **C/C++: Edit Configurations (UI)** from the Command Palette (`kb(workbench.action.showCommands)`). This view is an interface of the `c_cpp_properties.json` file. + +Set the **Compiler path** field to the full path of the compiler you're using to build your project. For example, when using the default install path for GCC on Linux, the compiler path is `/usr/bin/gcc`. Set the **IntelliSense mode** to the architecture-specific variant of the compiler you're using. + +### Option 3. Edit the `c_cpp_properties.json` file directly + +You can edit the `c_cpp_properties.json` file directly to customize your configuration. Use the **C/C++ Edit Configurations (JSON)** command from the Command Palette (`kb(workbench.action.showCommands)`), then the `c_cpp_properties.json` file is created in the `.vscode` folder of your workspace. +Use the `compilerPath` variable to add a compiler. This variable is the full path of the compiler you're using to build your project. For example, when using the default install path for GCC on Linux, the compiler path is `/usr/bin/gcc`. + +For more information about the `c_cpp_properties.json` file, view the [schema reference](/docs/cpp/c-cpp-properties-schema-reference.md). + +Select a tab to see some samples of a `c_cpp_configuration.json` file based on your operating system: + +Sample c_cpp_configuration.json on Windows +
+

Using the default install path for MinGW: +```json +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "windowsSdkVersion": "10.0.22621.0", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "${default}", + "compilerPath": "C:/msys64/mingw64/bin/gcc.exe" + } + ], + "version": 4 +} +``` +

+
+
+ +Sample c_cpp_configuration.json on Mac +
+

Using the default install path for clang: +```json +{ + "configurations": [ + { + "name": "Mac", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "macFrameworkPath": [ + "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks" + ], + "compilerPath": "/usr/bin/clang", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "macos-clang-arm64" + } + ], + "version": 4 +} +``` +

+
+
+ +Sample c_cpp_configuration.json on Linux +
+

Using the default install path for GCC: +```json +{ + "configurations": [ + { + "name": "Linux-GCC", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/usr/bin/g++", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "gcc-x64", + "browse": { + "path": [ + "${workspaceFolder}" + ], + "limitSymbolsToIncludedHeaders": true, + "databaseFilename": "" + } + } + ], + "version": 4 +} +``` +

+
+
+ +## Project Level IntelliSense Configuration + +Configuring IntelliSense with a compiler provides you with core IntelliSense features. This steup is called the base configuration. For more complex usage scenarios, such as setting up a project that requires: + +- additional include paths, such as references to one or multiple different libraries +- specific compiler arguments that influence the behavior of the language(and therefore IntelliSense) + +There are multiple other ways to configure IntelliSense. You can provide these additional configurations either through the `c_cpp_properties.json` file and related settings, a custom configuration provider in the form of another VS Code extension (for example, the [Makefile Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.makefile-tools) or [CMake Tools](/docs/cpp/CMake-linux.md) extension), or a `compile_commands.json` file. + +### Configuration Providers + +A custom configuration provider is another extension in VS Code which can potentially provide more accurate C++ IntelliSense configuration than the C/C++ Extension. For example, for the CMake or Make build systems, where the [Makefile Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.makefile-tools) or [CMake Tools](/docs/cpp/CMake-linux.md) extensions can be configuration providers. To add an extension as a configuration provider, either select the extension through the configuration quick pick, add it to configuration UI by editing the **Configuration provider** field under **Advanced Settings**, or add the `configurationProvider` field to your `c_cpp_properties.json` file. For example, for the CMake extension, the path to add would be `ms-vscode.cmake-tools`. + +The C/C++ Extension scans your system for custom configuration providers. If it identifies only one custom configuration provider, this configuration provider is automatically configured for IntelliSense. If there are multiple configuration providers identified, you need to select which the Extension should use by opening [the configuration quick pick](/docs/cpp/configure-intellisense.md#_Option-1.-Select-a-configuration-option-through-the-configuration-quick-pick). + +### `compile_commands.json` File + +Another option to provide intelliSense configuration is a [`compile_commands.json` file](https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html), which describes the exact compile commands used for every file in a project. This file is often generated by a build system, such as CMake or Bazel, by setting command line arguments when configuring your project. A `compile_commands.json` file can be selected for configuration through the same methods as discussed in the [How to configure IntelliSense section](/docs/cpp/configure-intellisense.md#_How-to-configure-IntelliSense): through the configuration quick pick, editing configurations through the UI, or editing the `c_cpp_properties.json` file directly. In the configuration UI, the file can be added under Advanced Configurations and the **Compile commands** field. For example, if your `compile_commands.json` file is in the root of your workspace, enter `${workspaceFolder}/compile_commands.json` in the **Compile commands** field. Otherwise, it can be added to the `c_cpp_properties.json` file directly using the `compileCommands` configuration property. + +If the compile commands database does not contain an entry for the translation unit that corresponds to the file you opened in the editor, your base configuration (found in `c_cpp_properties.json`) is used instead (such as your `includePath` and `defines`). If the C/C++ Extension is reverting to the base configuration, the [language status bar indicator](/docs/cpp/configure-intellisense.md#_Option-1:-Check-for-a-status-bar-indicator) will show you the label **Configure IntelliSense** in the status bar. + +If you specified a custom configuration provider and a `compile_commands.json` file, the custom configuration provider is queried first for an IntelliSense configuration. + +If your program includes header files that aren't in your workspace or that aren't in the standard library path, you can modify the **Include Path**. The C/C++ extension populates the include path by querying the compiler specified by **Compiler path**. If the extension can't find the path for the target system libraries, you can enter the include path manually. + +### Checking IntelliSense activity using the language status bar + +You can determine if IntelliSense is actively working on your file using the language status bar. To invoke the language status bar, open a C++ file. Note that the status bar shows the text **{} C++**. Hover over the **{}** symbol to open the language status bar flyout. The top item in the flyout indicates the IntelliSense status. Here are the different statuses and their meanings: + +- **IntelliSense: Ready** = IntelliSense is configured for the C/C++ Extension and automatically activates if you interact with the editor, for example, by writing code. +- **IntelliSense: Updating** = IntelliSense is actively working to determine any code completions, syntax highlighting, etc. based on changes you're making to your code. + +![language-status-bar](images/intellisense/language-status-bar.png) + +You can select the pin icon on the right of any item in the language status bar flyout to permanently pin it to your status bar. + +## Next steps + +- For more information about IntelliSense configuration, see [Customizing default settings](/docs/cpp/customize-default-settings-cpp.md). +- If you have trouble configuring the settings, please start a discussion at [GitHub discussions](https://github.com/microsoft/vscode-cpptools/discussions), or if you find an issue that needs to be fixed, file an issue at [GitHub issues](https://github.com/microsoft/vscode-cpptools/issues). +- Explore the [c_cpp_properties schema](/docs/cpp/c-cpp-properties-schema-reference.md). +- Review the [Overview of the C++ extension](/docs/languages/cpp.md). diff --git a/docs/cpp/faq-cpp.md b/docs/cpp/faq-cpp.md index 094adb2c83..3985bf3d62 100644 --- a/docs/cpp/faq-cpp.md +++ b/docs/cpp/faq-cpp.md @@ -1,5 +1,5 @@ --- -Order: 14 +Order: 15 Area: cpp TOCTitle: FAQ ContentId: 652c9cec-b8fa-4597-a894-f2ea9a095c31 diff --git a/docs/cpp/images/intellisense/compiler-quick-pick.png b/docs/cpp/images/intellisense/compiler-quick-pick.png new file mode 100644 index 0000000000..0dfe89920b --- /dev/null +++ b/docs/cpp/images/intellisense/compiler-quick-pick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fa610886a938cb17965902107e3e069cd9d4ed55584c06cbafc603518008aec +size 133784 diff --git a/docs/cpp/images/intellisense/configure-intellisense-indicator.png b/docs/cpp/images/intellisense/configure-intellisense-indicator.png new file mode 100644 index 0000000000..a0497bc55e --- /dev/null +++ b/docs/cpp/images/intellisense/configure-intellisense-indicator.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c07b1453641882aeb7ad9061a47e416af39d45edab6ec8eb6f2eaf3ca4824c +size 25686 diff --git a/docs/cpp/images/intellisense/language-status-bar.png b/docs/cpp/images/intellisense/language-status-bar.png new file mode 100644 index 0000000000..6fcb82ae93 --- /dev/null +++ b/docs/cpp/images/intellisense/language-status-bar.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf30f0282fb5c3d08fdaad063c0b5b6f6038c7ebea1c3c8e83d73f26c8f81516 +size 248596