{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "definitions": { "configurations": { "type": "array", "items": { "type": "object", "required": [ "name" ], "properties": { "name": { "description": "Configuration identifier. Mac, Linux, and Win32 are special identifiers for configurations that will be auto-selected on those platforms, but the identifier can be anything.", "type": "string" }, "compilerPath": { "description": "Full path of the compiler being used, e.g. /usr/bin/gcc, to enable more accurate IntelliSense. Args can be added to modify the includes/defines used, e.g. -nostdinc++, -m32, etc., but paths with spaces must be surrounded with \\\" if args are used.", "type": "string" }, "cStandard": { "description": "Version of the C language standard to use for IntelliSense.", "type": "string", "enum": [ "c89", "c99", "c11", "${default}" ] }, "cppStandard": { "description": "Version of the C++ language standard to use for IntelliSense.", "type": "string", "enum": [ "c++98", "c++03", "c++11", "c++14", "c++17", "${default}" ] }, "compileCommands": { "description": "Full path to compile_commands.json file for the workspace.", "type": "string" }, "includePath": { "description": "A list of paths for the IntelliSense engine to use while searching for included headers. Searching on these paths is not recursive.", "type": "array", "items": { "type": "string" } }, "macFrameworkPath": { "description": "A list of paths for the Intellisense engine to use while searching for included headers from Mac frameworks. Only supported on Mac configuration.", "type": "array", "items": { "type": "string" } }, "windowsSdkVersion": { "description": "Version of the Windows SDK include path to use on Windows, e.g. '10.0.17134.0'.", "type": "string", "pattern": "^\\d{2}\\.\\d{1}\\.\\d{5}\\.\\d{1}$|^8\\.1$" }, "defines": { "description": "A list of preprocessor definitions for the IntelliSense engine to use while parsing files. Optionally, use = to set a value, e.g. VERSION=1.", "type": "array", "items": { "type": "string" } }, "intelliSenseMode": { "description": "If set, it overrides the default mode used by the IntelliSense engine. Windows defaults to msvc-x64, Linux defaults to gcc-x64, and Mac default to clang-x64.", "type": "string", "enum": [ "msvc-x64", "gcc-x64", "clang-x64", "${default}" ] }, "forcedInclude": { "description": "A list of files that should be included before any include file in a translation unit.", "type": "array", "items": { "type": "string" } }, "configurationProvider": { "description": "The id of a VS Code extension that can provide IntelliSense configuration information for source files.", "type": "string" }, "browse": { "type": "object", "properties": { "limitSymbolsToIncludedHeaders": { "description": "true to process only those files directly or indirectly included as headers, false to process all files under the specified include paths.", "type": [ "boolean", "string" ] }, "databaseFilename": { "description": "Path to the generated symbol database. If a relative path is specified, it will be made relative to the workspace's default storage location.", "type": "string" }, "path": { "description": "A list of paths for the tag parser to use while searching for included headers. Searching on these paths is recursive by default. Specify '*' to indicate non-recursive search. For example: '/usr/include' will search through all subdirectories while '/usr/include/*' will not.", "type": "array", "items": { "type": "string" } } } } } } }, "env": { "type": "object", "description": "Custom variables that can be reused anywhere in this file using the ${variable} or ${env:variable} syntax.", "patternProperties": { "(?!^workspaceFolder$)(?!^workspaceRoot$)(?!^default$)(^.+$)": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ] } }, "additionalProperties": false }, "version": { "type": "integer", "description": "Version of the configuration file. This property is managed by the extension. Please do not change it." } }, "properties": { "configurations": { "$ref": "#/definitions/configurations" }, "env": { "$ref": "#/definitions/env" }, "version": { "$ref": "#/definitions/version" } }, "required": [ "configurations", "version" ] }