{
	"$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": "Аргументы компилятора для изменения используемых включений или определений, например `-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": "Версия стандарта языка C, используемая для IntelliSense. Примечание: стандарты GNU используются только для запроса определений GNU у установленного компилятора, а IntelliSense будет эмулировать эквивалентную версию стандарта C.",
						"type": "string",
						"enum": [
							"c89",
							"c99",
							"c11",
							"c17",
							"c23",
							"gnu89",
							"gnu99",
							"gnu11",
							"gnu17",
							"gnu23",
							"${default}"
						]
					},
					"cppStandard": {
						"description": "Версия стандарта языка C++, используемая для IntelliSense. Примечание: стандарты 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}` — не будет. Обычно системное содержимое не включается; вместо этого установите значение `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 SDK для использования в Windows, например `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": "Путь к файлу CONFIG, созданному системой Kconfig. Система 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`. Режимы IntelliSense, в которых указаны только варианты `<компилятор>-<архитектура>` (например, `gcc-x64`), являются устаревшими и автоматически преобразуются в варианты `<платформа>-<компилятор>-<архитектура>` на основе платформы узла.",
						"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": "Список файлов, которые должны быть включены перед любым файлом включений в единице трансляции.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"configurationProvider": {
						"description": "Идентификатор расширения VS Code, которое может предоставить данные конфигурации IntelliSense для исходных файлов.",
						"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` — все файлы по указанным путям для включений.",
								"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": "Список путей, используемых для индексирования и анализа символов рабочей области (для использования командами 'Go to Definition' (Перейти к определению), 'Find All References' (Найти все ссылки) и т. д.). Поиск по этим путям по умолчанию является рекурсивным. Укажите `*`, чтобы использовать нерекурсивный поиск. Например, если указать `${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
}