{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/clang-tidy.json",
  "additionalProperties": true,
  "properties": {
    "CheckOptions": {
      "oneOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "$comment": "DEPRECATED. clang-tidy versions 14.0.0 and below accept this array form.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          }
        }
      ]
    },
    "Checks": {
      "description": "Comma-separated list of globs with optional '-' prefix. Globs are processed in order of  appearance in the list. Globs without '-' prefix add checks with matching names to the set, globs with the '-' prefix remove checks with matching names from the set of enabled checks.",
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    "ExcludeHeaderFilterRegex": {
      "description": "Regular expression matching the names of the headers to exclude diagnostics from. Diagnostics from the main file of each translation unit are always displayed. Must be used together with --header-filter. Can be used together with -line-filter.",
      "type": "string"
    },
    "ExtraArgs": {
      "description": "Additional argument to append to the compiler command line",
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    "ExtraArgsBefore": {
      "description": "Additional argument to prepend to the compiler command line",
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    "FormatStyle": {
      "description": "Style for formatting code around applied fixes.",
      "oneOf": [
        {
          "enum": [
            "none",
            "file",
            "llvm",
            "google",
            "webkit",
            "mozilla",
            "chromium",
            "microsoft",
            "gnu"
          ],
          "type": "string"
        },
        {
          "pattern": "\\{.*\\}",
          "type": "string"
        }
      ]
    },
    "HeaderFileExtensions": {
      "description": "File extensions to consider to determine if a given diagnostic is located in a header file.",
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    "HeaderFilterRegex": {
      "description": "Regular expression matching the names of the headers to output diagnostics from. Diagnostics from the main file of each translation unit are always displayed. Can be used together with -line-filter.",
      "type": "string"
    },
    "ImplementationFileExtensions": {
      "description": "File extensions to consider to determine if a given diagnostic is located in an implementation file.",
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    "InheritParentConfig": {
      "description": "If this option is true in a config file, the configuration file in the parent directory (if any exists) will be taken and the current config file will be applied on top of the parent one.",
      "type": "boolean"
    },
    "SystemHeaders": {
      "description": "Display the errors from system headers. This option overrides the 'SystemHeaders' option in .clang-tidy file, if any.",
      "type": "boolean"
    },
    "UseColor": {
      "description": "Use colors in diagnostics. If not set, colors will be used if the terminal connected to standard output supports colors.",
      "type": "boolean"
    },
    "User": {
      "description": "Specifies the name or e-mail of the user running clang-tidy. This option is used, for example, to place the correct user name in TODO() comments in the relevant checks.",
      "type": "string"
    },
    "WarningsAsErrors": {
      "description": "Upgrades warnings to errors.",
      "type": "string"
    }
  },
  "type": "object"
}
