github-linguist 5.2.0 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +1445 -0
  3. data/grammars/hint.haskell.json +134 -17
  4. data/grammars/hint.message.haskell.json +134 -17
  5. data/grammars/hint.type.haskell.json +134 -17
  6. data/grammars/source.abl.json +48 -48
  7. data/grammars/source.afm.json +8 -1
  8. data/grammars/source.angelscript.json +195 -0
  9. data/grammars/source.ats.json +128 -58
  10. data/grammars/source.awk.json +138 -138
  11. data/grammars/source.ballerina.json +434 -0
  12. data/grammars/source.chapel.json +1 -1
  13. data/grammars/source.clips.json +20 -20
  14. data/grammars/source.cobol.json +4 -3
  15. data/grammars/source.coffee.json +556 -109
  16. data/grammars/source.cs.json +10 -5
  17. data/grammars/source.csound-document.json +1 -1
  18. data/grammars/source.csound-score.json +9 -9
  19. data/grammars/source.csound.json +23 -28
  20. data/grammars/source.css.json +6 -5
  21. data/grammars/source.data-weave.json +1584 -0
  22. data/grammars/source.elixir.json +3 -61
  23. data/grammars/source.elm.json +88 -88
  24. data/grammars/source.emacs.lisp.json +12 -1
  25. data/grammars/source.haskell.json +134 -17
  26. data/grammars/source.hsig.json +1376 -0
  27. data/grammars/source.httpspec.json +128 -128
  28. data/grammars/source.jison.json +6 -14
  29. data/grammars/source.jisonlex.json +1 -9
  30. data/grammars/source.js.json +1 -0
  31. data/grammars/source.js.regexp.json +0 -4
  32. data/grammars/source.js.regexp.replacement.json +0 -4
  33. data/grammars/source.jsdoc.json +3 -3
  34. data/grammars/source.lsl.json +146 -53
  35. data/grammars/source.mercury.json +166 -166
  36. data/grammars/source.ne.json +108 -0
  37. data/grammars/source.nim_filter.json +51 -51
  38. data/grammars/source.nut.json +266 -0
  39. data/grammars/source.opal.json +112 -112
  40. data/grammars/source.opalsysdefs.json +16 -16
  41. data/grammars/source.pan.json +1 -1
  42. data/grammars/source.papyrus.skyrim.json +720 -720
  43. data/grammars/source.pawn.json +2 -2
  44. data/grammars/source.prolog.eclipse.json +42 -42
  45. data/grammars/source.prolog.json +41 -41
  46. data/grammars/source.purescript.json +41 -25
  47. data/grammars/source.python.json +47 -34
  48. data/grammars/source.racket.json +54 -54
  49. data/grammars/source.reason.json +37 -3
  50. data/grammars/source.regexp.python.json +31 -0
  51. data/grammars/source.ruby.gemfile.json +27 -0
  52. data/grammars/source.ruby.json +1057 -356
  53. data/grammars/source.rust.json +1 -1
  54. data/grammars/source.sbt.json +13 -3
  55. data/grammars/source.scala.json +74 -55
  56. data/grammars/source.shaderlab.json +1 -1
  57. data/grammars/source.shell.json +26 -21
  58. data/grammars/source.shen.json +91 -91
  59. data/grammars/source.sqf.json +1 -1
  60. data/grammars/source.supercollider.json +1 -1
  61. data/grammars/source.swift.json +4 -0
  62. data/grammars/source.terra.json +36 -37
  63. data/grammars/source.terraform.json +98 -98
  64. data/grammars/source.ts.json +2231 -1677
  65. data/grammars/source.tsx.json +142 -3520
  66. data/grammars/source.vbnet.json +201 -263
  67. data/grammars/source.viml.json +2 -2
  68. data/grammars/source.wdl.json +200 -0
  69. data/grammars/source.yaml.json +34 -16
  70. data/grammars/text.find-refs.json +3 -3
  71. data/grammars/text.haml.json +1 -1
  72. data/grammars/text.html.abl.json +6 -6
  73. data/grammars/text.html.erb.json +8 -11
  74. data/grammars/text.html.php.blade.json +256 -220
  75. data/grammars/text.html.vue.json +1 -1
  76. data/grammars/text.slim.json +31 -17
  77. data/grammars/text.tex.latex.haskell.json +150 -33
  78. data/lib/linguist/heuristics.rb +8 -0
  79. data/lib/linguist/languages.json +1 -1
  80. data/lib/linguist/languages.yml +82 -26
  81. data/lib/linguist/samples.json +134512 -132868
  82. data/lib/linguist/vendor.yml +3 -0
  83. data/lib/linguist/version.rb +1 -1
  84. metadata +13 -4
@@ -390,7 +390,7 @@
390
390
  },
391
391
  {
392
392
  "name": "meta.metadata.${1:/downcase}.afm",
393
- "begin": "^(IsBaseFont|IsFixedV)(?=\\s|$)",
393
+ "begin": "^(IsBaseFont|IsFixedV|IsCIDFont)(?=\\s|$)",
394
394
  "end": "^|$",
395
395
  "patterns": [
396
396
  {
@@ -826,6 +826,13 @@
826
826
  "beginCaptures": {
827
827
  "1": {
828
828
  "name": "keyword.control.start.${2:/downcase}.afm"
829
+ },
830
+ "3": {
831
+ "patterns": [
832
+ {
833
+ "include": "#integer"
834
+ }
835
+ ]
829
836
  }
830
837
  },
831
838
  "endCaptures": {
@@ -0,0 +1,195 @@
1
+ {
2
+ "comment": "Made by Wronex :D",
3
+ "fileTypes": [
4
+ "as"
5
+ ],
6
+ "firstLineMatch": "-\\*- C\\+\\+ -\\*-",
7
+ "foldingStartMarker": "(?x)\n\t\t /\\*\\*(?!\\*)\n\t\t|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))\n\t",
8
+ "foldingStopMarker": "(?<!\\*)\\*\\*/|^\\s*\\}",
9
+ "keyEquivalent": "^~C",
10
+ "name": "AngelScript",
11
+ "patterns": [
12
+ {
13
+ "captures": {
14
+ "1": {
15
+ "name": "punctuation.definition.comment.angelscript"
16
+ }
17
+ },
18
+ "match": "(//).*$\\n?",
19
+ "name": "comment.line.double-slash.angelscript"
20
+ },
21
+ {
22
+ "begin": "/\\*",
23
+ "captures": {
24
+ "0": {
25
+ "name": "punctuation.definition.comment.angelscript"
26
+ }
27
+ },
28
+ "end": "\\*/",
29
+ "name": "comment.block.angelscript"
30
+ },
31
+ {
32
+ "begin": "\"\"\"",
33
+ "beginCaptures": {
34
+ "0": {
35
+ "name": "punctuation.definition.string.begin.angelscript"
36
+ }
37
+ },
38
+ "end": "\"\"\"",
39
+ "endCaptures": {
40
+ "0": {
41
+ "name": "punctuation.definition.string.end.angelscript"
42
+ }
43
+ },
44
+ "name": "string.quoted.double.angelscript"
45
+ },
46
+ {
47
+ "begin": "\"",
48
+ "beginCaptures": {
49
+ "0": {
50
+ "name": "punctuation.definition.string.begin.angelscript"
51
+ }
52
+ },
53
+ "end": "\"",
54
+ "endCaptures": {
55
+ "0": {
56
+ "name": "punctuation.definition.string.end.angelscript"
57
+ }
58
+ },
59
+ "name": "string.quoted.double.angelscript",
60
+ "patterns": [
61
+ {
62
+ "match": "\\\\.",
63
+ "name": "constant.character.escape.angelscript"
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ "begin": "'",
69
+ "beginCaptures": {
70
+ "0": {
71
+ "name": "punctuation.definition.string.begin.angelscript"
72
+ }
73
+ },
74
+ "end": "'",
75
+ "endCaptures": {
76
+ "0": {
77
+ "name": "punctuation.definition.string.end.angelscript"
78
+ }
79
+ },
80
+ "name": "string.quoted.single.angelscript",
81
+ "patterns": [
82
+ {
83
+ "match": "\\\\.",
84
+ "name": "constant.character.escape.angelscript"
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "match": "(~|!|&&|\\|\\|)",
90
+ "name": "keyword.operator.logical.angelscript"
91
+ },
92
+ {
93
+ "match": "[-!%&><@*+=/?:]",
94
+ "name": "keyword.operator.symbolic.angelscript"
95
+ },
96
+ {
97
+ "match": "\\b(for|in|break|continue|while|do|return|if|else|case|switch|namespace)\\b",
98
+ "name": "keyword.control.angelscript"
99
+ },
100
+ {
101
+ "match": "\\b(is|cast)\\b",
102
+ "name": "keyword.operator.angelscript"
103
+ },
104
+ {
105
+ "match": "\\b(or|and|xor|not)\\b",
106
+ "name": "keyword.operator.logical.angelscript"
107
+ },
108
+ {
109
+ "match": "\\b(get|in|inout|out|override|set|private|public|const|default|final|shared|mixin)\\b",
110
+ "name": "storage.modifier.angelscript"
111
+ },
112
+ {
113
+ "match": "\\b(enum|void|bool|typedef|funcdef|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)\\b",
114
+ "name": "storage.type.angelscript"
115
+ },
116
+ {
117
+ "match": "[A-Za-z][A-Za-z0-9]+@",
118
+ "name": "storage.type.angelscript"
119
+ },
120
+ {
121
+ "match": "\\b(null|true|false)\\b",
122
+ "name": "constant.language.angelscript"
123
+ },
124
+ {
125
+ "match": "\\b(this|super)\\b",
126
+ "name": "variable.language.angelscript"
127
+ },
128
+ {
129
+ "match": "\\b(import|from)\\b",
130
+ "name": "keyword.control.import.angelscript"
131
+ },
132
+ {
133
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",
134
+ "name": "constant.numeric.angelscript"
135
+ },
136
+ {
137
+ "match": "^\\s*\\#([a-zA-Z_0-9]*)?",
138
+ "name": "keyword.control.import.angelscript"
139
+ },
140
+ {
141
+ "captures": {
142
+ "1": {
143
+ "name": "markup.heading.angelscript"
144
+ }
145
+ },
146
+ "match": "^\\s*\\[(.*)\\]\\s*?",
147
+ "name": "meta.metadata.angelscript"
148
+ },
149
+ {
150
+ "match": "\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()",
151
+ "name": "variable.other.dot-access.angelscript"
152
+ },
153
+ {
154
+ "captures": {
155
+ "1": {
156
+ "name": "storage.type.class.angelscript"
157
+ },
158
+ "2": {
159
+ "name": "entity.name.type.class.angelscript"
160
+ },
161
+ "3": {
162
+ "name": "entity.other.inherited-class.angelscript"
163
+ },
164
+ "5": {
165
+ "name": "entity.other.inherited-class.angelscript"
166
+ },
167
+ "7": {
168
+ "name": "entity.other.inherited-class.angelscript"
169
+ },
170
+ "9": {
171
+ "name": "entity.other.inherited-class.angelscript"
172
+ },
173
+ "11": {
174
+ "name": "entity.other.inherited-class.angelscript"
175
+ }
176
+ },
177
+ "match": "\\b(class|interface)\\s+([a-zA-Z_0-9]*)(?:\\s*:\\s*([a-zA-Z_0-9]*)(\\s*,\\s*([a-zA-Z_0-9]*))?(\\s*,\\s*([a-zA-Z_0-9]*))?(\\s*,\\s*([a-zA-Z_0-9]*))?(\\s*,\\s*([a-zA-Z_0-9]*))?)?",
178
+ "name": "meta.class.angelscript"
179
+ },
180
+ {
181
+ "captures": {
182
+ "2": {
183
+ "name": "meta.function-call.angelscript"
184
+ }
185
+ },
186
+ "match": "(\\b|\\.)([a-zA-Z_][a-zA-Z_0-9]*)\\b(\\s*\\()"
187
+ },
188
+ {
189
+ "match": "\\b([A-Z][A-Z0-9_]+)\\b",
190
+ "name": "constant.other.angelscript"
191
+ }
192
+ ],
193
+ "scopeName": "source.angelscript",
194
+ "uuid": "69E25C06-FA48-4207-BF35-11353888A8F6"
195
+ }
@@ -1,13 +1,17 @@
1
1
  {
2
- "name": "ATS",
3
- "scopeName": "source.ats",
4
2
  "fileTypes": [
5
3
  "dats",
6
4
  "sats",
7
5
  "hats"
8
6
  ],
9
- "uuid": "c3b7ee53-6117-4cdf-80ea-d0572e54aed7",
7
+ "name": "ATS",
10
8
  "patterns": [
9
+ {
10
+ "include": "#quantifier_curly"
11
+ },
12
+ {
13
+ "include": "#quantifier_square"
14
+ },
11
15
  {
12
16
  "include": "#block"
13
17
  },
@@ -18,7 +22,10 @@
18
22
  "include": "#comment_line"
19
23
  },
20
24
  {
21
- "include": "#comment_block"
25
+ "include": "#comment_block_c"
26
+ },
27
+ {
28
+ "include": "#comment_block_sml"
22
29
  },
23
30
  {
24
31
  "include": "#embed"
@@ -27,13 +34,13 @@
27
34
  "include": "#operators"
28
35
  },
29
36
  {
30
- "include": "#quantifier_curly"
37
+ "include": "#quantifier_arrow"
31
38
  },
32
39
  {
33
- "include": "#quantifier_square"
40
+ "include": "#definition_function"
34
41
  },
35
42
  {
36
- "include": "#quantifier_arrow"
43
+ "include": "#definition_type"
37
44
  },
38
45
  {
39
46
  "include": "#keywords"
@@ -41,6 +48,9 @@
41
48
  {
42
49
  "include": "#keywords_types"
43
50
  },
51
+ {
52
+ "include": "#false_true"
53
+ },
44
54
  {
45
55
  "include": "#string"
46
56
  },
@@ -55,88 +65,156 @@
55
65
  },
56
66
  {
57
67
  "include": "#number"
68
+ },
69
+ {
70
+ "include": "#identifier"
58
71
  }
59
72
  ],
60
73
  "repository": {
61
- "comment_block": {
62
- "name": "comment.block",
74
+ "block": {
75
+ "applyEndPatternLast": 1,
76
+ "begin": "(?<=where|=|^|then|else|\\$rec|\\$rec_t|\\$rec_vt)(?:\\s*)\\{",
77
+ "end": "\\}",
78
+ "name": "meta.block",
79
+ "patterns": [
80
+ {
81
+ "include": "$self"
82
+ }
83
+ ]
84
+ },
85
+ "char": {
86
+ "match": "(')([^\\\\]{0,1}|\\\\(\\\\|[abefpnrtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8}))(')",
87
+ "name": "string.quoted.double"
88
+ },
89
+ "comment_block_c": {
90
+ "applyEndPatternLast": 1,
91
+ "begin": "/\\*",
92
+ "end": "\\*/",
93
+ "name": "comment.block"
94
+ },
95
+ "comment_block_sml": {
96
+ "applyEndPatternLast": 1,
63
97
  "begin": "\\(\\*",
64
98
  "end": "\\*\\)",
99
+ "name": "comment.block",
65
100
  "patterns": [
66
101
  {
67
- "include": "#comment_block"
102
+ "include": "#comment_block_sml"
68
103
  }
69
- ],
70
- "applyEndPatternLast": 1
104
+ ]
71
105
  },
72
106
  "comment_line": {
73
- "name": "comment.line.double-slash",
74
- "match": "//.*$"
107
+ "match": "//.*$",
108
+ "name": "comment.line.double-slash"
75
109
  },
76
110
  "comment_rest": {
77
- "name": "comment",
111
+ "applyEndPatternLast": 1,
78
112
  "begin": "////",
79
113
  "end": ".\\z",
114
+ "name": "comment.block",
80
115
  "patterns": [
81
116
  {
82
117
  "match": ".*"
83
118
  }
84
- ],
85
- "applyEndPatternLast": 1
119
+ ]
86
120
  },
87
- "records": {
88
- "begin": "('|@)({)",
89
- "end": "(})",
121
+ "definition_function": {
122
+ "begin": "\\b(?:castfn|fn|fun|implement|implmnt|infixl|infixr|infix|overload|postfix|praxi|prfn|prfun|primplement|primplmnt|var)\\b",
123
+ "beginCaptures": {
124
+ "0": {
125
+ "name": "keyword"
126
+ }
127
+ },
128
+ "end": "\\b[a-zA-Z][a-zA-Z0-9_']*\\b",
129
+ "endCaptures": {
130
+ "0": {
131
+ "name": "entity.name.function"
132
+ }
133
+ },
134
+ "name": "meta.function-definition",
90
135
  "patterns": [
91
136
  {
92
137
  "include": "$self"
93
138
  }
94
139
  ]
95
140
  },
96
- "tuples": {
97
- "begin": "('|@)\\(",
98
- "end": "(\\))",
141
+ "definition_type": {
142
+ "begin": "\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|stacst|typedef)\\b",
143
+ "beginCaptures": {
144
+ "0": {
145
+ "name": "keyword"
146
+ }
147
+ },
148
+ "end": "\\b[a-zA-Z][a-zA-Z0-9_']*\\b",
149
+ "endCaptures": {
150
+ "0": {
151
+ "name": "entity.name.type storage.type"
152
+ }
153
+ },
154
+ "name": "meta.type-definition",
99
155
  "patterns": [
100
156
  {
101
157
  "include": "$self"
102
158
  }
103
159
  ]
104
160
  },
161
+ "embed": {
162
+ "begin": "(%{)",
163
+ "end": "(%})",
164
+ "name": "meta"
165
+ },
166
+ "false_true": {
167
+ "match": "\\b(?:false|true)\\b",
168
+ "name": "constant.language.boolean"
169
+ },
170
+ "identifier": {
171
+ "match": "\\b[a-zA-Z][a-zA-Z0-9_']*\\b",
172
+ "name": "identifier"
173
+ },
105
174
  "keywords": {
106
- "name": "keyword",
107
- "match": "(\\#|\\$)(\\w+)|\\b(castfn|and|andalso|assume|as|begin|break|case(\\+|-)?|class|continue|dynload|dyn|else|end|exception|extern|fix|fn|for|fun|if|implement|implmnt|primplement|primplmnt|infixl|infixr|infix|in|lam|let|llam|local|macdef|macrodef|method|modprop|modtype|module|nonfix|object|of|op|or|orelse|overload|par|postfix|praxi|prefix|prfn|prfun|prval|rec|sif|staif|staload|stavar|sta|struct|symelim|symintr|then|try|union|val(\\+|-)?|var|when|where|while|withprop|withtype|withviewtype|withview|with)\\b"
175
+ "match": "(\\#|\\$)(\\w+)|\\b(castfn|and|andalso|assume|as|begin|break|case(\\+|-)?|class|continue|dynload|dyn|else|end|exception|extern|fix|fn|for|fun|if|implement|implmnt|primplement|primplmnt|infixl|infixr|infix|in|lam|let|llam|local|macdef|macrodef|method|modprop|modtype|module|nonfix|object|of|op|or|orelse|overload|par|postfix|praxi|prefix|prfn|prfun|prval|rec|scase|sif|stacst|staif|staload|stavar|sta|struct|symelim|symintr|then|try|union|val(\\+|-)?|var|when|where|while|withprop|withtype|withviewtype|withview|with)\\b",
176
+ "name": "keyword"
108
177
  },
109
178
  "keywords_types": {
110
- "name": "keyword",
111
- "match": "(\\#|\\$)(\\w+)|\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|typedef|)\\b"
179
+ "match": "(\\#|\\$)(\\w+)|\\b(abstype|abst@ype|abst0pe|absvtype|absvt@ype|absvt0pe|absviewtype|absviewt@ype|absviewt0pe|absview|absprop|datatype|datavtype|dataviewtype|dataview|dataprop|datasort|sortdef|propdef|viewdef|viewtypedef|vtypedef|stadef|typedef)\\b",
180
+ "name": "keyword"
181
+ },
182
+ "number": {
183
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|~)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b",
184
+ "name": "constant.numeric"
112
185
  },
113
186
  "operators": {
114
- "name": "keyword.operator",
115
- "match": "!=|!|%|&&|&|\\*|\\+|-|-->|->|/|:=|<=|(?<=\\s)<|==>|=>|=|>=|>>|>|\\?|\\|\\||\\||~|\\[\\]"
187
+ "match": "!=|!|%|&&|&|\\*|\\+|-|-->|->|/|:=|<=|(?<=\\s)<|==>|=>|=|>=|>>|>|\\?|\\|\\||\\||~|\\[\\]",
188
+ "name": "keyword.operator"
116
189
  },
117
190
  "quantifier_arrow": {
118
- "name": "support.type",
119
191
  "begin": "(?<!\\s)<",
120
- "end": ">"
192
+ "end": ">",
193
+ "name": "support.type"
121
194
  },
122
195
  "quantifier_curly": {
123
- "name": "support.type",
124
- "begin": "({)",
125
- "end": "(})"
196
+ "begin": "\\{(?=[\\S])",
197
+ "end": "\\}",
198
+ "name": "support.type.quantifier.universal"
126
199
  },
127
200
  "quantifier_square": {
128
- "name": "support.type",
129
- "begin": "(\\[)",
130
- "end": "(\\])"
201
+ "begin": "\\[(?=[\\S])",
202
+ "end": "\\]",
203
+ "name": "support.type.quantifier.existential"
131
204
  },
132
- "number": {
133
- "name": "constant.numeric",
134
- "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|~)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"
205
+ "records": {
206
+ "begin": "('|@)({)",
207
+ "end": "(})",
208
+ "patterns": [
209
+ {
210
+ "include": "$self"
211
+ }
212
+ ]
135
213
  },
136
214
  "string": {
137
- "name": "string.quoted.double",
138
215
  "begin": "(\")",
139
216
  "end": "(\")",
217
+ "name": "string.quoted.double",
140
218
  "patterns": [
141
219
  {
142
220
  "include": "#string_escaped"
@@ -144,27 +222,19 @@
144
222
  ]
145
223
  },
146
224
  "string_escaped": {
147
- "name": "constant.character.escape",
148
- "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})"
149
- },
150
- "char": {
151
- "name": "string.quoted.double",
152
- "match": "(')([^\\\\]{0,1}|\\\\(\\\\|[abefpnrtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8}))(')"
225
+ "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})",
226
+ "name": "constant.character.escape"
153
227
  },
154
- "embed": {
155
- "name": "meta",
156
- "begin": "(%{)",
157
- "end": "(%})"
158
- },
159
- "block": {
160
- "begin": "(?<=where|=|^|then|else|\\$rec|\\$rec_t|\\$rec_vt)(?:\\s*){",
161
- "end": "}",
228
+ "tuples": {
229
+ "begin": "('|@)\\(",
230
+ "end": "(\\))",
162
231
  "patterns": [
163
232
  {
164
233
  "include": "$self"
165
234
  }
166
- ],
167
- "applyEndPatternLast": 1
235
+ ]
168
236
  }
169
- }
237
+ },
238
+ "scopeName": "source.ats",
239
+ "uuid": "c3b7ee53-6117-4cdf-80ea-d0572e54aed7"
170
240
  }