Skip to content

Commit 1d2ec17

Browse files
authored
feat(tolk): better TextMate grammar (#234)
1 parent 8a3372c commit 1d2ec17

1 file changed

Lines changed: 30 additions & 25 deletions

File tree

editors/code/src/languages/syntaxes/tolk.tmLanguage.json

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,14 @@
1515
"begin": "/\\*",
1616
"end": "\\*/"
1717
},
18-
{
19-
"name": "string.quoted.triple",
20-
"begin": "\"\"\"",
21-
"end": "\"\"\"",
22-
"patterns": [
23-
{
24-
"name": "constant.character.escape",
25-
"match": "\\\\."
26-
}
27-
]
28-
},
2918
{
3019
"name": "string.quoted.double",
3120
"begin": "\"",
32-
"end": "\"",
33-
"patterns": [
34-
{
35-
"name": "constant.character.escape",
36-
"match": "\\\\."
37-
}
38-
]
21+
"end": "\""
3922
},
4023
{
4124
"name": "constant.numeric",
42-
"match": "(-?([\\d]+|0x[\\da-fA-F]+|0b[01]+))\\b"
25+
"match": "\\b(-?([\\d]+|0x[\\da-fA-F]+|0b[01]+))\\b"
4326
},
4427
{
4528
"name": "keyword.control",
@@ -51,27 +34,49 @@
5134
},
5235
{
5336
"name": "keyword.other",
54-
"match": "\\b(import|export|private|readonly|true|false|null|redef|mutate|tolk|as|is|!is)\\b"
37+
"match": "\\b(import|export|true|false|null|redef|mutate|tolk|as|is|!is|private|readonly)\\b"
38+
},
39+
{
40+
"name": "keyword.other",
41+
"match": "\\bself\\b"
42+
},
43+
{
44+
"name": "entity.name.type.parameter",
45+
"match": "\\b[TU]\\b"
46+
},
47+
{
48+
"match": "\\b(val|var)\\s+(?:type|enum|int|map|cell|Cell|void|dict|bool|any_address|slice|tuple|builder|continuation|never|coins|address|int\\d+|uint\\d+|bits\\d+|bytes\\d+)\\b",
49+
"captures": {
50+
"1": {"name": "storage.modifier"}
51+
}
52+
},
53+
{
54+
"name": "constant.other",
55+
"match": "\\b[A-Z][A-Z0-9_]{2,}\\b"
5556
},
5657
{
5758
"name": "storage.type",
58-
"match": "\\b(type|int|cell|void|bool|slice|tuple|builder|continuation|never|coins|int\\d+|uint\\d+)\\b"
59+
"match": "\\b(type|enum|int|map|cell|Cell|void|dict|bool|any_address|slice|tuple|builder|continuation|never|coins|int\\d+|uint\\d+|bits\\d+|bytes\\d+)\\b"
60+
},
61+
{
62+
"name": "storage.type",
63+
"match": "(?<!\\.)\\baddress\\b(?!\\s*:)"
5964
},
6065
{
6166
"name": "storage.modifier",
62-
"match": "\\b(global|const|var|val|fun|get|struct|enum|private|readonly)\\b"
67+
"match": "\\b(global|const|var|val|fun|get|struct)\\b"
6368
},
6469
{
6570
"name": "entity.name.type",
6671
"match": "@\\w+"
6772
},
6873
{
6974
"name": "entity.name.function",
70-
"match": "(`[^`]+`|[a-zA-Z$_][a-zA-Z0-9$_]*)(?=\\()"
75+
"match": "(`[^`]+`|[a-zA-Z$_][a-zA-Z0-9$_]*)(?=\\s*(?:<[^>]+>)?\\s*\\()"
7176
},
7277
{
73-
"name": "variable.language",
74-
"match": "\bself\b"
78+
"name": "entity.name.type",
79+
"match": "\\b[A-Z][a-zA-Z0-9]*\\b"
7580
},
7681
{
7782
"name": "variable.name",

0 commit comments

Comments
 (0)