{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/prettierrc-json/versions/1.8.2.json",
  "title": "Schema for .prettierrc",
  "x-lintel": {
    "source": "https://www.schemastore.org/prettierrc-1.8.2.json",
    "sourceSha256": "2cdcc8fa140497ff31e4b248d84c510c51b1b683e9684bbef15a6eaa88da6568",
    "fileMatch": [
      ".prettierrc",
      ".prettierrc.json",
      ".prettierrc.yml",
      ".prettierrc.yaml"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "id": "https://json.schemastore.org/prettierrc-1.8.2.json",
  "allOf": [
    {
      "$ref": "#/$defs/optionsDefinition"
    },
    {
      "$ref": "#/$defs/overridesDefinition"
    }
  ],
  "$defs": {
    "optionsDefinition": {
      "properties": {
        "arrowParens": {
          "default": "avoid",
          "description": "Include parentheses around a sole arrow function parameter.",
          "enum": [
            "avoid",
            "always"
          ],
          "type": "string"
        },
        "bracketSpacing": {
          "default": true,
          "description": "Print spaces between brackets in object literals.",
          "type": "boolean"
        },
        "insertPragma": {
          "default": false,
          "description": "Insert @format pragma into file's first docblock comment.",
          "type": "boolean"
        },
        "jsxBracketSameLine": {
          "default": false,
          "description": "Put the > of a multi-line JSX element at the end of the last line instead of being alone on the next line.",
          "type": "boolean"
        },
        "parser": {
          "enum": [
            "babylon",
            "flow",
            "typescript",
            "postcss",
            "json",
            "graphql",
            "markdown"
          ],
          "description": "Specify which parser to use.",
          "default": "babylon",
          "type": "string"
        },
        "printWidth": {
          "default": 80,
          "description": "Specify the line length that the printer will wrap on.",
          "type": "integer"
        },
        "proseWrap": {
          "default": "preserve",
          "description": "How to wrap prose.",
          "enum": [
            "always",
            "never",
            "preserve"
          ],
          "type": "string"
        },
        "requirePragma": {
          "default": false,
          "description": "Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted.",
          "type": "boolean"
        },
        "semi": {
          "default": true,
          "description": "Print semicolons at the ends of statements.",
          "type": "boolean"
        },
        "singleQuote": {
          "default": false,
          "description": "Use single quotes instead of double quotes.",
          "type": "boolean"
        },
        "tabWidth": {
          "default": 2,
          "description": "Specify the number of spaces per indentation-level.",
          "type": "integer"
        },
        "trailingComma": {
          "default": "none",
          "description": "Print trailing commas wherever possible.",
          "enum": [
            "none",
            "all",
            "es5"
          ],
          "type": "string"
        },
        "useTabs": {
          "default": false,
          "description": "Indent lines with tabs instead of spaces.",
          "type": "boolean"
        }
      }
    },
    "overridesDefinition": {
      "properties": {
        "overrides": {
          "description": "Provide a list of patterns to override prettier configuration.",
          "items": {
            "required": [
              "files"
            ],
            "properties": {
              "files": {
                "description": "Include these files in this override.",
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                ]
              },
              "excludeFiles": {
                "description": "Exclude these files from this override.",
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                ]
              },
              "options": {
                "$ref": "#/$defs/optionsDefinition",
                "type": "object",
                "description": "The options to apply for this override."
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      }
    }
  }
}
