{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"definitions": {
		"configurations": {
			"type": "array",
			"items": {
				"type": "object",
				"required": [
					"name"
				],
				"properties": {
					"name": {
						"markdownDescription": "Konfigurationsbezeichner. `Mac`, `Linux` und `Win32` sind spezielle Bezeichner für Konfigurationen, die auf diesen Plattformen automatisch ausgewählt werden, aber der Bezeichner kann beliebig lauten.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "string"
					},
					"compilerPath": {
						"markdownDescription": "Vollständiger Pfad des verwendeten Compilers, z. B. `/usr/bin/gcc`, um mehr Genauigkeit bei IntelliSense zu erhalten.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": [
							"null",
							"string"
						]
					},
					"compilerArgs": {
						"markdownDescription": "Compilerargumente zum Ändern der verwendeten Include- oder Define-Anweisungen, z. B.: `-nostdinc++`, `-m32` usw. Argumente, die zusätzliche durch Leerzeichen getrennte Argumente enthalten, sollten als separate Argumente in das Array eingegeben werden, z. B. für `--sysroot <arg>` `\"--sysroot\", \"<arg>\"` verwenden.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered, except potentially the `arg` text which is a placeholder and not literal text, i.e. an abbreviation for `argument`.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"cStandard": {
						"description": "Version des C-Sprachstandards, die für IntelliSense verwendet werden soll. Hinweis: GNU-Standards werden nur zum Abfragen des festgelegten Compilers zum Abrufen von GNU-Definitionen verwendet, und IntelliSense emuliert die äquivalente Version des C-Standards.",
						"type": "string",
						"enum": [
							"c89",
							"c99",
							"c11",
							"c17",
							"c23",
							"gnu89",
							"gnu99",
							"gnu11",
							"gnu17",
							"gnu23",
							"${default}"
						]
					},
					"cppStandard": {
						"description": "Version des C++-Sprachstandards, die für IntelliSense verwendet werden soll. Hinweis: GNU-Standards werden nur zum Abfragen des festgelegten Compilers zum Abrufen von GNU-Definitionen verwendet, und IntelliSense emuliert die äquivalente Version des C++-Standards.",
						"type": "string",
						"enum": [
							"c++98",
							"c++03",
							"c++11",
							"c++14",
							"c++17",
							"c++20",
							"c++23",
							"c++26",
							"gnu++98",
							"gnu++03",
							"gnu++11",
							"gnu++14",
							"gnu++17",
							"gnu++20",
							"gnu++23",
							"gnu++26",
							"${default}"
						]
					},
					"compileCommands": {
						"oneOf": [
							{
								"type": "string"
							},
							{
								"type": "array",
								"items": {
									"type": "string"
								},
								"uniqueItems": true
							}
						],
						"markdownDescription": "Vollständiger Pfad oder eine Liste mit vollständigen Pfaden zu `compile_commands.json` Dateien für den Arbeitsbereich.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered."
					},
					"includePath": {
						"markdownDescription": "Eine Liste mit Pfaden, die das IntelliSense-Modul bei der Suche nach eingeschlossenen Headern verwenden soll. Die Suche in diesen Pfaden ist nicht rekursiv. Geben Sie `**` an, um eine rekursive Suche durchzuführen. Beispiel: `${workspaceFolder}/**` durchsucht alle Unterverzeichnisse, `${workspaceFolder}` hingegen nicht. In der Regel sollte dies keine System-Includes enthalten; legen Sie stattdessen `C_Cpp.default.compilerPath` fest.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"macFrameworkPath": {
						"description": "Eine Liste von Pfaden für die IntelliSense-Engine, die bei der Suche nach eingeschlossenen Headern aus Mac-Frameworks verwendet werden sollen. Wird nur für die Mac-Konfiguration unterstützt.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"windowsSdkVersion": {
						"markdownDescription": "Die Version des Windows SDK-Includepfads für die Verwendung unter Windows, z. B. `10.0.17134.0`.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "string",
						"pattern": "^\\d{2}\\.\\d{1}\\.\\d{5}\\.\\d{1}$|^8\\.1$"
					},
					"dotConfig": {
						"description": "Ein Pfad zu einer „.config“-Datei, die vom „Kconfig“-System erstellt wurde. Das „Kconfig“-System generiert eine Datei mit allen Definitionen zum Erstellen eines Projekts. Beispiele für Projekte, die das „Kconfig“-System verwenden, sind Linux-Kernel und NuttX-RTOS.",
						"type": "string"
					},
					"defines": {
						"markdownDescription": "Eine Liste mit Präprozessordefinitionen, die das IntelliSense-Modul, beim Analysieren von Dateien verwenden sollen. Verwenden Sie optional `=`, um einen Wert festzulegen, z. B.: `VERSION=1`.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"intelliSenseMode": {
						"markdownDescription": "Der zu verwendende IntelliSense-Modus, der einer Plattform- und Architekturvariante von MSVC, GCC oder Clang zugeordnet wird. Wenn er nicht oder auf `${default}` festgelegt wird, wählt die Erweiterung den Standardwert für diese Plattform aus. Windows verwendet standardmäßig `windows-msvc-x64`, Linux standardmäßig `linux-gcc-x64` und macOS standardmäßig `macos-clang-x64`. IntelliSense-Modi, die nur Varianten vom Typ `<Compiler>-<Architektur>` angeben (z. B. `gcc-x64`), sind Legacy-Modi und werden basierend auf der Hostplattform automatisch in die Varianten `<Plattform>-<Compiler>-<Architektur>` konvertiert.",
						"descriptionHint": "Uses of words 'platform', 'compiler', and 'architecture' are meant to be descriptive placeholders for literal values, so they should be translated, but without changing the surrounding `<>-<>` symbols. All other text inside `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"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": "Eine Liste der Dateien, die vor einer Includedatei in einer Übersetzungseinheit enthalten sein sollen.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"configurationProvider": {
						"description": "Die ID einer VS Code-Erweiterung, die IntelliSense-Konfigurationsinformationen für Quelldateien bereitstellen kann.",
						"type": "string"
					},
					"mergeConfigurations": {
						"markdownDescription": "Auf `true` festlegen, um `includePath`, `defines`, `forcedInclude` und `browse.path` mit den vom Konfigurationsanbieter empfangenen zusammenzuführen.",
						"descriptionHint": "{Locked=\"`true`\"} {Locked=\"`includePath`\"} {Locked=\"`defines`\"} {Locked=\"`forcedInclude`\"} {Locked=\"`browse.path`\"}",
						"type": "boolean"
					},
					"browse": {
						"type": "object",
						"properties": {
							"limitSymbolsToIncludedHeaders": {
								"markdownDescription": "Legen Sie diesen Wert auf `true` fest, um nur die Dateien zu verarbeiten, die direkt oder indirekt als Header enthalten sind. Legen Sie diesen Wert auf `false` fest, um alle Dateien unter den angegebenen Includepfaden zu verarbeiten.",
								"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
								"type": [
									"boolean",
									"string"
								]
							},
							"databaseFilename": {
								"description": "Pfad zur generierten Symboldatenbank. Wenn ein relativer Pfad angegeben wird, wird er relativ zum Standardspeicherort des Arbeitsbereichs erstellt.",
								"type": "string"
							},
							"path": {
								"markdownDescription": "Eine Liste der Pfade, die für die Indizierung und Analyse von Arbeitsbereichssymbolen verwendet werden sollen (z. B. bei \"Gehe zu Definition\" oder \"Alle Verweise suchen\"). Die Suche in diesen Pfaden ist standardmäßig rekursiv. Geben Sie `*` an, um eine nicht rekursive Suche durchzuführen. Beispiel: `${workspaceFolder}` durchsucht alle Unterverzeichnisse, `${workspaceFolder}/*` hingegen nicht.",
								"descriptionHint": "Text in '' is a command and should be translated in the same way that VS Code itself translates it. Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
								"type": "array",
								"items": {
									"type": "string"
								}
							}
						},
						"additionalProperties": false
					},
					"recursiveIncludes": {
						"type": "object",
						"properties": {
							"reduce": {
								"markdownDescription": "Legen Sie diese Option auf `always` fest, um die Anzahl der rekursiven Includepfade, die für IntelliSense bereitgestellt werden, immer auf die Pfade zu reduzieren, auf die derzeit von #include-Anweisungen verwiesen wird. Dazu müssen zuerst die Dateien analysiert werden, um zu bestimmen, welche Kopfzeilen eingeschlossen werden. Legen Sie diese Option auf `never` fest, um alle rekursiven Includepfade für IntelliSense bereitzustellen. Wenn Sie die Anzahl rekursiver Includepfade verringern, kann sich die Leistung von IntelliSense verbessern, wenn eine sehr große Anzahl rekursiver Includepfade betroffen ist. Wenn Sie die Anzahl rekursiver Includepfade nicht verringern, kann die Leistung von IntelliSense verbessert werden, da die Dateien nicht analysiert werden müssen, um zu bestimmen, welche Includepfade bereitgestellt werden sollen. Beim Wert `default` wird derzeit die Anzahl rekursiver Includepfade verringert, die für IntelliSense bereitgestellt werden.",
								"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
								"type": "string",
								"enum": [
									"always",
									"never",
									"default",
									"${default}"
								]
							},
							"priority": {
								"markdownDescription": "Die Priorität rekursiver Includepfade. Wenn sie auf `beforeSystemIncludes` festgelegt ist, werden die rekursiven Includepfade vor den systemseitigen Includepfaden durchsucht. Wenn sie auf `afterSystemIncludes` festgelegt ist, werden die rekursiven Includepfade nach den systemseitigen Includepfaden durchsucht. `beforeSystemIncludes` entspricht eher der Suchreihenfolge eines Compilers, während `afterSystemIncludes` zu einer verbesserten Leistung führen kann.",
								"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
								"type": "string",
								"enum": [
									"beforeSystemIncludes",
									"afterSystemIncludes",
									"${default}"
								]
							},
							"order": {
								"markdownDescription": "Die Reihenfolge, in der Unterverzeichnisse rekursiver Includepfade durchsucht werden.",
								"type": "string",
								"enum": [
									"depthFirst",
									"breadthFirst",
									"${default}"
								]
							}
						},
						"additionalProperties": false
					},
					"customConfigurationVariables": {
						"type": "object",
						"markdownDescription": "Benutzerdefinierte Variablen, die über den Befehl `${cpptools:activeConfigCustomVariable}` abgefragt werden können, um sie für die Eingabevariablen in `launch.json` oder `tasks.json` zu verwenden.",
						"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.",
						"patternProperties": {
							"(^.+$)": {
								"type": "string"
							}
						},
						"additionalProperties": false
					}
				},
				"additionalProperties": false
			}
		},
		"env": {
			"type": "object",
			"markdownDescription": "Benutzerdefinierte Variablen, die mithilfe der Syntax `${Variable}` oder `${env:Variable}` an einer beliebiger Stelle in dieser Datei wiederverwendet werden können.",
			"descriptionHint": "The word 'variable' within curly braces should be translated. The \"env\" should not be translated, and the capitalization, spacing, and punctuation (\"${:}\", including the ``) should be preserved.",
			"patternProperties": {
				"(?!^workspaceFolder$)(?!^workspaceRoot$)(?!^workspaceFolderBasename$)(?!^execPath$)(?!^pathSeparator$)(?!^default$)(^.+$)": {
					"oneOf": [
						{
							"type": "string"
						},
						{
							"type": "array",
							"items": {
								"type": "string"
							}
						}
					]
				}
			},
			"additionalProperties": false
		},
		"version": {
			"type": "integer",
			"description": "Version der Konfigurationsdatei. Diese Eigenschaft wird von der Erweiterung verwaltet und darf nicht geändert werden."
		},
		"enableConfigurationSquiggles": {
			"type": "boolean",
			"markdownDescription": "Steuert, ob die Erweiterung in `c_cpp_properties.json` erkannte Fehler meldet.",
			"descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered."
		}
	},
	"properties": {
		"configurations": {
			"$ref": "#/definitions/configurations"
		},
		"env": {
			"$ref": "#/definitions/env"
		},
		"version": {
			"$ref": "#/definitions/version"
		},
		"enableConfigurationSquiggles": {
			"$ref": "#/definitions/enableConfigurationSquiggles"
		}
	},
	"required": [
		"configurations",
		"version"
	],
	"additionalProperties": false
}