github-linguist 4.8.6 → 4.8.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -833,7 +833,7 @@
833
833
  }
834
834
  },
835
835
  {
836
- "match": "(?x)\\b(?<!:)( AST|Any|Array|Associative|Attribute|Bag|BagHash|Baggy| Blob|Block|Bool|Callable|Capture|Channel|Code|Complex|Cool| CurrentThreadScheduler|Cursor|Date|DateTime|Dateish|Duration| Enum|FatRat|Grammar|Hash|IO|Instant|Iterable| Iterator|Junction|Label|List|Lock|Macro|Map|Match|Metamodel| Method|Mix|MixHash|Mixy|Mu|Nil|Numeric|ObjAt|Pair| Parameter|Pod|Positional|PositionalBindFailover|Proc|Promise| Proxy|QuantHash|Range|Rat|Rational|Real|Regex|Routine|Scheduler| Seq|Set|SetHash|Setty|Signature|Slip|Stash|Str|str|Stringy|Sub| Submethod|Supply|Tap|Temporal|Thread|ThreadPoolScheduler| Variable|Version|Whatever|WhateverCode|bool|size_t| Int|int|int1|int2|int4|int8|int16|int32|int64| Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64| Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64| UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32|uint64| utf8|utf16|utf32|Num|num|num32|num64 )(?!\\:\\:)\\b",
836
+ "match": "(?x)\\b(?<!:)( AST|Any|Array|Associative|Attribute|Bag|BagHash|Baggy| Blob|Block|Bool|Callable|Capture|Channel|Code|Complex|Cool| CurrentThreadScheduler|Cursor|Date|DateTime|Dateish|Duration| Enum|FatRat|Grammar|Hash|IO|Instant|Iterable| Iterator|Junction|Label|List|Lock|Macro|Map|Match|Metamodel| Method|Mix|MixHash|Mixy|Mu|Nil|Numeric|ObjAt|Pair| Parameter|Pod|Positional|PositionalBindFailover|Proc|Promise| Proxy|QuantHash|Range|Rat|Rational|Real|Regex|Routine|Scheduler| Seq|Set|SetHash|Setty|Signature|Slip|Stash|Str|str|Stringy|Sub| Submethod|Supply|Tap|Temporal|Thread|ThreadPoolScheduler| Variable|Version|Whatever|WhateverCode|bool|size_t| Int|int|int1|int2|int4|int8|int16|int32|int64| Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64| Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64| UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32|uint64| utf8|utf16|utf32|Num|num|num32|num64|IntStr|NumStr| RatStr|ComplexStr )(?!\\:\\:)\\b",
837
837
  "captures": {
838
838
  "1": {
839
839
  "name": "support.type.perl6fe"
@@ -856,7 +856,7 @@
856
856
  }
857
857
  },
858
858
  {
859
- "match": "(?x)\\b( div|mod|gcd|lcm|x|xx|temp|let|but|cmp|leg| eq|ne|gt|ge|lt|le|before|after|eqv|min|max|ff|fff|not|so|Z| and|andthen|or|orelse )\\b| \\b(X)(?!:)\\b",
859
+ "match": "(?x)\\b( div|mod|gcd|lcm|x|xx|temp|let|but|cmp|leg| eq|ne|gt|ge|lt|le|before|after|eqv|min|max|ff|fff|not|so|Z| and|andthen|or|orelse )\\b(?!\\-)| \\b(X)(?!:)\\b",
860
860
  "name": "keyword.operator.word.perl6fe"
861
861
  },
862
862
  {
@@ -904,7 +904,7 @@
904
904
  "include": "#variables"
905
905
  },
906
906
  {
907
- "match": "(?x)\\b(?<![\\-:]|\\\\)( eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints |chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin |classify|first|sum|keys|values|pairs|defined|delete|exists |elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push |shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign |sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2 |pick|chop|chomp|lc|lcfirst|uc|ucfirst|capitalize |normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars |nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead |nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost |getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs |codes|bytes|clone|print|open|read|write|readline|say|seek|close |opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink |symlink|unique|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan |sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh |sech|acosech|acotanh|asech|ok|nok|plan-ok|dies-ok|lives-ok|skip |todo|pass|flunk|force-todo|use-ok|isa-ok|diag|is-deeply|isnt |like|skip-rest|unlike|cmp-ok|eval-dies-ok|nok-error |eval-lives-ok|approx|is-approx|throws-ok|version-lt|plan|EVAL |succ|pred|times|nonce|once|signature|new|connect|operator|undef |undefine|sleep|from|to|infix|postfix|prefix|circumfix |postcircumfix|minmax|lazy|count|unwrap|getc|pi|tau|e|context|void |quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity |assuming|rewind|callwith|callsame|nextwith|nextsame|attr |eval-elsewhere|none|srand|trim|trim-start|trim-end|lastcall |WHAT|WHY|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not |iterator|by|re|im|invert|flip|gist|flat|tree|is-prime |throws-like|trans|race|hyper|tap|emit|done-testing|quit|dd|note |starts-with|ends-with|put|append|tail|\\x{03C0}|\\x{03C4}|\\x{212F} )(?!\\-)\\b(?!\\s*=>)",
907
+ "match": "(?x)\\b(?<![\\-:]|\\\\)( eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints |chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin |classify|first|sum|keys|values|pairs|defined|delete|exists |elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push |shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign |sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2 |pick|chop|chomp|lc|lcfirst|uc|ucfirst|capitalize |normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars |nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead |nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost |getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs |codes|bytes|clone|print|open|read|write|readline|say|seek|close |opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink |symlink|unique|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan |sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh |sech|acosech|acotanh|asech|ok|nok|plan-ok|dies-ok|lives-ok|skip |todo|pass|flunk|force-todo|use-ok|isa-ok|diag|is-deeply|isnt |like|skip-rest|unlike|cmp-ok|eval-dies-ok|nok-error|cmp-ok |eval-lives-ok|approx|is-approx|throws-ok|version-lt|plan|EVAL |succ|pred|times|nonce|once|signature|new|connect|operator|undef |undefine|sleep|from|to|infix|postfix|prefix|circumfix|can-ok |postcircumfix|minmax|lazy|count|unwrap|getc|pi|tau|e|context|void |quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity |assuming|rewind|callwith|callsame|nextwith|nextsame|attr|does-ok |eval-elsewhere|none|srand|trim|trim-start|trim-end|lastcall |WHAT|WHY|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not |iterator|by|re|im|invert|flip|gist|flat|tree|is-prime |throws-like|trans|race|hyper|tap|emit|done-testing|quit|dd|note |starts-with|ends-with|put|append|tail|\\x{03C0}|\\x{03C4}|\\x{212F} )(?!\\-)\\b(?!\\s*=>)",
908
908
  "name": "support.function.perl6fe"
909
909
  },
910
910
  {
@@ -61,7 +61,7 @@
61
61
  "name": "keyword.modifier.povray"
62
62
  },
63
63
  {
64
- "match": "\\#(declare|debug|else(if)?|end|for|if(n?def)?|include|local|macro|version|while)\\b",
64
+ "match": "\\#(break|case|declare|debug|else(if)?|end|error|fopen|for|if(n?def)?|include|local|macro|range|read|switch|version|while|write)\\b",
65
65
  "name": "keyword.control.povray"
66
66
  },
67
67
  {
@@ -117,58 +117,60 @@
117
117
  },
118
118
  {
119
119
  "comment": "renpy screen statement keywords",
120
- "name": "support.type.python",
120
+ "name": "support.type.screen.renpy",
121
121
  "match": "\\b(kind|color|action|area|hovered|unhovered|clicked|modal|text_style|default|has|who|what|tag|value|theme)\\b"
122
122
  },
123
123
  {
124
124
  "comment": "renpy transform keywords",
125
- "name": "support.type.python",
125
+ "name": "support.type.transform.renpy",
126
126
  "match": "\\b(repeat|transform|fadein|fadeout|position|Position|easein|easeout|time|ui)\\b"
127
127
  },
128
128
  {
129
129
  "comment": "other renpy keywords",
130
- "name": "support.type.python",
131
- "match": "\\b(Character|DynamicCharacter|music|sound|movie|pause|Transform|clear)\\b"
130
+ "name": "support.type.other.renpy",
131
+ "match": "\\b(MultiPersistent|Character|DynamicCharacter|music|sound|movie|pause|Transform|clear)\\b"
132
132
  },
133
133
  {
134
134
  "comment": "python one-line renpy keyword",
135
- "name": "invalid.deprecated.operator.python",
135
+ "name": "invalid.deprecated.operator.renpy",
136
136
  "match": "\\$"
137
137
  },
138
138
  {
139
- "comment": "python one-line renpy keyword",
140
- "name": "invalid.deprecated.operator.python",
141
- "match": "\\breturn\\b"
142
- },
143
- {
144
- "comment": "python one-line renpy keyword",
145
- "name": "invalid.deprecated.operator.python",
146
- "match": "pass"
139
+ "comment": "python control statements",
140
+ "name": "keyword.control.statement.python",
141
+ "match": "\\b(return|pass|break|continue|yield)\\b"
147
142
  },
148
143
  {
149
144
  "comment": "python statements renpy keywords",
150
- "name": "support.type.python",
145
+ "name": "support.type.objects.renpy",
151
146
  "match": "\\b(renpy|store|persistent|config)\\b"
152
147
  },
153
148
  {
154
149
  "comment": "python statements renpy keywords",
155
- "name": "pythonblock.support.type.python",
150
+ "name": "support.type.python.renpy",
156
151
  "match": "\\b(python)\\b"
157
152
  },
158
153
  {
159
154
  "comment": "init statements renpy keywords",
160
- "name": "keyword.control.statement.python",
155
+ "name": "keyword.control.statement.init.renpy",
161
156
  "match": "\\b(init)\\b"
162
157
  },
163
158
  {
164
159
  "comment": "transition class renpy keywords",
165
- "name": "support.type.python",
160
+ "name": "support.type.transition.renpy",
166
161
  "match": "\\b(Solid|AlphaDissolve|ComposeTransition|CropMove|Dissolve|Fade|ImageDissolve|MoveTransition|MultipleTransition|Pause|Pixellate|move_transitions)\\b"
167
162
  },
168
163
  {
164
+ "captures": {
165
+ "1": {
166
+ "name": "keyword.control.statement.with.renpy"
167
+ },
168
+ "2": {
169
+ "name": "support.type.transition.renpy"
170
+ }
171
+ },
169
172
  "comment": "transitions renpy keywords",
170
- "name": "support.type.python",
171
- "match": "\\b(fade|dissolve|pixellate|move|moveinright|moveinleft|moveintop|moveinbottom|moveoutright|moveoutleft|moveouttop|moveoutbottom|ease|easeinright|easeinleft|easeintop|easeinbottom|easeoutright|easeoutleft|easeouttop|easeoutbottom|zoomin|zoomout|zoominout|vpunch|hpunch|blinds|squares|wipeleft|wiperight|wipeup|wipedown|slideleft|slideright|slideup|slidedown|slideawayleft|slideawayright|slideawayup|slideawaydown|irisin|irisout)\\b"
173
+ "match": "\\s+(with)\\s+\\b(fade|dissolve|pixellate|move|moveinright|moveinleft|moveintop|moveinbottom|moveoutright|moveoutleft|moveouttop|moveoutbottom|ease|easeinright|easeinleft|easeintop|easeinbottom|easeoutright|easeoutleft|easeouttop|easeoutbottom|zoomin|zoomout|zoominout|vpunch|hpunch|blinds|squares|wipeleft|wiperight|wipeup|wipedown|slideleft|slideright|slideup|slidedown|slideawayleft|slideawayright|slideawayup|slideawaydown|irisin|irisout)\\b"
172
174
  },
173
175
  {
174
176
  "comment": "transform properties renpy keywords",
@@ -186,50 +188,95 @@
186
188
  "match": "\\b(play|queue|stop)\\b"
187
189
  },
188
190
  {
191
+ "captures": {
192
+ "2": {
193
+ "name": "support.type.music.renpy"
194
+ },
195
+ "3": {
196
+ "name": "entity.name.function.images.renpy"
197
+ }
198
+ },
189
199
  "comment": "Audio functions renpy keywords",
190
- "name": "support.type.python",
191
- "match": "\\b(seen_audio|get_playing|is_playing|register_channel|set_pan|set_queue_empty_callback|set_volume|loop|noloop)\\b"
200
+ "match": "(\\s*\\.\\s*)(music|sound)\\s*\\.\\s*(play|seen_audio|get_duration|get_pause|get_playing|get_pos|is_playing|queue|register_channel|set_pan|set_pause|set_queue_empty_callback|set_volume|stop|loop|noloop)\\b"
201
+ },
202
+ {
203
+ "captures": {
204
+ "2": {
205
+ "name": "entity.name.function.images.renpy"
206
+ }
207
+ },
208
+ "comment": "Audio functions renpy keywords",
209
+ "match": "(\\s*\\.\\s*)(play|seen_audio)\\b"
192
210
  },
193
211
  {
194
212
  "comment": "show statements renpy keywords",
195
- "name": "support.type.python",
213
+ "name": "support.type.show.renpy",
196
214
  "match": "\\b(as|at|behind|onlayer|zorder|expression)\\b"
197
215
  },
198
216
  {
217
+ "captures": {
218
+ "2": {
219
+ "name": "entity.name.function.images.renpy"
220
+ }
221
+ },
199
222
  "comment": "image functions renpy keywords",
200
- "name": "support.type.python",
201
- "match": "\\b(copy_images|get_image_bounds|get_placement|image_exists|seen_image|showing|start_predict|stop_predict)\\b"
223
+ "match": "(\\s*\\.\\s*)(can_show|copy_images|get_available_image_attributes|get_available_image_tags|get_image_bounds|get_placement|get_showing_tags|has_image|image_exists|seen_image|showing|start_predict|stop_predict)\\b"
202
224
  },
203
225
  {
204
226
  "comment": "action renpy keywords",
205
- "name": "support.type.python",
227
+ "name": "support.type.action.renpy",
206
228
  "match": "\\b(Hide|Jump|NullAction|Return|Show|ShowTransient)\\b"
207
229
  },
208
230
  {
209
231
  "comment": "Data Action renpy keywords",
210
- "name": "support.type.python",
232
+ "name": "support.type.action.renpy",
211
233
  "match": "\\b(SetDict|SetField|SetScreenVariable|SetVariable|ToggleDict|ToggleField|ToggleScreenVariable|ToggleVariable)\\b"
212
234
  },
213
235
  {
214
236
  "comment": "Menu Action renpy keywords",
215
- "name": "support.type.python",
237
+ "name": "support.type.action.renpy",
216
238
  "match": "\\b(MainMenu|Quit|ShowMenu|Start)\\b"
217
239
  },
218
240
  {
219
241
  "comment": "File Action renpy keywords",
220
- "name": "support.type.python",
242
+ "name": "support.type.action.renpy",
221
243
  "match": "\\b(FileAction|FileDelete|FileLoad|FilePage|FilePageNext|FilePagePrevious|FileSave|FileTakeScreenShot|QuickLoad|QuickSave)\\b"
222
244
  },
223
245
  {
224
246
  "comment": "Audio Action renpy keywords",
225
- "name": "support.type.python",
247
+ "name": "support.type.action.renpy",
226
248
  "match": "\\b(Play|Queue|SetMixer|Stop)\\b"
227
249
  },
228
250
  {
229
251
  "comment": "Other Action renpy keywords",
230
- "name": "support.type.python",
252
+ "name": "support.type.other.renpy",
231
253
  "match": "\\b(Preference|Function|Help|HideInterface|If|InvertSelected|MouseMove|Notify|OpenURL|RollForward|Rollback|ScreenShot|SelectedIf|Skip|With)\\b"
232
254
  },
255
+ {
256
+ "comment": "Translation key \"new\"",
257
+ "name": "entity.name.function.translation.renpy",
258
+ "match": "(?:\\s+)\\b(new)\\b"
259
+ },
260
+ {
261
+ "comment": "Translation key \"old\"",
262
+ "name": "keyword.operator.logical.translation.renpy",
263
+ "match": "(?:\\s+)\\b(old)\\b"
264
+ },
265
+ {
266
+ "captures": {
267
+ "1": {
268
+ "name": "keyword.operator.logical.translation.renpy"
269
+ },
270
+ "2": {
271
+ "name": "entity.name.function.translation.renpy"
272
+ },
273
+ "3": {
274
+ "name": "support.type.translation.renpy"
275
+ }
276
+ },
277
+ "comment": "python statements renpy keywords",
278
+ "match": "^\\b(translate)\\b\\s\\b([a-zA-z0-9_]+)\\b\\s\\b(strings)\\b"
279
+ },
233
280
  {
234
281
  "comment": "keyword operators that evaluate to True or False",
235
282
  "match": "\\b(and|in|is|not|or)\\b",
@@ -349,7 +396,7 @@
349
396
  "begin": "^\\s*((jump)|(call)|(screen)|(label)|(menu))\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*)",
350
397
  "beginCaptures": {
351
398
  "1": {
352
- "name": "keyword.control.statement.python"
399
+ "name": "keyword.control.statement.renpy"
353
400
  }
354
401
  },
355
402
  "end": "(\\n|\\()|#",
@@ -409,7 +456,7 @@
409
456
  "begin": "((define)|(image)|(scene)|(show)|(hide))\\s+((\\s)|(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*))",
410
457
  "beginCaptures": {
411
458
  "1": {
412
- "name": "keyword.control.statement.python"
459
+ "name": "keyword.control.statement.renpy"
413
460
  }
414
461
  },
415
462
  "end": "(\\=)|(\\s)|(\\s*$\\n?|#.*$\\n?)",
@@ -819,7 +866,7 @@
819
866
  {
820
867
  "captures": {
821
868
  "1": {
822
- "name": "keyword.control.statement.python"
869
+ "name": "keyword.control.statement.renpy"
823
870
  }
824
871
  },
825
872
  "match": "\\b(menu)\\b"
@@ -1011,7 +1058,7 @@
1011
1058
  },
1012
1059
  "constant_placeholder": {
1013
1060
  "match": "(?i:(%(\\([a-z_]+\\))?#?0?\\-?[ ]?\\+?([0-9]*|\\*)(\\.([0-9]*|\\*))?([hL][a-z]|[a-z%]))|(\\{([#=\\-\\+!\\[\\].:\\w ]+)?\\})|(\\{\\/([!\\[\\].:\\w ]+)?\\})|(\\[([!\\[\\].:\\w ]+)?\\]))",
1014
- "name": "constant.other.placeholder.python"
1061
+ "name": "constant.character.escape.tags.renpy"
1015
1062
  },
1016
1063
  "docstrings": {
1017
1064
  "patterns": [
@@ -272,12 +272,12 @@
272
272
  "patterns": [
273
273
  {
274
274
  "comment": "single quote date constant",
275
- "match": "(')(\\d{1,2}(?i:(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))\\d{2,4})(')([dD])\\b",
275
+ "match": "(')(\\d{1,2}-?(?i:(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))-?\\d{2,4})(')([dD])\\b",
276
276
  "name": "constant.numeric.date.single.sas"
277
277
  },
278
278
  {
279
279
  "comment": "double quote date constant",
280
- "match": "(\")(\\d{1,2}(?i:(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))\\d{2,4})(\")([dD])\\b",
280
+ "match": "(\")(\\d{1,2}-?(?i:(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))-?\\d{2,4})(\")([dD])\\b",
281
281
  "name": "constant.numeric.date.double.sas"
282
282
  },
283
283
  {
@@ -144,7 +144,7 @@
144
144
  "name": "punctuation.definition.comment.shebang.shell"
145
145
  }
146
146
  },
147
- "end": "\\n",
147
+ "end": "$",
148
148
  "name": "comment.line.number-sign.shebang.shell"
149
149
  },
150
150
  {
@@ -154,7 +154,7 @@
154
154
  "name": "punctuation.definition.comment.shell"
155
155
  }
156
156
  },
157
- "end": "\\n",
157
+ "end": "$",
158
158
  "name": "comment.line.number-sign.shell"
159
159
  }
160
160
  ]
@@ -0,0 +1,1557 @@
1
+ {
2
+ "name": "Turing",
3
+ "scopeName": "source.turing",
4
+ "fileTypes": [
5
+ "t",
6
+ "tu"
7
+ ],
8
+ "patterns": [
9
+ {
10
+ "include": "#main"
11
+ }
12
+ ],
13
+ "repository": {
14
+ "main": {
15
+ "patterns": [
16
+ {
17
+ "include": "#comments"
18
+ },
19
+ {
20
+ "include": "#boolean"
21
+ },
22
+ {
23
+ "include": "#strings"
24
+ },
25
+ {
26
+ "include": "#numbers"
27
+ },
28
+ {
29
+ "include": "#for"
30
+ },
31
+ {
32
+ "include": "#cc"
33
+ },
34
+ {
35
+ "include": "#case"
36
+ },
37
+ {
38
+ "include": "#types"
39
+ },
40
+ {
41
+ "include": "#function"
42
+ },
43
+ {
44
+ "include": "#keywords"
45
+ },
46
+ {
47
+ "include": "#modifiers"
48
+ },
49
+ {
50
+ "include": "#variables"
51
+ },
52
+ {
53
+ "include": "#punctuation"
54
+ },
55
+ {
56
+ "include": "#forward"
57
+ },
58
+ {
59
+ "include": "#procedure"
60
+ },
61
+ {
62
+ "include": "#process"
63
+ },
64
+ {
65
+ "include": "#handler"
66
+ },
67
+ {
68
+ "include": "#class"
69
+ },
70
+ {
71
+ "include": "#type"
72
+ },
73
+ {
74
+ "include": "#record"
75
+ },
76
+ {
77
+ "include": "#union"
78
+ },
79
+ {
80
+ "include": "#function-call"
81
+ },
82
+ {
83
+ "include": "#stdlib"
84
+ }
85
+ ]
86
+ },
87
+ "comments": {
88
+ "patterns": [
89
+ {
90
+ "name": "comment.line.percentage.turing",
91
+ "begin": "%",
92
+ "end": "$",
93
+ "beginCaptures": {
94
+ "0": {
95
+ "name": "punctuation.definition.comment.turing"
96
+ }
97
+ }
98
+ },
99
+ {
100
+ "name": "comment.block.bracketed.turing",
101
+ "begin": "/\\*",
102
+ "end": "\\*/",
103
+ "beginCaptures": {
104
+ "0": {
105
+ "name": "punctuation.definition.comment.turing"
106
+ }
107
+ },
108
+ "endCaptures": {
109
+ "0": {
110
+ "name": "punctuation.definition.comment.turing"
111
+ }
112
+ }
113
+ }
114
+ ]
115
+ },
116
+ "strings": {
117
+ "patterns": [
118
+ {
119
+ "name": "string.quoted.double.turing",
120
+ "begin": "\"",
121
+ "end": "\"",
122
+ "patterns": [
123
+ {
124
+ "include": "#escapes"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "name": "string.quoted.single.turing",
130
+ "begin": "'",
131
+ "end": "'",
132
+ "patterns": [
133
+ {
134
+ "include": "#escapes"
135
+ }
136
+ ]
137
+ }
138
+ ]
139
+ },
140
+ "numbers": {
141
+ "patterns": [
142
+ {
143
+ "name": "constant.numeric.base-16.hex.turing",
144
+ "match": "16#[A-Fa-f0-9]+"
145
+ },
146
+ {
147
+ "name": "constant.numeric.base-$1.turing",
148
+ "match": "(\\d+)#\\d+"
149
+ },
150
+ {
151
+ "name": "constant.numeric.float.turing",
152
+ "match": "\\b\\d+\\.\\d+(?:[Ee][\\+\\-]?\\d+)?\\b"
153
+ },
154
+ {
155
+ "name": "constant.numeric.int.turing",
156
+ "match": "\\b\\d+\\b"
157
+ }
158
+ ]
159
+ },
160
+ "list": {
161
+ "patterns": [
162
+ {
163
+ "match": "\\w+",
164
+ "name": "variable.name.turing"
165
+ },
166
+ {
167
+ "match": ",",
168
+ "name": "meta.delimiter.object.comma.turing"
169
+ }
170
+ ]
171
+ },
172
+ "escapes": {
173
+ "patterns": [
174
+ {
175
+ "match": "\\\\\"",
176
+ "name": "constant.character.escape.double-quote.turing"
177
+ },
178
+ {
179
+ "match": "\\\\'",
180
+ "name": "constant.character.escape.single-quote.turing"
181
+ },
182
+ {
183
+ "match": "\\\\[nN]",
184
+ "name": "constant.character.escape.newline.turing"
185
+ },
186
+ {
187
+ "match": "\\\\[tT]",
188
+ "name": "constant.character.escape.tab.turing"
189
+ },
190
+ {
191
+ "match": "\\\\[fF]",
192
+ "name": "constant.character.escape.form-feed.turing"
193
+ },
194
+ {
195
+ "match": "\\\\[rR]",
196
+ "name": "constant.character.escape.return.turing"
197
+ },
198
+ {
199
+ "match": "\\\\[bB]",
200
+ "name": "constant.character.escape.backspace.turing"
201
+ },
202
+ {
203
+ "match": "\\\\[eE]",
204
+ "name": "constant.character.escape.esc.turing"
205
+ },
206
+ {
207
+ "match": "\\\\\\\\",
208
+ "name": "constant.character.escape.backslash.turing"
209
+ }
210
+ ]
211
+ },
212
+ "function": {
213
+ "name": "meta.function.turing",
214
+ "begin": "(?x)\n\\b\n(?:\n\t(body) # 1: storage.modifier.body.turing\n\t\\s+\n)?\n(function|fcn) # 2: storage.type.turing\n(?:\n\t\\s+\n\t(pervasive|\\*) # 3: storage.modifier.pervasive.turing\n)?\n\\s+\n(\\w+) # 4: entity.name.function.turing\n\\s*\n( # 5: meta.function.parameters.turing\n\t(\\() # 6: punctuation.definition.parameters.begin.turing\n\t(.*) # 7: include: “#param-declarations”\n\t(\\)) # 8: punctuation.definition.parameters.end.turing\n)\n\\s*\n(:) # 9: punctuation.separator.key-value.turing\n\\s*\n(\\w+) # 10: storage.type.type-spec.turing",
215
+ "end": "\\b(end)\\s+(\\4)",
216
+ "patterns": [
217
+ {
218
+ "name": "meta.$1-function.turing",
219
+ "begin": "^\\s*(pre|init|post)(?=\\s|$)",
220
+ "end": "$",
221
+ "patterns": [
222
+ {
223
+ "include": "$self"
224
+ }
225
+ ],
226
+ "beginCaptures": {
227
+ "1": {
228
+ "name": "keyword.function.$1.turing"
229
+ }
230
+ }
231
+ },
232
+ {
233
+ "include": "$self"
234
+ }
235
+ ],
236
+ "beginCaptures": {
237
+ "1": {
238
+ "name": "storage.modifier.body.turing"
239
+ },
240
+ "2": {
241
+ "name": "storage.type.turing"
242
+ },
243
+ "3": {
244
+ "name": "storage.modifier.pervasive.turing"
245
+ },
246
+ "4": {
247
+ "name": "entity.name.function.turing"
248
+ },
249
+ "5": {
250
+ "name": "meta.function.parameters.turing"
251
+ },
252
+ "6": {
253
+ "name": "punctuation.definition.parameters.begin.turing"
254
+ },
255
+ "7": {
256
+ "patterns": [
257
+ {
258
+ "include": "#param-declarations"
259
+ }
260
+ ]
261
+ },
262
+ "8": {
263
+ "name": "punctuation.definition.parameters.end.turing"
264
+ },
265
+ "9": {
266
+ "name": "punctuation.separator.key-value.turing"
267
+ },
268
+ "10": {
269
+ "name": "storage.type.type-spec.turing"
270
+ }
271
+ },
272
+ "endCaptures": {
273
+ "1": {
274
+ "name": "keyword.control.end.turing"
275
+ },
276
+ "2": {
277
+ "name": "entity.name.function.turing"
278
+ }
279
+ }
280
+ },
281
+ "param-declarations": {
282
+ "match": "\\b(\\w+)\\s+(:)\\s+((\\w+))",
283
+ "captures": {
284
+ "1": {
285
+ "name": "variable.parameter.function.turing"
286
+ },
287
+ "2": {
288
+ "name": "storage.type.turing"
289
+ },
290
+ "3": {
291
+ "patterns": [
292
+ {
293
+ "include": "#types"
294
+ }
295
+ ]
296
+ }
297
+ }
298
+ },
299
+ "function-call": {
300
+ "patterns": [
301
+ {
302
+ "name": "meta.function-call.turing",
303
+ "begin": "(([\\w.]+))\\s*(\\()",
304
+ "end": "\\)",
305
+ "contentName": "meta.function-call.arguments.turing",
306
+ "beginCaptures": {
307
+ "1": {
308
+ "name": "entity.function.name.turing"
309
+ },
310
+ "2": {
311
+ "patterns": [
312
+ {
313
+ "include": "#function-name"
314
+ }
315
+ ]
316
+ },
317
+ "3": {
318
+ "name": "punctuation.definition.arguments.begin.turing"
319
+ }
320
+ },
321
+ "endCaptures": {
322
+ "0": {
323
+ "name": "punctuation.definition.arguments.end.turing"
324
+ }
325
+ },
326
+ "patterns": [
327
+ {
328
+ "include": "$self"
329
+ }
330
+ ]
331
+ },
332
+ {
333
+ "name": "meta.function-call.turing",
334
+ "match": "^\\s*(([\\w.]+))\\s*(?=$|%|/\\*)",
335
+ "captures": {
336
+ "1": {
337
+ "name": "entity.function.name.turing"
338
+ },
339
+ "2": {
340
+ "patterns": [
341
+ {
342
+ "include": "#function-name"
343
+ }
344
+ ]
345
+ }
346
+ }
347
+ }
348
+ ]
349
+ },
350
+ "function-name": {
351
+ "patterns": [
352
+ {
353
+ "include": "#stdlib"
354
+ },
355
+ {
356
+ "match": "\\.",
357
+ "name": "punctuation.separator.method.turing"
358
+ }
359
+ ]
360
+ },
361
+ "keywords": {
362
+ "patterns": [
363
+ {
364
+ "match": "\\b((?:end\\s+)?if|then|elsif|else|(?:end\\s+)?loop|exit|when|include|in)\\b",
365
+ "name": "keyword.control.$1.turing"
366
+ },
367
+ {
368
+ "match": "\\b(and|not|x?or)\\b",
369
+ "name": "keyword.operator.logical.$1.turing"
370
+ },
371
+ {
372
+ "match": "\\b(all|bits|div|lower|mod|nil|rem|shl|shr|unit|upper)\\b",
373
+ "name": "keyword.operator.$1.turing"
374
+ },
375
+ {
376
+ "match": "\\b(assert|begin|break|close|exit|fork|free|get|init|invariant|new|objectclass|open|pause|put|quit|read|result|return|seek|signal|tag|tell|wait|write)\\b",
377
+ "name": "keyword.other.statement.$1.turing"
378
+ },
379
+ {
380
+ "match": "\\b(char)\\s*(\\()(\\d+)(\\))",
381
+ "name": "storage.type.$3-char.turing",
382
+ "captures": {
383
+ "2": {
384
+ "name": "punctuation.definition.arguments.begin.turing"
385
+ },
386
+ "4": {
387
+ "name": "punctuation.definition.arguments.end.turing"
388
+ }
389
+ }
390
+ },
391
+ {
392
+ "match": "(?x)\\b\n(black|blue|brightblue|brightcyan|brightgreen|brightmagenta|brightpurple|brightred\n|brightwhite|brown|colou?r[bf]g|cyan|darkgr[ae]y|gr[ae]y|green|magenta|purple|red\n|white|yellow)\\b",
393
+ "name": "constant.other.colour.turing"
394
+ },
395
+ {
396
+ "match": "\\b(skip|self)\\b",
397
+ "name": "constant.language.$1.turing"
398
+ }
399
+ ]
400
+ },
401
+ "modifiers": {
402
+ "patterns": [
403
+ {
404
+ "match": "\\b(unchecked|checked)\\b",
405
+ "name": "storage.modifier.$1.compiler-directive.oot.turing"
406
+ },
407
+ {
408
+ "match": "\\b(unqualified|~\\.)\\b",
409
+ "name": "storage.modifier.unqualified.turing"
410
+ },
411
+ {
412
+ "match": "\\b(external|flexible|opaque|register)\\b",
413
+ "name": "storage.modifier.$1.turing"
414
+ }
415
+ ]
416
+ },
417
+ "types": {
418
+ "match": "\\b(addressint|array|boolean|char|collection|enum|int[124]?|nat[124]?|real[48]?|pointer\\s+to|set\\s+of|string)\\b",
419
+ "name": "storage.type.$1-type.turing"
420
+ },
421
+ "cc": {
422
+ "name": "meta.preprocessor.$3.turing",
423
+ "match": "^\\s*((#)((?:end\\s+)?if|elsif|else))",
424
+ "captures": {
425
+ "1": {
426
+ "name": "keyword.control.directive.conditional.turing"
427
+ },
428
+ "2": {
429
+ "name": "punctuation.definition.directive.turing"
430
+ }
431
+ }
432
+ },
433
+ "for": {
434
+ "name": "meta.for-loop.turing",
435
+ "begin": "\\b(for)\\b(?:\\s+(decreasing)\\b)?",
436
+ "end": "\\b(end)\\s+(for)",
437
+ "patterns": [
438
+ {
439
+ "match": "\\G(.*?)\\b(by)\\b",
440
+ "captures": {
441
+ "1": {
442
+ "patterns": [
443
+ {
444
+ "include": "$self"
445
+ }
446
+ ]
447
+ },
448
+ "2": {
449
+ "name": "keyword.control.by.turing"
450
+ }
451
+ }
452
+ },
453
+ {
454
+ "include": "$self"
455
+ }
456
+ ],
457
+ "beginCaptures": {
458
+ "1": {
459
+ "name": "keyword.control.for.turing"
460
+ },
461
+ "2": {
462
+ "name": "keyword.operator.decreasing.turing"
463
+ }
464
+ },
465
+ "endCaptures": {
466
+ "1": {
467
+ "name": "keyword.control.end.turing"
468
+ },
469
+ "2": {
470
+ "name": "keyword.control.for.turing"
471
+ }
472
+ }
473
+ },
474
+ "case": {
475
+ "name": "meta.scope.case-block.turing",
476
+ "begin": "\\b(case)\\s+(\\w+)\\s+(of)\\b",
477
+ "end": "\\b(end\\s+case)\\b",
478
+ "patterns": [
479
+ {
480
+ "include": "#label"
481
+ },
482
+ {
483
+ "include": "$self"
484
+ }
485
+ ],
486
+ "beginCaptures": {
487
+ "1": {
488
+ "name": "keyword.control.case.turing"
489
+ },
490
+ "2": {
491
+ "name": "variable.parameter.turing"
492
+ },
493
+ "3": {
494
+ "name": "keyword.operator.of.turing"
495
+ }
496
+ },
497
+ "endCaptures": {
498
+ "1": {
499
+ "name": "keyword.control.end.case.turing"
500
+ }
501
+ }
502
+ },
503
+ "label": {
504
+ "name": "meta.label.turing",
505
+ "begin": "\\b(label)\\b",
506
+ "end": ":",
507
+ "beginCaptures": {
508
+ "1": {
509
+ "name": "keyword.other.statement.label.turing"
510
+ }
511
+ },
512
+ "endCaptures": {
513
+ "0": {
514
+ "name": "punctuation.separator.key-value.turing"
515
+ }
516
+ },
517
+ "patterns": [
518
+ {
519
+ "include": "$self"
520
+ },
521
+ {
522
+ "include": "#list"
523
+ }
524
+ ]
525
+ },
526
+ "forward": {
527
+ "patterns": [
528
+ {
529
+ "name": "meta.$1.procedure.turing",
530
+ "begin": "\\b(deferred|forward)\\s+(procedure|proc)\\s+(\\w+)",
531
+ "end": "(?=$|%|/\\*)",
532
+ "beginCaptures": {
533
+ "1": {
534
+ "name": "storage.modifier.$1.turing"
535
+ },
536
+ "2": {
537
+ "name": "storage.type.function.turing"
538
+ },
539
+ "3": {
540
+ "name": "entity.name.function.turing"
541
+ }
542
+ },
543
+ "patterns": [
544
+ {
545
+ "include": "#parameters"
546
+ },
547
+ {
548
+ "include": "$self"
549
+ }
550
+ ]
551
+ },
552
+ {
553
+ "name": "meta.$1.function.turing",
554
+ "begin": "\\b(deferred|forward)\\s+(function|fcn)\\s+(\\w+)",
555
+ "end": "(?=$|%|/\\*)",
556
+ "beginCaptures": {
557
+ "1": {
558
+ "name": "storage.modifier.$1.turing"
559
+ },
560
+ "2": {
561
+ "name": "storage.type.function.turing"
562
+ },
563
+ "3": {
564
+ "name": "entity.name.function.turing"
565
+ }
566
+ },
567
+ "patterns": [
568
+ {
569
+ "include": "#parameters"
570
+ },
571
+ {
572
+ "include": "$self"
573
+ }
574
+ ]
575
+ }
576
+ ]
577
+ },
578
+ "procedure": {
579
+ "name": "meta.scope.$1.procedure.turing",
580
+ "begin": "\\b(?:(body)\\s+)?(procedure|proc)\\s+(\\w+)",
581
+ "end": "\\b(end)\\s+(\\3)",
582
+ "patterns": [
583
+ {
584
+ "include": "#parameters"
585
+ },
586
+ {
587
+ "include": "$self"
588
+ }
589
+ ],
590
+ "beginCaptures": {
591
+ "1": {
592
+ "name": "storage.modifier.$1.turing"
593
+ },
594
+ "2": {
595
+ "name": "storage.type.function.turing"
596
+ },
597
+ "3": {
598
+ "name": "entity.name.function.turing"
599
+ }
600
+ },
601
+ "endCaptures": {
602
+ "1": {
603
+ "name": "keyword.control.end.turing"
604
+ },
605
+ "2": {
606
+ "name": "entity.name.function.turing"
607
+ }
608
+ }
609
+ },
610
+ "process": {
611
+ "name": "meta.scope.process.turing",
612
+ "begin": "\\b(process)(?:\\s+(pervasive|\\*)(?=\\s))?\\s+(\\w+)",
613
+ "end": "\\b(end)\\s+(\\3)",
614
+ "patterns": [
615
+ {
616
+ "include": "#parameters"
617
+ },
618
+ {
619
+ "include": "$self"
620
+ }
621
+ ],
622
+ "beginCaptures": {
623
+ "1": {
624
+ "name": "storage.type.function.turing"
625
+ },
626
+ "2": {
627
+ "name": "storage.modifier.pervasive.turing"
628
+ },
629
+ "3": {
630
+ "name": "entity.name.function.turing"
631
+ }
632
+ },
633
+ "endCaptures": {
634
+ "1": {
635
+ "name": "keyword.control.end.turing"
636
+ },
637
+ "2": {
638
+ "name": "entity.name.function.turing"
639
+ }
640
+ }
641
+ },
642
+ "parameters": {
643
+ "name": "meta.function.parameters.turing",
644
+ "begin": "\\G\\s*(\\()",
645
+ "end": "\\)",
646
+ "beginCaptures": {
647
+ "1": {
648
+ "name": "punctuation.definition.arguments.begin.turing"
649
+ }
650
+ },
651
+ "endCaptures": {
652
+ "0": {
653
+ "name": "punctuation.definition.arguments.end.turing"
654
+ }
655
+ },
656
+ "patterns": [
657
+ {
658
+ "include": "$self"
659
+ },
660
+ {
661
+ "match": "\\w+",
662
+ "name": "variable.parameter.function.turing"
663
+ }
664
+ ]
665
+ },
666
+ "handler": {
667
+ "name": "meta.scope.handler.turing",
668
+ "begin": "\\b(handler)\\s*(\\()\\s*(\\w+)\\s*(\\))",
669
+ "end": "\\b(end)\\s+(handler)\\b",
670
+ "patterns": [
671
+ {
672
+ "include": "$self"
673
+ }
674
+ ],
675
+ "beginCaptures": {
676
+ "1": {
677
+ "name": "storage.type.handler.turing"
678
+ },
679
+ "2": {
680
+ "name": "punctuation.definition.arguments.begin.turing"
681
+ },
682
+ "3": {
683
+ "name": "variable.parameter.handler.turing"
684
+ },
685
+ "4": {
686
+ "name": "punctuation.definition.arguments.end.turing"
687
+ }
688
+ },
689
+ "endCaptures": {
690
+ "1": {
691
+ "name": "keyword.control.end.turing"
692
+ },
693
+ "2": {
694
+ "name": "storage.type.handler.turing"
695
+ }
696
+ }
697
+ },
698
+ "class": {
699
+ "name": "meta.scope.$1-block.turing",
700
+ "begin": "^\\s*(class|module|monitor)\\s+(\\w+)",
701
+ "end": "\\b(end)\\s+(\\2)",
702
+ "patterns": [
703
+ {
704
+ "include": "#class-innards"
705
+ },
706
+ {
707
+ "include": "$self"
708
+ }
709
+ ],
710
+ "beginCaptures": {
711
+ "1": {
712
+ "name": "storage.type.$1.turing"
713
+ },
714
+ "2": {
715
+ "name": "entity.name.type.class.turing"
716
+ }
717
+ },
718
+ "endCaptures": {
719
+ "1": {
720
+ "name": "keyword.control.end.turing"
721
+ },
722
+ "2": {
723
+ "name": "entity.name.type.class.turing"
724
+ }
725
+ }
726
+ },
727
+ "class-innards": {
728
+ "patterns": [
729
+ {
730
+ "begin": "\\b(import|export)\\b",
731
+ "end": "(?=$|%|/\\*)",
732
+ "beginCaptures": {
733
+ "1": {
734
+ "name": "keyword.control.$1.turing"
735
+ }
736
+ },
737
+ "patterns": [
738
+ {
739
+ "include": "#list"
740
+ },
741
+ {
742
+ "include": "$self"
743
+ }
744
+ ]
745
+ },
746
+ {
747
+ "name": "meta.other.inherited-class.turing",
748
+ "begin": "\\b(inherit)\\b",
749
+ "end": "\\w+",
750
+ "beginCaptures": {
751
+ "1": {
752
+ "name": "storage.modifier.inherit.turing"
753
+ }
754
+ },
755
+ "endCaptures": {
756
+ "0": {
757
+ "name": "entity.other.inherited-class.turing"
758
+ }
759
+ },
760
+ "patterns": [
761
+ {
762
+ "include": "$self"
763
+ }
764
+ ]
765
+ },
766
+ {
767
+ "name": "meta.other.$1.turing",
768
+ "begin": "\\b(implement(?:\\s+by)?)\\b",
769
+ "end": "\\w+",
770
+ "beginCaptures": {
771
+ "1": {
772
+ "name": "storage.modifier.implements.turing"
773
+ }
774
+ },
775
+ "endCaptures": {
776
+ "0": {
777
+ "name": "entity.other.inherited-class.turing"
778
+ }
779
+ },
780
+ "patterns": [
781
+ {
782
+ "include": "$self"
783
+ }
784
+ ]
785
+ }
786
+ ]
787
+ },
788
+ "variables": {
789
+ "patterns": [
790
+ {
791
+ "name": "meta.variable-declaration.turing",
792
+ "begin": "\\b(var|const)\\s+",
793
+ "end": "(:=?)\\s*((?!\\d)((?:\\w+(?:\\s+to)?)(?:\\s*\\(\\s*\\d+\\s*\\))?))?\\s*(:=)?",
794
+ "beginCaptures": {
795
+ "1": {
796
+ "name": "storage.type.$1.turing"
797
+ }
798
+ },
799
+ "endCaptures": {
800
+ "1": {
801
+ "name": "punctuation.separator.key-value.turing"
802
+ },
803
+ "2": {
804
+ "name": "storage.type.type-spec.turing"
805
+ },
806
+ "3": {
807
+ "patterns": [
808
+ {
809
+ "include": "#types"
810
+ }
811
+ ]
812
+ },
813
+ "4": {
814
+ "name": "punctuation.separator.key-value.turing"
815
+ }
816
+ },
817
+ "patterns": [
818
+ {
819
+ "match": "\\G(?:\\s*(pervasive|\\*)(?=\\s))?\\s*(register)(?=\\s)",
820
+ "captures": {
821
+ "1": {
822
+ "name": "storage.modifier.pervasive.oot.turing"
823
+ },
824
+ "2": {
825
+ "name": "storage.modifier.register.oot.turing"
826
+ }
827
+ }
828
+ },
829
+ {
830
+ "include": "#types"
831
+ },
832
+ {
833
+ "include": "#list"
834
+ }
835
+ ]
836
+ },
837
+ {
838
+ "name": "meta.variable-assignment.turing",
839
+ "begin": "(\\w+)\\s*(:=)",
840
+ "end": "(?=\\S)",
841
+ "beginCaptures": {
842
+ "1": {
843
+ "name": "variable.name.turing"
844
+ },
845
+ "2": {
846
+ "name": "punctuation.separator.key-value.turing"
847
+ }
848
+ }
849
+ },
850
+ {
851
+ "name": "meta.binding.turing",
852
+ "begin": "\\b(bind)\\b",
853
+ "end": "(?=$|%|/\\*)",
854
+ "beginCaptures": {
855
+ "1": {
856
+ "name": "keyword.operator.bind.turing"
857
+ }
858
+ },
859
+ "patterns": [
860
+ {
861
+ "begin": "\\b(var)\\b",
862
+ "end": "\\b(to)\\b",
863
+ "patterns": [
864
+ {
865
+ "include": "#list"
866
+ }
867
+ ],
868
+ "beginCaptures": {
869
+ "1": {
870
+ "name": "storage.type.$1.turing"
871
+ }
872
+ },
873
+ "endCaptures": {
874
+ "1": {
875
+ "name": "keyword.operator.to.turing"
876
+ }
877
+ }
878
+ },
879
+ {
880
+ "include": "#list"
881
+ }
882
+ ]
883
+ }
884
+ ]
885
+ },
886
+ "boolean": {
887
+ "name": "constant.language.boolean.$1.turing",
888
+ "match": "\\b(true|false)\\b"
889
+ },
890
+ "punctuation": {
891
+ "patterns": [
892
+ {
893
+ "match": "\\.\\.",
894
+ "name": "punctuation.definition.range.turing"
895
+ },
896
+ {
897
+ "match": ":=",
898
+ "name": "punctuation.separator.key-value.assignment.turing"
899
+ },
900
+ {
901
+ "match": "->",
902
+ "name": "punctuation.separator.class.accessor.turing"
903
+ },
904
+ {
905
+ "match": "\\+",
906
+ "name": "keyword.operator.arithmetic.add.turing"
907
+ },
908
+ {
909
+ "match": "-",
910
+ "name": "keyword.operator.arithmetic.subtract.turing"
911
+ },
912
+ {
913
+ "match": "\\*",
914
+ "name": "keyword.operator.arithmetic.multiply.turing"
915
+ },
916
+ {
917
+ "match": "\\/",
918
+ "name": "keyword.operator.arithmetic.divide.turing"
919
+ },
920
+ {
921
+ "match": "<=",
922
+ "name": "keyword.operator.logical.equal-or-less.subset.turing"
923
+ },
924
+ {
925
+ "match": ">=",
926
+ "name": "keyword.operator.logical.equal-or-greater.superset.turing"
927
+ },
928
+ {
929
+ "match": "<",
930
+ "name": "keyword.operator.logical.less.turing"
931
+ },
932
+ {
933
+ "match": ">",
934
+ "name": "keyword.operator.logical.greater.turing"
935
+ },
936
+ {
937
+ "match": "=",
938
+ "name": "keyword.operator.logical.equal.turing"
939
+ },
940
+ {
941
+ "match": "not=|~=",
942
+ "name": "keyword.operator.logical.not.turing"
943
+ },
944
+ {
945
+ "match": "\\^",
946
+ "name": "keyword.operator.pointer-following.turing"
947
+ },
948
+ {
949
+ "match": "#",
950
+ "name": "keyword.operator.type-cheat.turing"
951
+ },
952
+ {
953
+ "match": "@",
954
+ "name": "keyword.operator.indirection.turing"
955
+ },
956
+ {
957
+ "match": ":",
958
+ "name": "punctuation.separator.key-value.turing"
959
+ },
960
+ {
961
+ "match": "\\(",
962
+ "name": "punctuation.definition.arguments.begin.turing"
963
+ },
964
+ {
965
+ "match": "\\)",
966
+ "name": "punctuation.definition.arguments.end.turing"
967
+ }
968
+ ]
969
+ },
970
+ "type": {
971
+ "match": "\\b(type)(?:\\s+(pervasive|\\*)(?=\\s))?\\s+(\\w+)",
972
+ "captures": {
973
+ "1": {
974
+ "name": "storage.type.turing"
975
+ },
976
+ "2": {
977
+ "name": "storage.modifier.pervasive.turing"
978
+ },
979
+ "3": {
980
+ "name": "entity.name.type.turing"
981
+ }
982
+ }
983
+ },
984
+ "record": {
985
+ "name": "meta.scope.record-block.turing",
986
+ "begin": "(?:^|\\s+)(record)(?:$|\\s+)",
987
+ "end": "\\b(end)\\s+(record)\\b",
988
+ "patterns": [
989
+ {
990
+ "match": "((\\s*\\w+\\s*,?)+)(:)",
991
+ "captures": {
992
+ "1": {
993
+ "patterns": [
994
+ {
995
+ "include": "#list"
996
+ }
997
+ ]
998
+ },
999
+ "3": {
1000
+ "name": "punctuation.separator.record.key-value.turing"
1001
+ }
1002
+ }
1003
+ },
1004
+ {
1005
+ "include": "$self"
1006
+ }
1007
+ ],
1008
+ "beginCaptures": {
1009
+ "1": {
1010
+ "name": "storage.type.record.turing"
1011
+ }
1012
+ },
1013
+ "endCaptures": {
1014
+ "1": {
1015
+ "name": "keyword.control.end.turing"
1016
+ },
1017
+ "2": {
1018
+ "name": "storage.type.record.turing"
1019
+ }
1020
+ }
1021
+ },
1022
+ "union": {
1023
+ "name": "meta.scope.union.turing",
1024
+ "begin": "\\b(union)\\s+(\\w+)\\s*(:)(.*)\\b(of)\\b",
1025
+ "end": "\\b(end)\\s+(union)\\b",
1026
+ "patterns": [
1027
+ {
1028
+ "include": "#label"
1029
+ },
1030
+ {
1031
+ "include": "$self"
1032
+ }
1033
+ ],
1034
+ "beginCaptures": {
1035
+ "1": {
1036
+ "name": "storage.type.union.turing"
1037
+ },
1038
+ "2": {
1039
+ "name": "entity.name.union.turing"
1040
+ },
1041
+ "3": {
1042
+ "name": "punctuation.separator.key-value.turing"
1043
+ },
1044
+ "4": {
1045
+ "patterns": [
1046
+ {
1047
+ "include": "$self"
1048
+ }
1049
+ ]
1050
+ },
1051
+ "5": {
1052
+ "name": "keyword.operator.of.turing"
1053
+ }
1054
+ },
1055
+ "endCaptures": {
1056
+ "1": {
1057
+ "name": "keyword.control.end.turing"
1058
+ },
1059
+ "2": {
1060
+ "name": "storage.type.union.turing"
1061
+ }
1062
+ }
1063
+ },
1064
+ "stdlib": {
1065
+ "patterns": [
1066
+ {
1067
+ "include": "#modules"
1068
+ },
1069
+ {
1070
+ "include": "#stdproc"
1071
+ },
1072
+ {
1073
+ "match": "\\b(anyclass)\\b",
1074
+ "name": "support.class.anyclass.turing"
1075
+ },
1076
+ {
1077
+ "include": "#keyboard-constants"
1078
+ },
1079
+ {
1080
+ "include": "#math-routines"
1081
+ },
1082
+ {
1083
+ "include": "#str-routines"
1084
+ },
1085
+ {
1086
+ "include": "#typeconv-routines"
1087
+ }
1088
+ ]
1089
+ },
1090
+ "stdproc": {
1091
+ "name": "support.function.${1:/downcase}.turing",
1092
+ "match": "(?x)\\b\n(addr|buttonchoose|buttonmoved|buttonwait|clock|cls|colou?r|colou?rback|date|delay|drawarc|drawbox|drawdot\n|drawfill|drawfillarc|drawfillbox|drawfillmapleleaf|drawfilloval|drawfillpolygon|drawfillstar|drawline\n|drawmapleleaf|drawoval|drawpic|drawpolygon|drawstar|empty|eof|fetcharg|getch|getchar|getenv|getpid\n|getpriority|hasch|locate|locatexy|maxcol|maxcolou?r|maxint|maxnat|maxrow|maxx|maxy|minint|minnat\n|mousewhere|nargs|parallelget|parallelput|play|playdone|pred|rand|randint|randnext|randomize\n|randseed|setpriority|setscreen|simutime|sizeof|sizepic|sound|succ|sysclock|takepic|time|wallclock\n|whatcol|whatcolou?r|whatcolou?rback|whatdotcolou?r|whatrow)\\b"
1093
+ },
1094
+ "keyboard-constants": {
1095
+ "name": "support.constant.keyboard.turing",
1096
+ "match": "(?x)\\b(?:\n(?:KEY|ORD)_(?:\n\tF1[0-2]|F[1-9]|CTRL_[A-Z]|ALT_[A-Z0-9]|(?:CTRL|ALT|SHIFT)_(?:F1[0-2]|F[1-9])|\n\tALT(?:_EQUALS|_MINUS)?|BACK_TAB|BACKSPACE|CTRL|DELETE|END|ENTER|ESC|HOME|INSERT|KEYPAD_5|PGDN|PGUP|SHIFT|SHIFT_TAB|TAB|\n\tCTRL_(?:BACKSLASH|BACKSPACE|CARET|(?:UP|RIGHT|LEFT|DOWN)_ARROW|CLOSE_BRACKET|DELETE|END|HOME|INSERT|OPEN_BRACKET|PGDN|PGUP|UNDERSCORE)|\n\t(?:UP|RIGHT|LEFT|DOWN)_ARROW)\n|\nORD_(?:\n\tAMPERSAND|APOSTROPHE|ASTERISK|BACKSLASH|BAR|CARET|COLON|COMMA|DOT|EQUALS|(?:GREATER|LESS)_THAN|\n\t(?:CLOSE|OPEN)_(?:BRACE|BRACKET|PARENTHESIS)|(?:EXCALAMATION|HAS|QUESTION|QUOTATION)_MARK|MINUS|\n\t(?:AT|DOLLAR|PERCENT)_SIGN|PERIOD|PLUS|SEMICOLON|SINGLE_QUOTE|SLASH|SPACE|TILDE|UNDERSCORE|[A-Z0-9]|LOWER_[A-Z])\n)\\b"
1097
+ },
1098
+ "math-routines": {
1099
+ "name": "support.function.${1:/downcase}.turing",
1100
+ "match": "\\b(abs|arccos|arccosd|arcsin|arcsind|arctan|arctand|cos|cosd|exp|ln|max|min|sign|sin|sind|tan|tand|sqrt)\\b"
1101
+ },
1102
+ "str-routines": {
1103
+ "name": "support.function.${1:/downcase}.turing",
1104
+ "match": "\\b(Lower|Upper|Trim|index|length|repeat)\\b"
1105
+ },
1106
+ "typeconv-routines": {
1107
+ "name": "support.function.${1:/downcase}.turing",
1108
+ "match": "\\b(ceil|chr|erealstr|floor|frealstr|intreal|intstr|natreal|natstr|ord|realstr|round|strint|strintok|strnat|strnatok|strreal|strrealok)\\b"
1109
+ },
1110
+ "modules": {
1111
+ "patterns": [
1112
+ {
1113
+ "match": "\\b(Concurrency)\\b(?:(\\.)(empty|[gs]etpriority|simutime)?\\b)?",
1114
+ "captures": {
1115
+ "1": {
1116
+ "name": "support.class.${1:/downcase}.turing"
1117
+ },
1118
+ "2": {
1119
+ "name": "meta.delimiter.property.period.turing"
1120
+ },
1121
+ "3": {
1122
+ "name": "support.function.$3.turing"
1123
+ }
1124
+ }
1125
+ },
1126
+ {
1127
+ "match": "\\b(Config)\\b(?:(\\.)(Display|Lang|Machine)?\\b)?",
1128
+ "captures": {
1129
+ "1": {
1130
+ "name": "support.class.${1:/downcase}.turing"
1131
+ },
1132
+ "2": {
1133
+ "name": "meta.delimiter.property.period.turing"
1134
+ },
1135
+ "3": {
1136
+ "name": "support.function.${3:/downcase}.turing"
1137
+ }
1138
+ }
1139
+ },
1140
+ {
1141
+ "match": "\\b(Dir)\\b(?:(\\.)(Change|Close|Create|Current|Delete|Get|GetLong|Open)?\\b)?",
1142
+ "captures": {
1143
+ "1": {
1144
+ "name": "support.class.${1:/downcase}.turing"
1145
+ },
1146
+ "2": {
1147
+ "name": "meta.delimiter.property.period.turing"
1148
+ },
1149
+ "3": {
1150
+ "name": "support.function.${3:/downcase}.turing"
1151
+ }
1152
+ }
1153
+ },
1154
+ {
1155
+ "match": "\\b(Draw)\\b(?:(\\.)(Arc|Box|Cls|Dot|Fill|FillArc|FillBox|FillMapleLeaf|FillOval|FillPolygon|FillStar|Line|MapleLeaf|Oval|Polygon|Star|Text)?\\b)?",
1156
+ "captures": {
1157
+ "1": {
1158
+ "name": "support.class.${1:/downcase}.turing"
1159
+ },
1160
+ "2": {
1161
+ "name": "meta.delimiter.property.period.turing"
1162
+ },
1163
+ "3": {
1164
+ "name": "support.function.${3:/downcase}.turing"
1165
+ }
1166
+ }
1167
+ },
1168
+ {
1169
+ "match": "\\b(Error)\\b(?:(\\.)(Last|LastMsg|LastStr|Msg|Str|Trip)?\\b)?",
1170
+ "captures": {
1171
+ "1": {
1172
+ "name": "support.class.${1:/downcase}.turing"
1173
+ },
1174
+ "2": {
1175
+ "name": "meta.delimiter.property.period.turing"
1176
+ },
1177
+ "3": {
1178
+ "name": "support.function.${3:/downcase}.turing"
1179
+ }
1180
+ }
1181
+ },
1182
+ {
1183
+ "match": "\\b(ErrorNum|Exceptions)\\b(?:(\\.)(\\w+)?\\b)?",
1184
+ "captures": {
1185
+ "1": {
1186
+ "name": "support.class.${1:/downcase}.turing"
1187
+ },
1188
+ "2": {
1189
+ "name": "meta.delimiter.property.period.turing"
1190
+ },
1191
+ "3": {
1192
+ "name": "support.function.${3:/downcase}.turing"
1193
+ }
1194
+ }
1195
+ },
1196
+ {
1197
+ "match": "\\b(File)\\b(?:(\\.)(Copy|Delete|DiskFree|Exists|Rename|Status)?\\b)?",
1198
+ "captures": {
1199
+ "1": {
1200
+ "name": "support.class.${1:/downcase}.turing"
1201
+ },
1202
+ "2": {
1203
+ "name": "meta.delimiter.property.period.turing"
1204
+ },
1205
+ "3": {
1206
+ "name": "support.function.${3:/downcase}.turing"
1207
+ }
1208
+ }
1209
+ },
1210
+ {
1211
+ "match": "\\b(Font)\\b(?:(\\.)(Draw|Free|GetName|GetSize|GetStyle|Name|New|Sizes|StartName|StartSize|Width)?\\b)?",
1212
+ "captures": {
1213
+ "1": {
1214
+ "name": "support.class.${1:/downcase}.turing"
1215
+ },
1216
+ "2": {
1217
+ "name": "meta.delimiter.property.period.turing"
1218
+ },
1219
+ "3": {
1220
+ "name": "support.function.${3:/downcase}.turing"
1221
+ }
1222
+ }
1223
+ },
1224
+ {
1225
+ "match": "(?x)\\b(GUI)\\b(?:(\\.)\n(AddLine|AddText|Alert|Alert2|Alert3|AlertFull|Choose|ChooseFull|ClearText|CloseWindow|CreateButton|CreateButtonFull\n|CreateCanvas|CreateCanvasFull|CreateCheckBox|CreateCheckBoxFull|CreateFrame|CreateHorizontalScrollBar|CreateHorizontalScrollBarFull\n|CreateHorizontalSlider|CreateLabel|CreateLabelFull|CreateLabelledFrame|CreateLine|CreateMenu|CreateMenuItem|CreateMenuItemFull\n|CreatePicture|CreatePictureButton|CreatePictureButtonFull|CreatePictureRadioButton|CreatePictureRadioButtonFull|CreateRadioButton\n|CreateRadioButtonFull|CreateTextBox|CreateTextBoxFull|CreateTextField|CreateTextFieldFull|CreateVerticalScrollBar|CreateVerticalScrollBarFull\n|CreateVerticalSlider|Disable|Dispose|DrawArc|DrawBox|DrawCls|DrawDot|DrawFill|DrawFillArc|DrawFillBox|DrawFillMapleLeaf|DrawFillOval\n|DrawFillPolygon|DrawFillStar|DrawLine|DrawMapleLeaf|DrawOval|DrawPolygon|DrawStar|DrawText|Enable|FontDraw|GetCheckBox|GetEventTime\n|GetEventWidgetID|GetEventWindow|GetHeight|GetMenuBarHeight|GetScrollBarWidth|GetSliderValue|GetText|GetVersion|GetWidth|GetX|GetY|Hide\n|HideMenuBar|OpenFile|OpenFileFull|PicDraw|PicNew|PicScreenLoad|PicScreenSave|ProcessEvent|Quit|Refresh|SaveFile|SaveFileFull|SelectRadio\n|SetActive|SetBackgroundColor|SetBackgroundColour|SetCheckBox|SetDefault|SetDisplayWhenCreated|SetKeyEventHandler|SetLabel|SetMouseEventHandler\n|SetNullEventHandler|SetPosition|SetPositionAndSize|SetScrollAmount|SetSelection|SetSize|SetSliderMinMax|SetSliderReverse|SetSliderSize\n|SetSliderValue|SetText|SetXOR|Show|ShowMenuBar)?\\b)?",
1226
+ "captures": {
1227
+ "1": {
1228
+ "name": "support.class.${1:/downcase}.turing"
1229
+ },
1230
+ "2": {
1231
+ "name": "meta.delimiter.property.period.turing"
1232
+ },
1233
+ "3": {
1234
+ "name": "support.function.${3:/downcase}.turing"
1235
+ }
1236
+ }
1237
+ },
1238
+ {
1239
+ "match": "\\b(Input)\\b(?:(\\.)(getch|getchar|hasch|KeyDown|Pause)?\\b)?",
1240
+ "captures": {
1241
+ "1": {
1242
+ "name": "support.class.${1:/downcase}.turing"
1243
+ },
1244
+ "2": {
1245
+ "name": "meta.delimiter.property.period.turing"
1246
+ },
1247
+ "3": {
1248
+ "name": "support.function.${3:/downcase}.turing"
1249
+ }
1250
+ }
1251
+ },
1252
+ {
1253
+ "match": "\\b(Joystick)\\b(?:(\\.)(GetInfo)?\\b)?",
1254
+ "captures": {
1255
+ "1": {
1256
+ "name": "support.class.${1:/downcase}.turing"
1257
+ },
1258
+ "2": {
1259
+ "name": "meta.delimiter.property.period.turing"
1260
+ },
1261
+ "3": {
1262
+ "name": "support.function.${3:/downcase}.turing"
1263
+ }
1264
+ }
1265
+ },
1266
+ {
1267
+ "match": "\\b(Keyboard)\\b(?:(\\.)(\\w+)?\\b)?",
1268
+ "captures": {
1269
+ "1": {
1270
+ "name": "support.class.${1:/downcase}.turing"
1271
+ },
1272
+ "2": {
1273
+ "name": "meta.delimiter.property.period.turing"
1274
+ },
1275
+ "3": {
1276
+ "patterns": [
1277
+ {
1278
+ "include": "#keyboard-constants"
1279
+ }
1280
+ ]
1281
+ }
1282
+ }
1283
+ },
1284
+ {
1285
+ "match": "\\b(Limits)\\b(?:(\\.)(DefaultFW|DefaultEW|minint|maxint|minnat|maxnat)?\\b)?",
1286
+ "captures": {
1287
+ "1": {
1288
+ "name": "support.class.${1:/downcase}.turing"
1289
+ },
1290
+ "2": {
1291
+ "name": "meta.delimiter.property.period.turing"
1292
+ },
1293
+ "3": {
1294
+ "name": "support.function.${3:/downcase}.turing"
1295
+ }
1296
+ }
1297
+ },
1298
+ {
1299
+ "match": "(?x)\\b(Math)\\b(?:(\\.)(?:(PI|E)|(Distance|DistancePointLine)|(\\w+))?\\b)?",
1300
+ "captures": {
1301
+ "1": {
1302
+ "name": "support.class.${1:/downcase}.turing"
1303
+ },
1304
+ "2": {
1305
+ "name": "meta.delimiter.property.period.turing"
1306
+ },
1307
+ "3": {
1308
+ "name": "support.constant.${3:/downcase}.turing"
1309
+ },
1310
+ "4": {
1311
+ "name": "support.function.${4:/downcase}.turing"
1312
+ },
1313
+ "5": {
1314
+ "patterns": [
1315
+ {
1316
+ "include": "#math-routines"
1317
+ }
1318
+ ]
1319
+ }
1320
+ }
1321
+ },
1322
+ {
1323
+ "match": "\\b(Mouse)\\b(?:(\\.)(ButtonChoose|ButtonMoved|ButtonWait|Where)?\\b)?",
1324
+ "captures": {
1325
+ "1": {
1326
+ "name": "support.class.${1:/downcase}.turing"
1327
+ },
1328
+ "2": {
1329
+ "name": "meta.delimiter.property.period.turing"
1330
+ },
1331
+ "3": {
1332
+ "name": "support.function.${3:/downcase}.turing"
1333
+ }
1334
+ }
1335
+ },
1336
+ {
1337
+ "match": "\\b(Music)\\b(?:(\\.)(Play|PlayFile|PlayFileStop|Sound|SoundOff)?\\b)?",
1338
+ "captures": {
1339
+ "1": {
1340
+ "name": "support.class.${1:/downcase}.turing"
1341
+ },
1342
+ "2": {
1343
+ "name": "meta.delimiter.property.period.turing"
1344
+ },
1345
+ "3": {
1346
+ "name": "support.function.${3:/downcase}.turing"
1347
+ }
1348
+ }
1349
+ },
1350
+ {
1351
+ "match": "(?x)\n\\b(Net)\\b(?:(\\.)\n(BytesAvailable|CharAvailable|CloseConnection|HostAddressFromName|HostNameFromAddress\n|LineAvailable|LocalAddress|LocalName|OpenConnection|OpenURLConnection|TokenAvailable\n|WaitForConnection)?\\b)?",
1352
+ "captures": {
1353
+ "1": {
1354
+ "name": "support.class.${1:/downcase}.turing"
1355
+ },
1356
+ "2": {
1357
+ "name": "meta.delimiter.property.period.turing"
1358
+ },
1359
+ "3": {
1360
+ "name": "support.function.${3:/downcase}.turing"
1361
+ }
1362
+ }
1363
+ },
1364
+ {
1365
+ "match": "\\b(PC)\\b(?:(\\.)(ParallelGet|ParallelPut)?\\b)?",
1366
+ "captures": {
1367
+ "1": {
1368
+ "name": "support.class.${1:/downcase}.turing"
1369
+ },
1370
+ "2": {
1371
+ "name": "meta.delimiter.property.period.turing"
1372
+ },
1373
+ "3": {
1374
+ "name": "support.function.${3:/downcase}.turing"
1375
+ }
1376
+ }
1377
+ },
1378
+ {
1379
+ "match": "(?x)\n\\b(Pic)\\b(?:(\\.)\n(Blend|Blur|Draw|DrawFrames|DrawFramesBack|DrawSpecial|DrawSpecialBack|FileNew\n|FileNewFrames|Flip|Frames|Free|Height|Mirror|New|Rotate|Save|Scale|ScreenLoad\n|ScreenSave|SetTransparentColou?r|Width)?\n\\b)?",
1380
+ "captures": {
1381
+ "1": {
1382
+ "name": "support.class.${1:/downcase}.turing"
1383
+ },
1384
+ "2": {
1385
+ "name": "meta.delimiter.property.period.turing"
1386
+ },
1387
+ "3": {
1388
+ "name": "support.function.${3:/downcase}.turing"
1389
+ }
1390
+ }
1391
+ },
1392
+ {
1393
+ "match": "\\b(Rand)\\b(?:(\\.)(Int|Next|Real|Reset|Seed|Set)?\\b)?",
1394
+ "captures": {
1395
+ "1": {
1396
+ "name": "support.class.${1:/downcase}.turing"
1397
+ },
1398
+ "2": {
1399
+ "name": "meta.delimiter.property.period.turing"
1400
+ },
1401
+ "3": {
1402
+ "name": "support.function.${3:/downcase}.turing"
1403
+ }
1404
+ }
1405
+ },
1406
+ {
1407
+ "match": "\\b(RGB)\\b(?:(\\.)(AddColou?r|[GS]etColou?r|maxcolou?r)?\\b)?",
1408
+ "captures": {
1409
+ "1": {
1410
+ "name": "support.class.${1:/downcase}.turing"
1411
+ },
1412
+ "2": {
1413
+ "name": "meta.delimiter.property.period.turing"
1414
+ },
1415
+ "3": {
1416
+ "name": "support.function.${3:/downcase}.turing"
1417
+ }
1418
+ }
1419
+ },
1420
+ {
1421
+ "match": "\\b(Sprite)\\b(?:(\\.)(Animate|ChangePic|Free|Hide|New|SetFrameRate|SetHeight|SetPosition|Show)?\\b)?",
1422
+ "captures": {
1423
+ "1": {
1424
+ "name": "support.class.${1:/downcase}.turing"
1425
+ },
1426
+ "2": {
1427
+ "name": "meta.delimiter.property.period.turing"
1428
+ },
1429
+ "3": {
1430
+ "name": "support.function.${3:/downcase}.turing"
1431
+ }
1432
+ }
1433
+ },
1434
+ {
1435
+ "match": "\\b(Stream)\\b(?:(\\.)(eof|Flush|FlushAll)?\\b)?",
1436
+ "captures": {
1437
+ "1": {
1438
+ "name": "support.class.${1:/downcase}.turing"
1439
+ },
1440
+ "2": {
1441
+ "name": "meta.delimiter.property.period.turing"
1442
+ },
1443
+ "3": {
1444
+ "name": "support.function.${3:/downcase}.turing"
1445
+ }
1446
+ }
1447
+ },
1448
+ {
1449
+ "match": "\\b(Str)\\b(?:(\\.)(\\w+)?\\b)?",
1450
+ "captures": {
1451
+ "1": {
1452
+ "name": "support.class.${1:/downcase}.turing"
1453
+ },
1454
+ "2": {
1455
+ "name": "meta.delimiter.property.period.turing"
1456
+ },
1457
+ "3": {
1458
+ "patterns": [
1459
+ {
1460
+ "include": "#str-routines"
1461
+ }
1462
+ ]
1463
+ }
1464
+ }
1465
+ },
1466
+ {
1467
+ "match": "\\b(Sys)\\b(?:(\\.)(Exec|FetchArg|GetComputerName|GetEnv|GetPid|GetUserName|Nargs)?\\b)?",
1468
+ "captures": {
1469
+ "1": {
1470
+ "name": "support.class.${1:/downcase}.turing"
1471
+ },
1472
+ "2": {
1473
+ "name": "meta.delimiter.property.period.turing"
1474
+ },
1475
+ "3": {
1476
+ "name": "support.function.${3:/downcase}.turing"
1477
+ }
1478
+ }
1479
+ },
1480
+ {
1481
+ "match": "\\b(Text)\\b(?:(\\.)(Cls|Colou?r|Colou?rBack|Locate|LocateXY|maxcol|maxrow|WhatCol|WhatColou?r|WhatColou?rBack|WhatRow)?\\b)?",
1482
+ "captures": {
1483
+ "1": {
1484
+ "name": "support.class.${1:/downcase}.turing"
1485
+ },
1486
+ "2": {
1487
+ "name": "meta.delimiter.property.period.turing"
1488
+ },
1489
+ "3": {
1490
+ "name": "support.function.${3:/downcase}.turing"
1491
+ }
1492
+ }
1493
+ },
1494
+ {
1495
+ "match": "\\b(Time)\\b(?:(\\.)(Date|DateSec|Delay|Elapsed|ElapsedCPU|PartsSec|Sec|SecDate|SecParts)?\\b)?",
1496
+ "captures": {
1497
+ "1": {
1498
+ "name": "support.class.${1:/downcase}.turing"
1499
+ },
1500
+ "2": {
1501
+ "name": "meta.delimiter.property.period.turing"
1502
+ },
1503
+ "3": {
1504
+ "name": "support.function.${3:/downcase}.turing"
1505
+ }
1506
+ }
1507
+ },
1508
+ {
1509
+ "match": "\\b(TypeConv)\\b(?:(\\.)(\\w+)?\\b)?",
1510
+ "captures": {
1511
+ "1": {
1512
+ "name": "support.class.${1:/downcase}.turing"
1513
+ },
1514
+ "2": {
1515
+ "name": "meta.delimiter.property.period.turing"
1516
+ },
1517
+ "3": {
1518
+ "patterns": [
1519
+ {
1520
+ "include": "#typeconv-routines"
1521
+ }
1522
+ ]
1523
+ }
1524
+ }
1525
+ },
1526
+ {
1527
+ "match": "\\b(View)\\b(?:(\\.)(ClipAdd|ClipOff|ClipSet|maxcolou?r|maxx|maxy|Set|Update|WhatDotColou?r)?\\b)?",
1528
+ "captures": {
1529
+ "1": {
1530
+ "name": "support.class.${1:/downcase}.turing"
1531
+ },
1532
+ "2": {
1533
+ "name": "meta.delimiter.property.period.turing"
1534
+ },
1535
+ "3": {
1536
+ "name": "support.function.${3:/downcase}.turing"
1537
+ }
1538
+ }
1539
+ },
1540
+ {
1541
+ "match": "\\b(Window)\\b(?:(\\.)(Close|GetActive|GetPosition|GetSelect|Hide|Open|Select|Set|SetActive|SetPosition|Show|Update)?\\b)?",
1542
+ "captures": {
1543
+ "1": {
1544
+ "name": "support.class.${1:/downcase}.turing"
1545
+ },
1546
+ "2": {
1547
+ "name": "meta.delimiter.property.period.turing"
1548
+ },
1549
+ "3": {
1550
+ "name": "support.function.${3:/downcase}.turing"
1551
+ }
1552
+ }
1553
+ }
1554
+ ]
1555
+ }
1556
+ }
1557
+ }