{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/dprint-json/latest.json",
  "title": "dprint configuration file",
  "description": "Schema for a dprint configuration file.",
  "x-lintel": {
    "source": "https://dprint.dev/schemas/v0.json",
    "sourceSha256": "931e019fde73df1d55821f3cf14e04a27dd5f7fa752c7a5967670e5c04f1ae11",
    "fileMatch": [
      "dprint.json",
      "dprint.jsonc",
      ".dprint.json",
      ".dprint.jsonc"
    ],
    "parsers": [
      "json",
      "jsonc"
    ]
  },
  "type": "object",
  "properties": {
    "$schema": {
      "description": "The JSON schema reference. Normally you shouldn't bother to provide this as the dprint vscode editor extension will handle constructing the schema for you based on the plugins provided.",
      "type": "string"
    },
    "incremental": {
      "description": "Whether to format files only when they change.",
      "type": "boolean",
      "default": true
    },
    "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"
      }
    }
  },
  "allowTrailingCommas": true,
  "additionalProperties": {
    "description": "Plugin configuration.",
    "type": "object"
  }
}
