{
  "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
  "name": "Tree-Sitter Graph",
  "patterns": [
    {
      "include": "#keywords"
    },
    {
      "include": "#functions"
    },
    {
      "include": "#constants"
    },
    {
      "include": "#strings"
    },
    {
      "include": "#comments"
    }
  ],
  "repository": {
    "keywords": {
      "patterns": [
        {
          "name": "keyword.control.tsg",
          "match": "^\\s*(attr|attribute|edge|for|global|if|inherit|let|node|none|print|scan|set|some|var)\\b"
        }
      ]
    },
    "functions": {
      "patterns": [
        {
          "name": "support.function.tsg",
          "match": "(?<=\\(\\s*)(and|end-column|end-row|is-empty|is-null|length|named-child-count|named-child-index|node|node-type|not|or|plus|replace|source-text|start-column|start-row)\\b"
        }
      ]
    },
    "constants": {
      "patterns": [
        {
          "name": "constant.language.tsg",
          "match": "\\b(#false|#nil|#true)\\b"
        }
      ]
    },
    "strings": {
      "name": "string.quoted.double.tsg",
      "begin": "\"",
      "end": "\"",
      "patterns": [
        {
          "name": "constant.character.escape.tsg",
          "match": "\\\\."
        }
      ]
    },
    "comments": {
      "patterns": [
        {
          "name": "comment.line.semicolon.tsg",
          "begin": ";",
          "end": "$"
        }
      ]
    }
  },
  "scopeName": "source.tsg"
}
