{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"definitions": {
		"configurations": {
			"type": "array",
			"items": {
				"type": "object",
				"required": [
					"name"
				],
				"properties": {
					"name": {
						"markdownDescription": "組態識別碼。`Mac`、`Linux` 及 `Win32` 是會在這些平台上自動選取之組態的特殊識別碼，但識別碼可以是任何內容。",
						"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": "所用編譯器的完整路徑，例如 `/usr/bin/gcc`，讓 IntelliSense 更準確。",
						"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": "用來修改所用 include 或 define 的編譯器引數，例如 `-nostdinc++`、`-m32` 等。採用其他空格分隔引數的引數應在陣列中輸入為個別的引數，例如，針對 `--sysroot <arg>` 使用 `\"--sysroot\", \"<arg>\"`。",
						"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": "用於 IntelliSense 的 C 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義，而 IntelliSense 將會模擬相同的 C 標準版本。",
						"type": "string",
						"enum": [
							"c89",
							"c99",
							"c11",
							"c17",
							"c23",
							"gnu89",
							"gnu99",
							"gnu11",
							"gnu17",
							"gnu23",
							"${default}"
						]
					},
					"cppStandard": {
						"description": "用於 IntelliSense 的 C++ 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義，而 IntelliSense 將會模擬相同的 C++ 標準版本。",
						"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": "工作區 `compile_commands.json` 檔案的完整路徑或完整路徑清單。",
						"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": "IntelliSense 引擎在搜尋包含的標頭時使用的路徑清單。在這些路徑上的搜尋不會遞迴。請指定 `**` 以表示遞迴搜尋。例如 `${workspaceFolder}/**` 會搜尋所有子目錄，而 `${workspaceFolder}` 不會。此路徑通常不應包含系統 include; 請改為設定 `C_Cpp.default.compilerPath`。",
						"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": "供 IntelliSense 引擎在 Mac 架構中搜尋包含的標頭時使用的路徑清單。僅支援 Mac 設定。",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"windowsSdkVersion": {
						"markdownDescription": "要在 Windows 上使用的 Windows SDK 包含路徑版本，例如 `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": "Kconfig 系統所建立之 .config 檔案的路徑。Kconfig 系統會產生具有建置專案之所有定義的檔案。使用 Kconfig 系統的專案範例為 Linux 核心與 NuttX RTOS。",
						"type": "string"
					},
					"defines": {
						"markdownDescription": "剖析檔案時，IntelliSense 引擎要使用的前置處理器定義清單。您可使用 `=` 來設定值，例如 `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": "要使用的 IntelliSense 模式 (對應到 MSVC、gcc 或 Clang 的平台及架構變體)。如果未設定或設為 `${default}`，延伸模組會選擇該平台的預設。Windows 預設為 `windows-msvc-x64`、Linux 預設為 `linux-gcc-x64`、macOS 預設為 `macos-clang-x64`。僅指定 `<編譯器>-<結構>` 變體 (例如 `gcc-x64`) 的 IntelliSense 模式即為舊版模式，會依據主機平台自動轉換為 `<平台>-<編譯器>-<結構>` 變體。",
						"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": "應包含在編譯單位中任何 include 檔案之前的檔案清單。",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"configurationProvider": {
						"description": "提供原始程式檔 IntelliSense 組態資訊的 VS Code 延伸模組識別碼。",
						"type": "string"
					},
					"mergeConfigurations": {
						"markdownDescription": "設定為 `true` 以將 `includePath`、`defines`、`forcedInclude` 和 `browse.path` 與從設定提供者收到的項目合併。",
						"descriptionHint": "{Locked=\"`true`\"} {Locked=\"`includePath`\"} {Locked=\"`defines`\"} {Locked=\"`forcedInclude`\"} {Locked=\"`browse.path`\"}",
						"type": "boolean"
					},
					"browse": {
						"type": "object",
						"properties": {
							"limitSymbolsToIncludedHeaders": {
								"markdownDescription": "設為 `true`，就會只處理直接或間接以標頭形式包含的檔案。設為 `false`，則會處理位於指定 include 路徑下的所有檔案。",
								"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": "產生的符號資料庫路徑。如果指定了相對路徑，就會是相對於工作區預設儲存位置的路徑。",
								"type": "string"
							},
							"path": {
								"markdownDescription": "用來為工作區符號進行索引編製與剖析的路徑清單 (供 [移至定義]、[尋找所有參考] 等使用)。根據預設，會以遞迴方式搜尋這些路徑。指定 `*` 表示非遞迴搜尋。例如，`${workspaceFolder}` 將在所有子目錄中搜尋，`${workspaceFolder}/*` 則不會。",
								"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": "設定為 `always`，可使 IntelliSense 始終僅提供目前由 #include 陳述式參考的遞迴包含路徑。這需要先剖析檔案，以確定包含哪些標頭。設定為 `never` 以將所有遞迴包含路徑提供給 IntelliSense。當涉及非常大量的遞迴包含路徑時，減少遞迴包含路徑數目可能會改善 IntelliSense 的效能。不減少遞迴包含路徑的數量，可避免需要剖析檔案以決定要提供哪些包含路徑，從而 IntelliSense 效能。目前的 `default` 值會減少 IntelliSense 提供的遞迴包含路徑數量。",
								"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": "遞迴包含路徑的優先順序。如果設定為 `beforeSystemIncludes`，則會在系統包含路徑之前搜尋遞迴包含路徑。如果設定為 `afterSystemIncludes`，系統會在包含路徑之後搜尋遞迴包含路徑。`beforeSystemIncludes` 會更密切地反映編譯器的搜尋順序，而 `afterSystemIncludes` 可能會改善效能。",
								"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": "搜尋遞迴包含之子目錄的順序。",
								"type": "string",
								"enum": [
									"depthFirst",
									"breadthFirst",
									"${default}"
								]
							}
						},
						"additionalProperties": false
					},
					"customConfigurationVariables": {
						"type": "object",
						"markdownDescription": "可透過命令 `${cpptools:activeConfigCustomVariable}` 查詢的自訂變數，用於 `launch.json` 或 `tasks.json` 的輸入變數。",
						"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": "可以透過使用 `${變數}` 或 `${env:變數}` 語法，在此檔案中任何地方重複使用的自訂變數。",
			"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": "組態檔版本。此屬性受延伸模組管理，請勿變更。"
		},
		"enableConfigurationSquiggles": {
			"type": "boolean",
			"markdownDescription": "控制延伸模組是否會回報 `c_cpp_properties.json` 中偵測到的錯誤。",
			"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
}