1{
2	"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3	"name": "Torque",
4	"patterns": [
5		{
6			"include": "#keywords"
7		},
8		{
9			"include": "#strings"
10		},
11		{
12			"name": "comment.line.double-slash.torque",
13			"begin": "//",
14			"end": "$"
15		},
16		{
17			"name": "comment.block.torque",
18			"begin": "/\\*",
19			"end": "\\*/"
20		},
21		{
22			"name": "string.quoted.single.torque",
23			"begin": "'",
24			"end": "'",
25			"patterns": [
26				{
27					"name": "constant.character.escape.torque",
28					"match": "\\\\."
29				}]
30		},
31		{
32			"name": "support.function.torque",
33			"match": "\\b(min|max|assert|check|debug|unreachable)\\b"
34		},
35    {
36      "name": "support.variable.torque",
37      "match": "\\b(true|True|false|False|Undefined|Hole|Null)\\b"
38    },
39    {
40      "begin": "<(?=[A-Za-z][0-9A-Za-z_]*>)",
41      "end": ">",
42      "patterns": [
43        {
44          "name": "support.type.torque",
45          "match": "([A-Za-z][0-9A-Za-z_]*)"
46        }
47      ]
48    },
49    {
50      "begin": ":(\\s*)?",
51      "end": "(?=[^0-9A-Za-z_])",
52      "patterns": [
53        {
54          "name": "support.type.torque",
55          "match": "([A-Za-z][0-9A-Za-z_]*)"
56        }
57      ]
58    }
59	],
60	"repository": {
61		"keywords": {
62			"patterns": [{
63				"name": "keyword.control.torque",
64				"match": "\\b(if|else|while|for|return|continue|break|goto|otherwise|try|catch)\\b"
65			},
66			{
67				"name": "keyword.other.torque",
68				"match": "\\b(constexpr|module|macro|builtin|runtime|javascript|implicit|deferred|cast|convert|label|labels|tail|isnt|is|let|generates|type|extends|extern|const)\\b"
69			},
70			{
71				"name": "keyword.operator.torque",
72				"match": "\\b(=|\\*=)\\b"
73			}]
74		},
75		"strings": {
76			"name": "string.quoted.double.torque",
77			"begin": "\"",
78			"end": "\"",
79			"patterns": [
80				{
81					"name": "constant.character.escape.torque",
82					"match": "\\\\."
83				}
84			]
85		}
86	},
87	"scopeName": "source.torque"
88}