forked from microsoft/vscode-cpptools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathc_cpp_properties.schema.json
More file actions
237 lines (237 loc) · 11.6 KB
/
c_cpp_properties.schema.json
File metadata and controls
237 lines (237 loc) · 11.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
{
"$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.",
"type": "string"
},
"compilerArgs": {
"description": "Compiler arguments to modify the includes or defines used, e.g. -nostdinc++, -m32, etc.",
"type": "array",
"items": {
"type": "string"
}
},
"cStandard": {
"description": "Version of the C language standard to use for IntelliSense. Note: GNU standards are only used to query the set compiler to get GNU defines, and IntelliSense will emulate the equivalent C standard version.",
"type": "string",
"enum": [
"c89",
"c99",
"c11",
"c17",
"gnu89",
"gnu99",
"gnu11",
"gnu17",
"${default}"
]
},
"cppStandard": {
"description": "Version of the C++ language standard to use for IntelliSense. Note: GNU standards are only used to query the set compiler to get GNU defines, and IntelliSense will emulate the equivalent C++ standard version.",
"type": "string",
"enum": [
"c++98",
"c++03",
"c++11",
"c++14",
"c++17",
"c++20",
"gnu++98",
"gnu++03",
"gnu++11",
"gnu++14",
"gnu++17",
"gnu++20",
"${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. Specify '**' to indicate recursive search. For example, '${workspaceFolder}/**' will search through all subdirectories while '${workspaceFolder}' will not.",
"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": "The IntelliSense mode to use that maps to a platform and architecture variant of MSVC, gcc, or Clang. If not set or if set to ${default}, the extension will choose the default for that platform. Windows defaults to windows-msvc-x64, Linux defaults to linux-gcc-x64, and macOS defaults to macos-clang-x64. IntelliSense modes that only specify <compiler>-<architecture> variants (e.g. gcc-x64) are legacy modes and are converted automatically to the <platform>-<compiler>-<architecture> variants based on the host platform.",
"type": "string",
"enum": [
"macos-clang-x86",
"macos-clang-x64",
"macos-clang-arm",
"macos-clang-arm64",
"macos-gcc-x86",
"macos-gcc-x64",
"macos-gcc-arm",
"macos-gcc-arm64",
"linux-clang-x86",
"linux-clang-x64",
"linux-clang-arm",
"linux-clang-arm64",
"linux-gcc-x86",
"linux-gcc-x64",
"linux-gcc-arm",
"linux-gcc-arm64",
"windows-clang-x86",
"windows-clang-x64",
"windows-clang-arm",
"windows-clang-arm64",
"windows-gcc-x86",
"windows-gcc-x64",
"windows-gcc-arm",
"windows-gcc-arm64",
"windows-msvc-x86",
"windows-msvc-x64",
"windows-msvc-arm",
"windows-msvc-arm64",
"clang-x86",
"clang-x64",
"clang-arm",
"clang-arm64",
"gcc-x86",
"gcc-x64",
"gcc-arm",
"gcc-arm64",
"msvc-x86",
"msvc-x64",
"msvc-arm",
"msvc-arm64",
"${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 to use for indexing and parsing of workspace symbols (for use by Go to Definition, Find All References, etc.). 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.",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"customConfigurationVariables": {
"type": "object",
"description": "Custom variables that can be queried through the command ${cpptools:activeConfigCustomVariable} to use for the input variables in launch.json or tasks.json.",
"patternProperties": {
"(^.+$)": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"env": {
"type": "object",
"description": "Custom variables that can be reused anywhere in this file using the ${variable} or ${env:variable} syntax.",
"patternProperties": {
"(?!^workspaceFolder$)(?!^workspaceRoot$)(?!^workspaceFolderBasename$)(?!^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."
},
"enableConfigurationSquiggles": {
"type": "boolean",
"default": true,
"description": "Controls whether the extension will report errors detected in c_cpp_properties.json."
}
},
"properties": {
"configurations": {
"$ref": "#/definitions/configurations"
},
"env": {
"$ref": "#/definitions/env"
},
"version": {
"$ref": "#/definitions/version"
},
"enableConfigurationSquiggles": {
"$ref": "#/definitions/enableConfigurationSquiggles"
}
},
"required": [
"configurations",
"version"
],
"additionalProperties": false
}