{
  "name": "kumori",
  "scopeName": "source.kumori",
  "fileTypes": [
    ".kumori"
  ],
  "patterns": [
    {
      "include": "#comments"
    },
    {
      "name": "keyword.control.kumori",
      "match": "\\b(alias|builtin|component|deployment|false|func|import|library|open|self|service|struct|true|type|var)\\b"
    },
    {
      "name": "string.quoted.double.kumori",
      "begin": "\"",
      "end": "\"",
      "patterns": [
        {
          "include": "#string-character-escape"
        }
      ]
    },
    {
      "name": "string.quoted.single.kumori",
      "begin": "'",
      "end": "'",
      "patterns": [
        {
          "include": "#string-character-escape"
        }
      ]
    }
  ],
  "repository": {
    "comments": {
      "patterns": [
        {
          "name": "comment.block.kumori",
          "begin": "/\\*",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.comment.kumori"
            }
          },
          "end": "\\*/",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.comment.kumori"
            }
          }
        },
        {
          "begin": "//",
          "beginCaptures": {
            "1": {
              "name": "punctuation.whitespace.comment.leading.kumori"
            }
          },
          "end": "(?=$)",
          "name": "comment.line.kumori"
        }
      ]
    },
    "string-character-escape": {
      "name": "constant.character.escape.kumori",
      "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"
    }
  }
}
