{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/micro-editor-syntax/latest.json",
  "title": "syntax",
  "description": "A syntax\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-files>",
  "x-lintel": {
    "source": "https://www.schemastore.org/micro-syntax.json",
    "sourceSha256": "0288d3fd8ed5f6bfd87fa7b6cf4e5631eb12fb1884be2c9b25d72d0c29d0e1c7",
    "fileMatch": [
      "**/micro/runtime/syntax/*.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "filetype": {
      "description": "A file type\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#filetype-definition>",
      "type": "string",
      "minLength": 1,
      "examples": [
        "go"
      ]
    },
    "detect": {
      "title": "detection options",
      "description": "Detection options\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#detect-definition>",
      "type": "object",
      "properties": {
        "filename": {
          "description": "A file name\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#detect-definition>",
          "type": "string",
          "minLength": 1,
          "examples": [
            "\\.go$"
          ]
        },
        "header": {
          "description": "A file header\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#detect-definition>",
          "type": "string",
          "minLength": 1,
          "examples": [
            "%YAML"
          ]
        }
      },
      "additionalProperties": false
    },
    "rules": {
      "$ref": "#/$defs/rules",
      "title": "rule"
    }
  },
  "$defs": {
    "string-or-region": {
      "oneOf": [
        {
          "title": "rule",
          "type": "string",
          "minLength": 1
        },
        {
          "type": "object",
          "properties": {
            "start": {
              "description": "A region start\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>",
              "type": "string",
              "minLength": 1,
              "examples": [
                "//"
              ]
            },
            "end": {
              "description": "A region end\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>",
              "type": "string",
              "minLength": 1,
              "examples": [
                "$"
              ]
            },
            "skip": {
              "description": "Ignored region sequences\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>",
              "type": "string",
              "minLength": 1,
              "examples": [
                "\\\\."
              ]
            },
            "rules": {
              "$ref": "#/$defs/rules"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "rules": {
      "description": "Rules\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>",
      "type": "array",
      "uniqueItems": true,
      "items": {
        "description": "A rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>",
        "type": "object",
        "properties": {
          "comment": {
            "$ref": "#/$defs/string-or-region",
            "title": "comment rule region",
            "description": "A comment rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "comment.line": {
            "$ref": "#/$defs/string-or-region",
            "title": "line comment rule region",
            "description": "A line comment rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "comment.block": {
            "$ref": "#/$defs/string-or-region",
            "title": "block comment rule region",
            "description": "A block comment rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier": {
            "$ref": "#/$defs/string-or-region",
            "title": "identifier rule region",
            "description": "An identifier rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.builtin": {
            "$ref": "#/$defs/string-or-region",
            "title": "builtin identifier rule region",
            "description": "A builtin identifier rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.type": {
            "$ref": "#/$defs/string-or-region",
            "title": "type identifier rule region",
            "description": "A type rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.type.builtin": {
            "$ref": "#/$defs/string-or-region",
            "title": "builtin type identifier rule region",
            "description": "A builtin type rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.callable": {
            "$ref": "#/$defs/string-or-region",
            "title": "callable identifier rule region",
            "description": "A callable identifier rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.callable.builtin": {
            "$ref": "#/$defs/string-or-region",
            "title": "builtin callable identifier rule region",
            "description": "A builtin callable identifier rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.macro": {
            "$ref": "#/$defs/string-or-region",
            "title": "macro identifier rule region",
            "description": "A macro rule\nAlso used for functions\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.macro.builtin": {
            "$ref": "#/$defs/string-or-region",
            "title": "builtin macro identifier rule region",
            "description": "A builtin macro rule\nAlso used for functions\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.var": {
            "$ref": "#/$defs/string-or-region",
            "title": "variable identifier rule region",
            "description": "A variable identifier rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.var.builtin": {
            "$ref": "#/$defs/string-or-region",
            "title": "builtin variable identifier rule region",
            "description": "A builtin variable identifier rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant": {
            "$ref": "#/$defs/string-or-region",
            "title": "constant rule region",
            "description": "A constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "identifier.null": {
            "$ref": "#/$defs/string-or-region",
            "title": "null identifier rule region",
            "description": "A null rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.bool": {
            "$ref": "#/$defs/string-or-region",
            "title": "bool constant rule region",
            "description": "A bool constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.bool.true": {
            "$ref": "#/$defs/string-or-region",
            "title": "true bool constant rule region",
            "description": "A true bool constant rule\n`.builtin` suffix is not used\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.bool.false": {
            "$ref": "#/$defs/string-or-region",
            "title": "false bool constant rule region",
            "description": "A false bool constant rule\n`.builtin` suffix is not used\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.number": {
            "$ref": "#/$defs/string-or-region",
            "title": "number constant rule region",
            "description": "A number constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.number.integer": {
            "$ref": "#/$defs/string-or-region",
            "title": "integer number constant rule region",
            "description": "A integer number constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.number.float": {
            "$ref": "#/$defs/string-or-region",
            "title": "float number constant rule region",
            "description": "A float number constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.number.complex": {
            "$ref": "#/$defs/string-or-region",
            "title": "complex number constant rule region",
            "description": "A complex number constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.string": {
            "$ref": "#/$defs/string-or-region",
            "title": "string constant rule region",
            "description": "A string constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.string.builtin": {
            "$ref": "#/$defs/string-or-region",
            "title": "builtin string constant rule region",
            "description": "A builtin string constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.string.url": {
            "$ref": "#/$defs/string-or-region",
            "title": "url string constant rule region",
            "description": "A url string constant rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.string.escape": {
            "$ref": "#/$defs/string-or-region",
            "title": "escape string constant rule region",
            "description": "A escape string constant rule\n`.builtin` suffix is not used\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "constant.string.format": {
            "$ref": "#/$defs/string-or-region",
            "title": "string format specifier constant rule region",
            "description": "A string format specifier constant rule\n`.builtin` suffix is not used\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "statement": {
            "$ref": "#/$defs/string-or-region",
            "title": "statement rule region",
            "description": "A statement rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "symbol": {
            "$ref": "#/$defs/string-or-region",
            "title": "symbol rule region",
            "description": "A symbol rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "symbol.brackets": {
            "$ref": "#/$defs/string-or-region",
            "title": "bracket symbol rule region",
            "description": "A bracket symbol rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "symbol.operator": {
            "$ref": "#/$defs/string-or-region",
            "title": "operator symbol rule region",
            "description": "An operator symbol rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "symbol.tag": {
            "$ref": "#/$defs/string-or-region",
            "title": "tag symbol rule region",
            "description": "A tag symbol rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "preproc": {
            "$ref": "#/$defs/string-or-region",
            "title": "preprocessor rule region",
            "description": "A preprocessor rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "preproc.shebang": {
            "$ref": "#/$defs/string-or-region",
            "title": "shebang preprocessor rule region",
            "description": "A shebang preprocessor rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "type": {
            "$ref": "#/$defs/string-or-region",
            "title": "type rule region",
            "description": "A type rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "type.builtin": {
            "$ref": "#/$defs/string-or-region",
            "title": "builtin type rule region",
            "description": "A builtin type rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "type.keyword": {
            "$ref": "#/$defs/string-or-region",
            "title": "keyword type rule region",
            "description": "A keyword type rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
          },
          "todo": {
            "$ref": "#/$defs/string-or-region",
            "title": "todo region",
            "description": "A todo rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>",
            "examples": [
              "(TODO|XXX|FIXME)"
            ]
          },
          "include": {
            "description": "An include\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>",
            "type": "string",
            "examples": [
              "javascript"
            ]
          }
        },
        "additionalProperties": {
          "$ref": "#/$defs/string-or-region",
          "title": "rule region",
          "description": "A rule\n<https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md#syntax-rules>"
        }
      }
    }
  },
  "additionalProperties": false,
  "$comment": "Port this schema to https://github.com/zyedidia/micro repository."
}
