{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/clang-tidy/latest.json",
  "x-lintel": {
    "source": "https://www.schemastore.org/clang-tidy.json",
    "sourceSha256": "7f455a56405ae43220e7ae90de922b30da247a1b432e35b6954f21f18d289cab",
    "fileMatch": [
      ".clang-tidy",
      "clang-tidy.yml",
      "clang-tidy.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "CheckOptions": {
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "$comment": "DEPRECATED. clang-tidy versions 14.0.0 and below accept this array form.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        }
      ]
    },
    "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"
    }
  },
  "additionalProperties": true
}
