{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"definitions": {
		"configurations": {
			"type": "array",
			"items": {
				"type": "object",
				"required": [
					"name"
				],
				"properties": {
					"name": {
						"markdownDescription": "Identificatore configurazione. `Mac`, `Linux` e `Win32` sono identificatori speciali delle configurazioni che verranno selezionati automaticamente in tali piattaforme, ma come identificatore è possibile specificarne uno qualsiasi.",
						"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": "Percorso completo del compilatore usato, ad esempio `/usr/bin/gcc`, per abilitare una versione più accurata di 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": "Argomenti del compilatore per modificare le inclusioni o le definizioni usate, ad esempio `-nostdinc++`, `-m32` e così via. Gli argomenti che utilizzano argomenti delimitati da spazi aggiuntivi devono essere immessi come argomenti separati nella matrice, ad esempio per `--sysroot <arg>` usare `\"--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": "Versione dello standard del linguaggio C da usare per IntelliSense. Nota: gli standard GNU vengono usati solo per eseguire query sul compilatore impostato per ottenere le definizioni di GNU. IntelliSense emulerà la versione dello standard di C equivalente.",
						"type": "string",
						"enum": [
							"c89",
							"c99",
							"c11",
							"c17",
							"c23",
							"gnu89",
							"gnu99",
							"gnu11",
							"gnu17",
							"gnu23",
							"${default}"
						]
					},
					"cppStandard": {
						"description": "Versione dello standard del linguaggio C++ da usare per IntelliSense. Nota: gli standard GNU vengono usati solo per eseguire query sul compilatore impostato per ottenere le definizioni di GNU. IntelliSense emulerà la versione dello standard di C++ 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": "Percorso completo o elenco di percorsi completi dei file `compile_commands.json` per l'area di lavoro.",
						"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": "Elenco di percorsi che il motore IntelliSense usa durante la ricerca delle intestazioni incluse. La ricerca in questi percorsi non è ricorsiva. Specificare `**` per indicare la ricerca ricorsiva. Ad esempio: con `${workspaceFolder}/**` la ricerca verrà estesa a tutte le sottodirectory, mentre con `${workspaceFolder}` sarà limitata a quella corrente. In genere, ciò non deve includere le inclusioni di sistema, pertanto impostare `#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": "Elenco di percorsi che il motore IntelliSense userà durante la ricerca delle intestazioni incluse da framework Mac. Supportato solo nella configurazione Mac.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"windowsSdkVersion": {
						"markdownDescription": "Versione del percorso di inclusione di Windows SDK da usare in Windows, ad esempio `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": "Il percorso a un file .config creato dal sistema Kconfig. Il sistema Kconfig genera un file con tutte le define per compilare un progetto. Esempi di progetti che usano il sistema Kconfig sono Kernel Linux e NuttX RTOS.",
						"type": "string"
					},
					"defines": {
						"markdownDescription": "Elenco di definizioni del preprocessore che il motore IntelliSense usa durante l'analisi dei file. In modo facoltativo, usare `=` per impostare un valore, ad esempio `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": "Modalità IntelliSense da usare per eseguire il mapping a una variante della piattaforma e dell'architettura di MSVC, gcc o Clang. Se non è impostata o se è impostata su `${default}`, sarà l'estensione a scegliere il valore predefinito per tale piattaforma. L'impostazione predefinita di Windows è `windows-msvc-x64`, quella di Linux è `linux-gcc-x64` e quella di macOS è `macos-clang-x64`. Le modalità IntelliSense che specificano solo varianti `<compiler>-<architecture>` (ad esempio `gcc-x64`) sono modalità legacy e vengono convertite automaticamente nelle varianti `<platform>-<compiler>-<architecture>` in base alla piattaforma host.",
						"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": "Elenco di file che devono essere inclusi prima di qualsiasi file include in un'unità di conversione.",
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"configurationProvider": {
						"description": "ID di un'estensione VS Code che può fornire informazioni di configurazione IntelliSense per i file di origine.",
						"type": "string"
					},
					"mergeConfigurations": {
						"markdownDescription": "Impostare su `true` per unire `includePath`, `defines`, `forcedInclude` e `browse.path` con quelli ricevuti dal provider di configurazione.",
						"descriptionHint": "{Locked=\"`true`\"} {Locked=\"`includePath`\"} {Locked=\"`defines`\"} {Locked=\"`forcedInclude`\"} {Locked=\"`browse.path`\"}",
						"type": "boolean"
					},
					"browse": {
						"type": "object",
						"properties": {
							"limitSymbolsToIncludedHeaders": {
								"markdownDescription": "Impostare su `true` per elaborare solo i file inclusi direttamente o indirettamente come intestazioni, su `false` per elaborare tutti i file nei percorsi di inclusione specificati.",
								"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": "Percorso del database dei simboli generato. Se viene specificato un percorso relativo, sarà relativo al percorso di archiviazione predefinito dell'area di lavoro.",
								"type": "string"
							},
							"path": {
								"markdownDescription": "Elenco di percorsi da usare per l'indicizzazione e l'analisi dei simboli dell'area di lavoro (usati da 'Vai alla definizione', 'Trova tutti i riferimenti' e così via). Per impostazione predefinita, la ricerca in questi percorsi è ricorsiva. Specificare `*` per indicare la ricerca non ricorsiva. Ad esempio, con `${workspaceFolder}` la ricerca verrà estesa a tutte le sottodirectory, mentre con `${workspaceFolder}/*` sarà limitata a quella corrente.",
								"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": "Imposta su `always` per ridurre sempre il numero di percorsi di inclusione ricorsivi forniti a IntelliSense, limitandoli solo ai percorsi attualmente referenziati da istruzioni #include. Per determinare quali intestazioni sono incluse, è necessario prima analizzare i file. Imposta su `never` per fornire tutti i percorsi di inclusione ricorsivi a IntelliSense. La riduzione del numero di percorsi di inclusione ricorsivi può migliorare le prestazioni di IntelliSense in caso di un numero molto elevato di percorsi di inclusione ricorsivi. Non ridurre il numero di percorsi di inclusione ricorsivi può migliorare le prestazioni di IntelliSense evitando la necessità di analizzare i file per determinare quali percorsi di inclusione fornire. Il valore `default` attualmente consente di ridurre il numero di percorsi di inclusione ricorsivi forniti a 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": "La priorità dei percorsi di inclusione ricorsivi. Se impostato su `beforeSystemIncludes`, i percorsi di inclusione ricorsivi verranno cercati prima dei percorsi di inclusione di sistema. Se impostato su `afterSystemIncludes`, i percorsi di inclusione ricorsivi verranno cercati dopo i percorsi di inclusione di sistema. `beforeSystemIncludes` rifletterebbe più accuratamente l'ordine di ricerca di un compilatore, mentre `afterSystemIncludes` potrebbe migliorare le prestazioni.",
								"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": "L'ordine in cui vengono cercate le sottodirectory dei percorsi di inclusione ricorsivi.",
								"type": "string",
								"enum": [
									"depthFirst",
									"breadthFirst",
									"${default}"
								]
							}
						},
						"additionalProperties": false
					},
					"customConfigurationVariables": {
						"type": "object",
						"markdownDescription": "Variabili personalizzate su cui è possibile eseguire query tramite il comando `${cpptools:activeConfigCustomVariable}` da usare per le variabili di input in `launch.json` o `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": "Variabili personalizzate che è possibile riutilizzare in qualsiasi punto del file usando la sintassi `${variabile}` o `${env:variabile}`.",
			"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": "Versione del file di configurazione. Questa proprietà è gestita dall'estensione. Non modificarla."
		},
		"enableConfigurationSquiggles": {
			"type": "boolean",
			"markdownDescription": "Controlla se l'estensione segnala errori rilevati in `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
}