{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "definitions": {
        "configurations": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "name"
                ],
                "properties": {
                    "name": {
                        "description": "Platform name. Mac, Linux, or Win32 are the defaults unless a custom platform is added.",
                        "type": "string"
                    },
                    "includePath": {
                        "description": "A list of paths for the IntelliSense engine to use while searching for included headers. Searching on these paths is not recursive.",
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "defines": {
                        "description": "A list of preprocessor definitions for the IntelliSense engine to use while parsing files. Optionally, use = to set a value, e.g. VERSION=1.",
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "intelliSenseMode": {
                        "type": "string",
                        "enum": [
                            "msvc-x64",
                            "clang-x64"
                        ],
                        "description": "If set, it overrides the default mode used by the IntelliSense engine. Windows defaults to msvc and Linux/Mac default to clang."
                    },
                    "browse": {
                        "type": "object",
                        "properties": {
                            "limitSymbolsToIncludedHeaders": {
                                "description": "true to process only those files directly or indirectly included as headers, false to process all files under the specified include paths",
                                "type": "boolean"
                            },
                            "databaseFilename": {
                                "description": "Path to the generated symbol database. If a relative path is specified, it will be made relative to the workspace's default storage location.",
                                "type": "string"
                            },
                            "path": {
                                "description": "A list of paths for the tag parser to use while searching for included headers. Searching on these paths is recursive by default. Specify '*' to indicate non-recursive search. For example: '/usr/include' will search through all subdirectories while '/usr/include/*' will not.",
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "properties": {
        "configurations": {
            "$ref": "#/definitions/configurations"
        }
    },
    "required": [
        "configurations"
    ]
}