{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://dprint.opus131.com/dprint.schema.json",
  "title": "dprint configuration",
  "description": "Aggregate schema for dprint.json / .dprint.json / dprint.jsonc. Plugin $refs: malva and markdown resolve to self-hosted fork schemas on dprint.opus131.com; json and typescript track upstream. Canonical, mutable URL — bump a plugin ref here and every consumer follows.",
  "type": "object",
  "properties": {
    "extends": {
      "description": "Configurations to extend.",
      "anyOf": [
        {
          "description": "A file path or url to a configuration file to extend.",
          "type": "string"
        },
        {
          "description": "A collection of file paths and/or urls to configuration files to extend.",
          "type": "array",
          "items": { "type": "string" }
        }
      ]
    },
    "lineWidth": {
      "description": "The width of a line the printer will try to stay under. Note that the printer may exceed this width in certain cases.",
      "type": "number"
    },
    "indentWidth": {
      "description": "The number of characters for an indent.",
      "type": "number"
    },
    "useTabs": {
      "description": "Whether to use tabs (true) or spaces (false) for indentation.",
      "type": "boolean"
    },
    "newLineKind": {
      "description": "The kind of newline to use.",
      "type": "string",
      "oneOf": [
        {
          "const": "auto",
          "description": "For each file, uses the newline kind found at the end of the last line."
        },
        { "const": "crlf", "description": "Uses carriage return, line feed." },
        { "const": "lf", "description": "Uses line feed." },
        {
          "const": "system",
          "description": "Uses the system standard (ex. crlf on Windows)."
        }
      ]
    },
    "includes": {
      "description": "Array of patterns (globs) to use to find files to format.",
      "type": "array",
      "items": { "type": "string" }
    },
    "excludes": {
      "description": "Array of patterns (globs) to exclude files or directories to format.",
      "type": "array",
      "items": { "type": "string" }
    },
    "plugins": {
      "description": "Array of plugin URLs to format files.",
      "type": "array",
      "items": { "type": "string" }
    },
    "incremental": {
      "description": "Whether to format files only when they change.",
      "type": "boolean",
      "default": true
    },
    "json": {
      "$ref": "https://plugins.dprint.dev/dprint/dprint-plugin-json/latest/schema.json"
    },
    "malva": {
      "$ref": "https://dprint.opus131.com/css-v0.15.3-mk.schema.json"
    },
    "markdown": {
      "$ref": "https://dprint.opus131.com/markdown-v0.22.1-mk.schema.json"
    },
    "typescript": {
      "$ref": "https://plugins.dprint.dev/dprint/dprint-plugin-typescript/latest/schema.json"
    }
  },
  "additionalProperties": true
}
