{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "allOf": [
    {
      "$ref": "#/definitions/optionsDefinition"
    },
    {
      "$ref": "#/definitions/overridesDefinition"
    }
  ],
  "definitions": {
    "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": {
                "type": "object",
                "description": "The options to apply for this override.",
                "$ref": "#/definitions/optionsDefinition"
              }
            },
            "additionalProperties": false,
            "type": "object"
          },
          "type": "array"
        }
      }
    }
  },
  "id": "https://json.schemastore.org/prettierrc-1.8.2.json",
  "title": "Schema for .prettierrc",
  "type": "object"
}
