{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"definitions": {
		"configurations": {
			"type": "array",
			"items": {
				"type": "object",
				"required": [
					"name"
				],
				"properties": {
					"name": {
						"markdownDescription": "Identificador de configuração. `Mac`,` Linux` e `Win32` são identificadores especiais para configurações que serão selecionadas automaticamente nessas plataformas, mas o identificador pode ser qualquer coisa.",
						"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": "Caminho completo do compilador usado, por exemplo, `/usr/bin/gcc`, para habilitar um IntelliSense mais preciso.",
						"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": "Argumentos do compilador para modificar as inclusões ou definições usadas, por exemplo `-nostdinc++`, `-m32`, etc. Argumentos que usam argumentos adicionais delimitados por espaço devem ser inseridos como argumentos separados na matriz, por exemplo para `--sysroot <arg>` use `\"--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": "Versão do padrão da linguagem C a ser usada para o IntelliSense. Observação: os padrões GNU são usados apenas para consultar o compilador de conjunto para obter definições GNU e o IntelliSense emulará a versão padrão do C equivalente.",
						"type": "string",
						"enum": [
							"c89",
							"c99",
							"c11",
							"c17",
							"c23",
							"gnu89",
							"gnu99",
							"gnu11",
							"gnu17",
							"gnu23",
							"${default}"
						]
					},
					"cppStandard": {
						"description": "Versão do padrão da linguagem C++ a ser usada para o IntelliSense. Observação: os padrões GNU são usados apenas para consultar o compilador de conjunto para obter definições de GNU e o IntelliSense emulará a versão do C++ padrão equivalente.",
						"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": "Caminho completo ou uma lista de caminhos completos para arquivos `compile_commands.json` para o espaço de trabalho.",
						"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": "Uma lista de caminhos para o mecanismo IntelliSense usar ao pesquisar cabeçalhos incluídos. A pesquisa nesses caminhos não é recursiva. Especifique `**` para indicar pesquisa recursiva. Por exemplo, `${workspaceFolder}/**` irá pesquisar em todos os subdiretórios enquanto `${workspaceFolder}` não irá. Normalmente, isso não deve incluir inclusões de sistema; em vez disso, defina `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": "Uma lista de caminhos para o mecanismo IntelliSense usar durante a pesquisa de cabeçalhos incluídos nas estruturas do Mac. Suportado apenas na configuração do Mac.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"windowsSdkVersion": {
						"markdownDescription": "A versão do SDK do Windows inclui o caminho a ser usado no Windows, por exemplo, `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": "Um caminho para um arquivo .config criado pelo sistema Kconfig. O sistema Kconfig gera um arquivo com todas as definições para construir um projeto. Exemplos de projetos que utilizam o sistema Kconfig são o Kernel Linux e o NuttX RTOS.",
						"type": "string"
					},
					"defines": {
						"markdownDescription": "Uma lista de definições de pré-processador para o mecanismo IntelliSense usar durante a análise de arquivos. Opcionalmente, use `=` para definir um valor, por exemplo `VERSÃO=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": "O modo IntelliSense para usar esse mapeamento para uma plataforma e variante de arquitetura do MSVC, gcc ou Clang. Se não for definido ou se for definido como `${default}`, a extensão irá escolher o padrão para aquela plataforma. O padrão do Windows é `windows-msvc-x64`, o padrão do Linux é` linux-gcc-x64`, e o padrão do macOS é `macos-clang-x64`. Os modos IntelliSense que especificam apenas variantes `<compiler>-<architecture>` (por exemplo, `gcc-x64`) são modos legados e são convertidos automaticamente para as variantes`<platform>-<compiler>-<architecture>`com base no host plataforma.",
						"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": "Uma lista de arquivos que devem ser incluídos antes de qualquer arquivo de inclusão em uma unidade de tradução.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"configurationProvider": {
						"description": "A ID de uma extensão do VS Code que pode fornecer informações de configuração do IntelliSense para arquivos de origem.",
						"type": "string"
					},
					"mergeConfigurations": {
						"markdownDescription": "Defina como `true` para mesclar `includePath`, `defines`, `forcedInclude` e `browse.path` com os recebidos do provedor de configuração.",
						"descriptionHint": "{Locked=\"`true`\"} {Locked=\"`includePath`\"} {Locked=\"`defines`\"} {Locked=\"`forcedInclude`\"} {Locked=\"`browse.path`\"}",
						"type": "boolean"
					},
					"browse": {
						"type": "object",
						"properties": {
							"limitSymbolsToIncludedHeaders": {
								"markdownDescription": "Defina como `true` para processar somente os arquivos incluídos direta ou indiretamente como cabeçalhos. Defina como `false` para processar todos os arquivos sob os caminhos de inclusão especificados.",
								"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": "Caminho para o banco de dados de símbolo gerado. Se um caminho relativo for especificado, ele será criado em relação ao local de armazenamento padrão do workspace.",
								"type": "string"
							},
							"path": {
								"markdownDescription": "Uma lista de caminhos a serem usados ​​para indexação e análise de símbolos do espaço de trabalho (para uso por 'Ir para a definição', 'Localizar Tudo todas as referências', etc.). A pesquisa nesses caminhos é recursiva por padrão. Especifique `*` para indicar pesquisa não recursiva. Por exemplo, `${workspaceFolder}` irá pesquisar em todos os subdiretórios enquanto `${workspaceFolder}/*` não irá.",
								"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": "Defina como `always` para sempre reduzir o número de caminhos de inclusão recursivos fornecidos ao IntelliSense apenas para os caminhos referenciados atualmente por instruções #include. Isso requer primeiro a análise de arquivos para determinar quais cabeçalhos estão incluídos. Defina como `never` para fornecer todos os caminhos de inclusão recursivos para o IntelliSense. Reduzir o número de caminhos de inclusão recursivos pode melhorar o desempenho do IntelliSense quando um número muito grande de caminhos de inclusão recursivos está envolvido. Não reduzir o número de caminhos de inclusão recursivos pode melhorar o desempenho do IntelliSense, evitando a necessidade de analisar arquivos para determinar quais caminhos de inclusão fornecer. O valor `default` atualmente é para reduzir o número de caminhos de inclusão recursivos fornecidos ao 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": "A prioridade dos caminhos de inclusão recursivo. Se definido como `beforeSystemIncludes`, os caminhos de inclusão recursivos serão pesquisados antes que o sistema inclua caminhos. Se definido como `afterSystemIncludes`, os caminhos de inclusão recursivos serão pesquisados depois que o sistema incluir caminhos. `beforeSystemIncludes` refletiria mais de perto a ordem de pesquisa de um compilador, enquanto `afterSystemIncludes` pode resultar em desempenho aprimorado.",
								"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": "A ordem na qual os subdiretórios de inserções recursivas são pesquisados.",
								"type": "string",
								"enum": [
									"depthFirst",
									"breadthFirst",
									"${default}"
								]
							}
						},
						"additionalProperties": false
					},
					"customConfigurationVariables": {
						"type": "object",
						"markdownDescription": "Variáveis ​​personalizadas que podem ser consultadas através do comando `${cpptools: activeConfigCustomVariable}` para usar para as variáveis ​​de entrada em `launch.json` ou` 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": "Variáveis ​​personalizadas que podem ser reutilizadas em qualquer lugar neste arquivo usando a sintaxe `${variável}` ou `${env:variável}`.",
			"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": "Versão do arquivo de configuração. Esta propriedade é gerenciada pela extensão. Não a altere."
		},
		"enableConfigurationSquiggles": {
			"type": "boolean",
			"markdownDescription": "Controla se a extensão reportará erros detectados em `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
}