github-linguist 7.6.0 → 7.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +5 -5
  2. data/bin/github-linguist +17 -4
  3. data/grammars/annotation.liquidhaskell.haskell.json +58 -11
  4. data/grammars/etc.json +472 -4
  5. data/grammars/hidden.manref.json +29 -0
  6. data/grammars/hidden.regexp.injection-shell.json +28 -0
  7. data/grammars/hint.haskell.json +58 -11
  8. data/grammars/hint.message.haskell.json +58 -11
  9. data/grammars/hint.type.haskell.json +58 -11
  10. data/grammars/injections.etc.json +601 -1
  11. data/grammars/markdown.plantuml.codeblock.json +26 -0
  12. data/grammars/source.4dm.json +1156 -0
  13. data/grammars/source.abap.json +7 -7
  14. data/grammars/source.abl.json +685 -83
  15. data/grammars/source.abnf.json +23 -1
  16. data/grammars/source.agda.json +33 -203
  17. data/grammars/source.ahk.json +9 -5
  18. data/grammars/source.angelscript.json +1 -1
  19. data/grammars/source.ballerina.json +55 -19
  20. data/grammars/source.c++.json +4 -4
  21. data/grammars/source.c.platform.json +584 -33
  22. data/grammars/source.chapel.json +7 -4
  23. data/grammars/source.csound.json +1 -1
  24. data/grammars/source.css.json +3 -3
  25. data/grammars/source.css.scss.json +164 -15
  26. data/grammars/source.curlrc.json +869 -65
  27. data/grammars/source.d.json +2 -2
  28. data/grammars/source.dart.json +58 -32
  29. data/grammars/source.dircolors.json +137 -0
  30. data/grammars/source.direct-x.json +135 -0
  31. data/grammars/source.ebnf.json +67 -39
  32. data/grammars/source.editorconfig.json +23 -5
  33. data/grammars/source.elixir.json +51 -0
  34. data/grammars/source.elm.json +1 -1
  35. data/grammars/source.emacs.lisp.json +10 -0
  36. data/grammars/source.faust.json +119 -0
  37. data/grammars/source.futhark.json +146 -0
  38. data/grammars/source.gcode.json +166 -8
  39. data/grammars/source.gedcom.json +196 -0
  40. data/grammars/source.generic-db.json +41 -0
  41. data/grammars/source.gfm.blade.json +15 -0
  42. data/grammars/source.gfm.json +1697 -1439
  43. data/grammars/source.gitconfig.json +1 -1
  44. data/grammars/source.hack.json +200 -98
  45. data/grammars/source.haskell.json +58 -11
  46. data/grammars/source.hlsl.json +9 -5
  47. data/grammars/source.hosts.json +40 -0
  48. data/grammars/source.hsig.json +58 -11
  49. data/grammars/source.httpspec.json +1 -1
  50. data/grammars/source.hx.json +9 -5
  51. data/grammars/source.hxml.json +2 -2
  52. data/grammars/source.idris.json +1 -1
  53. data/grammars/source.igor.json +46 -2
  54. data/grammars/source.ini.npmrc.json +311 -0
  55. data/grammars/source.inno.json +133 -0
  56. data/grammars/source.inputrc.json +500 -0
  57. data/grammars/source.isabelle.root.json +1 -1
  58. data/grammars/source.jison.json +3 -0
  59. data/grammars/source.jisonlex.json +3 -0
  60. data/grammars/source.js.json +4 -4
  61. data/grammars/source.julia.json +70 -24
  62. data/grammars/source.kotlin.json +17 -51
  63. data/grammars/source.lcov.json +398 -0
  64. data/grammars/source.lean.json +20 -4
  65. data/grammars/source.lean.markdown.json +2598 -0
  66. data/grammars/source.lex.json +4 -4
  67. data/grammars/source.m2.json +125 -0
  68. data/grammars/source.m4.json +141 -99
  69. data/grammars/source.man-conf.json +47 -35
  70. data/grammars/source.matlab.json +437 -184
  71. data/grammars/source.mcfunction-snapshot.json +21388 -561
  72. data/grammars/source.mcfunction.json +55 -5
  73. data/grammars/source.meson.json +1 -1
  74. data/grammars/source.mlir.json +37 -317
  75. data/grammars/source.modula-3.json +10 -0
  76. data/grammars/source.msl.json +755 -0
  77. data/grammars/source.nasl.json +155 -0
  78. data/grammars/source.neon.json +381 -0
  79. data/grammars/source.nextflow.json +2 -2
  80. data/grammars/source.objc.platform.json +493 -35
  81. data/grammars/source.odin-ehr.json +806 -0
  82. data/grammars/source.odin.json +402 -0
  83. data/grammars/source.openbsd-pkg.contents.json +128 -0
  84. data/grammars/source.opts.json +12 -2
  85. data/grammars/source.perl6fe.json +1 -1
  86. data/grammars/source.postscript.json +358 -103
  87. data/grammars/source.prisma.json +435 -0
  88. data/grammars/source.purescript.json +29 -2
  89. data/grammars/source.python.json +52 -0
  90. data/grammars/source.q.json +150 -63
  91. data/grammars/source.qasm.json +66 -0
  92. data/grammars/source.ql.json +1408 -0
  93. data/grammars/source.r.json +4 -4
  94. data/grammars/source.reason.json +28 -16
  95. data/grammars/source.rego.json +124 -0
  96. data/grammars/source.sass.json +158 -3
  97. data/grammars/source.scala.json +53 -18
  98. data/grammars/source.sieve.json +383 -0
  99. data/grammars/source.solidity.json +1 -1
  100. data/grammars/source.ssh-config.json +1 -14
  101. data/grammars/source.swift.json +162 -2
  102. data/grammars/source.sy.json +2088 -183
  103. data/grammars/source.tags.json +266 -0
  104. data/grammars/source.terraform.json +576 -132
  105. data/grammars/source.tnsaudit.json +256 -0
  106. data/grammars/source.ts.json +246 -70
  107. data/grammars/source.tsx.json +247 -71
  108. data/grammars/source.v.json +587 -761
  109. data/grammars/source.vim-snippet.json +645 -0
  110. data/grammars/source.viml.json +6 -6
  111. data/grammars/source.webassembly.json +10 -0
  112. data/grammars/source.webidl.json +8 -0
  113. data/grammars/source.wgetrc.json +1640 -0
  114. data/grammars/source.wsd.json +781 -0
  115. data/grammars/source.x86.json +7 -3
  116. data/grammars/source.zig.json +231 -360
  117. data/grammars/text.dfy.dafny.json +188 -0
  118. data/grammars/text.html.php.blade.json +535 -528
  119. data/grammars/text.html.riot.json +788 -0
  120. data/grammars/text.muse.json +1471 -0
  121. data/grammars/text.openbsd-pkg.desc.json +78 -0
  122. data/grammars/text.roff.json +49 -1
  123. data/grammars/text.sfd.json +21 -0
  124. data/grammars/text.tex.latex.haskell.json +58 -11
  125. data/grammars/text.vim-help.json +383 -0
  126. data/grammars/text.xml.svg.json +8 -2
  127. data/grammars/version +1 -1
  128. data/lib/linguist/VERSION +1 -1
  129. data/lib/linguist/blob_helper.rb +4 -2
  130. data/lib/linguist/file_blob.rb +1 -1
  131. data/lib/linguist/generated.rb +96 -28
  132. data/lib/linguist/heuristics.yml +64 -4
  133. data/lib/linguist/languages.json +1 -1
  134. data/lib/linguist/languages.yml +408 -49
  135. data/lib/linguist/lazy_blob.rb +10 -10
  136. data/lib/linguist/linguist.bundle +0 -0
  137. data/lib/linguist/samples.json +48129 -31562
  138. data/lib/linguist/shebang.rb +5 -3
  139. data/lib/linguist/vendor.yml +71 -60
  140. metadata +48 -17
  141. data/grammars/source.LS.json +0 -85
  142. data/grammars/source.MCPOST.json +0 -54
  143. data/grammars/source.MOD.json +0 -55
  144. data/grammars/source.apt.json +0 -18
  145. data/grammars/source.jlex.json +0 -322
  146. data/grammars/source.yaml-ext.json +0 -324
  147. data/grammars/text.html.abl.json +0 -70
@@ -13,6 +13,10 @@
13
13
  "name": "keyword.operator.assignment.increment.abnf",
14
14
  "match": "=/"
15
15
  },
16
+ {
17
+ "name": "keyword.operator.assignment.colon.non-standard.abnf",
18
+ "match": ":+="
19
+ },
16
20
  {
17
21
  "name": "keyword.operator.assignment.abnf",
18
22
  "match": "="
@@ -31,7 +35,7 @@
31
35
  },
32
36
  "core-rules": {
33
37
  "name": "support.constant.reference.core-rule.abnf",
34
- "match": "(?x)\n\\b\n(ALPHA|BIT|CHAR|CRLF|CR|CTL|DIGIT|DQUOTE\n|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)\n\\b"
38
+ "match": "(?x)\n\\b (?\u003c!-)\n(ALPHA|BIT|CHAR|CRLF|CR|CTL|DIGIT|DQUOTE\n|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)\n\\b (?!-)"
35
39
  },
36
40
  "group": {
37
41
  "name": "meta.group.abnf",
@@ -83,6 +87,21 @@
83
87
  }
84
88
  }
85
89
  },
90
+ "prose": {
91
+ "name": "string.other.prose.abnf",
92
+ "begin": "\u003c",
93
+ "end": "\u003e",
94
+ "beginCaptures": {
95
+ "0": {
96
+ "name": "punctuation.definition.string.begin.abnf"
97
+ }
98
+ },
99
+ "endCaptures": {
100
+ "0": {
101
+ "name": "punctuation.definition.string.end.abnf"
102
+ }
103
+ }
104
+ },
86
105
  "quantifier": {
87
106
  "name": "meta.quantifier.abnf",
88
107
  "match": "([0-9]*)(\\*)",
@@ -128,6 +147,9 @@
128
147
  {
129
148
  "include": "#reference"
130
149
  },
150
+ {
151
+ "include": "#prose"
152
+ },
131
153
  {
132
154
  "name": "keyword.operator.logical.or.alternation.pipe.abnf",
133
155
  "match": "/"
@@ -3,240 +3,70 @@
3
3
  "scopeName": "source.agda",
4
4
  "patterns": [
5
5
  {
6
- "name": "meta.declaration.module.agda",
7
- "begin": "\\b(module)\\s+([^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*)\\b",
8
- "end": "(\\bwhere\\b|=)",
9
- "patterns": [
10
- {
11
- "include": "#module_param"
12
- },
13
- {
14
- "include": "#module_params"
15
- },
16
- {
17
- "include": "#module_params_implicit"
18
- }
19
- ],
20
- "beginCaptures": {
21
- "1": {
22
- "name": "keyword.other.agda"
23
- },
24
- "2": {
25
- "name": "storage.module.agda"
26
- }
27
- },
28
- "endCaptures": {
29
- "1": {
30
- "name": "keyword.other.agda"
31
- }
32
- }
33
- },
34
- {
35
- "name": "meta.import.agda",
36
- "begin": "^\\s*(import|open(\\s+import)?)\\b",
37
- "end": "$",
38
- "patterns": [
39
- {
40
- "name": "keyword.other.agda",
41
- "match": "\\b(as|using|renaming|hiding|public)\\b"
42
- }
43
- ],
44
- "beginCaptures": {
45
- "1": {
46
- "name": "keyword.other.agda"
47
- }
48
- }
6
+ "name": "comment.line.double-dash.agda",
7
+ "begin": "--",
8
+ "end": "$"
49
9
  },
50
10
  {
51
- "name": "meta.declaration.record.agda",
52
- "begin": "^\\s*(record)\\s+([^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*)\\b",
53
- "end": "\\b(where)\\b",
54
- "beginCaptures": {
55
- "1": {
56
- "name": "keyword.other.agda"
57
- },
58
- "2": {
59
- "name": "storage.record.agda"
60
- }
61
- },
62
- "endCaptures": {
63
- "1": {
64
- "name": "keyword.other.agda"
65
- }
66
- }
11
+ "name": "comment.block.agda",
12
+ "begin": "{-[^#]",
13
+ "end": "-}"
67
14
  },
68
15
  {
69
- "name": "meta.declaration.record.agda",
70
- "begin": "\\b(data)\\s+([^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*)\\b",
71
- "end": "\\b(where)\\b",
72
- "beginCaptures": {
73
- "1": {
74
- "name": "keyword.other.agda"
75
- },
76
- "2": {
77
- "name": "storage.data.agda"
78
- }
79
- },
80
- "endCaptures": {
81
- "1": {
82
- "name": "keyword.other.agda"
83
- }
84
- }
16
+ "name": "support.other.agda",
17
+ "begin": "{-#",
18
+ "end": "#-}"
85
19
  },
86
20
  {
87
21
  "name": "string.quoted.double.agda",
88
22
  "begin": "\"",
89
- "end": "\"",
90
- "patterns": [
91
- {
92
- "name": "constant.character.escape.agda",
93
- "match": "\\\\."
94
- }
95
- ]
23
+ "end": "\""
96
24
  },
97
25
  {
98
- "name": "keyword.operator.agda",
99
- "match": "\\binfix[lr]\\b"
26
+ "name": "constant.char.agda",
27
+ "match": "'([^\\\\']|\\\\['\\\\\"[:alnum:]]+)'"
100
28
  },
101
29
  {
102
- "name": "keyword.other.agda",
103
- "match": "\\b(where|as|case|field|constructor|record|private|public|abstract|mutual)\\b"
104
- },
105
- {
106
- "name": "keyword.operator.agda",
107
- "match": "(?\u003c=\\s)[=→λ∀?]"
30
+ "name": "constant.numeric.agda",
31
+ "match": "(?\u003c=^|[[:space:]\\(\\){}])(-?\\d+|0x[0-9A-F]+|-?\\d+\\.\\d+((e|E)(\\+|-)?\\d+)?|-?\\d+(e|E)(\\+|-)?\\d+)(?=[[:space:]\\(\\){}])"
108
32
  },
109
33
  {
110
- "name": "meta.function.type-declaration.agda",
111
- "match": "^\\s*([^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*)\\s*(:)(?=\\s|$)",
34
+ "match": "\\b(data|record|module|constructor|open *import|open|import)[[:space:]]+([^;\\(\\){}@\"[:space:]]+)",
112
35
  "captures": {
113
36
  "1": {
114
- "name": "entity.name.function.agda"
37
+ "name": "keyword.other.agda"
115
38
  },
116
39
  "2": {
117
- "name": "keyword.other.colon.agda"
118
- }
119
- }
120
- },
121
- {
122
- "name": "string.quoted.double.agda",
123
- "begin": "\"",
124
- "end": "\"",
125
- "patterns": [
126
- {
127
- "name": "constant.character.escape.agda",
128
- "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])"
129
- },
130
- {
131
- "name": "constant.character.escape.octal.agda",
132
- "match": "\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+"
133
- },
134
- {
135
- "name": "constant.character.escape.control.agda",
136
- "match": "\\^[A-Z@\\[\\]\\\\\\^_]"
137
- }
138
- ],
139
- "beginCaptures": {
140
- "0": {
141
- "name": "punctuation.definition.string.begin.agda"
142
- }
143
- },
144
- "endCaptures": {
145
- "0": {
146
- "name": "punctuation.definition.string.end.agda"
40
+ "name": "entity.name.type.agda"
147
41
  }
148
42
  }
149
43
  },
150
44
  {
151
- "name": "constant.numeric.agda",
152
- "match": "\\b([0-9]+|0([xX][0-9a-fA-F]+))\\b"
45
+ "name": "entity.name.tag.agda",
46
+ "match": "((?\u003c=^|[.;\\(\\){}@\"[:space:]])\\?(?=[.;\\(\\){}@\"[:space:]])|{!.*!})"
153
47
  },
154
48
  {
155
- "include": "#dashComment"
49
+ "name": "constant.language.agda",
50
+ "match": "\\b(Set|Prop)[0123456789₀₁₂₃₄₅₆₇₈₉]*(?=$|[[:space:]\\(\\)\\{\\}])"
156
51
  },
157
52
  {
158
- "include": "#pragma"
53
+ "name": "keyword.other.agda",
54
+ "match": "(?\u003c=^|[[:space:]\\(\\)\\{\\}])(λ|→|-\u003e|∀|=|←|:)(?=[[:space:]\\(\\)\\{\\}])"
159
55
  },
160
56
  {
161
- "include": "#blockComment"
162
- }
163
- ],
164
- "repository": {
165
- "blockComment": {
166
- "name": "comment.block.agda",
167
- "begin": "{-",
168
- "end": "-}",
57
+ "match": "^[[:space:]]*(((abstract|instance|macro|pattern|postulate|primitive|private|syntax|variable|where|let)[[:space:]]+)*)((([^;\\(\\){}@\"[:space:]]+)[[:space:]]+)+)(?=:)",
169
58
  "captures": {
170
- "0": {
171
- "name": "punctuation.definition.comment.agda"
172
- }
173
- }
174
- },
175
- "dashComment": {
176
- "name": "comment.line.double-dash.agda",
177
- "begin": "(--) ",
178
- "end": "$",
179
- "beginCaptures": {
180
- "0": {
181
- "name": "punctuation.definition.comment.agda"
182
- }
183
- }
184
- },
185
- "identifier": {
186
- "name": "entity.name.function.agda",
187
- "match": "\\b[^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*"
188
- },
189
- "module_param": {
190
- "name": "entity.name.parameter.agda",
191
- "match": "\\b[^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*"
192
- },
193
- "module_params": {
194
- "name": "meta.declaration.module.params.agda",
195
- "begin": "\\(",
196
- "end": "\\)",
197
- "patterns": [
198
- {
199
- "include": "#module_param"
200
- },
201
- {
202
- "include": "#type_sig_rhs"
203
- }
204
- ]
205
- },
206
- "module_params_implicit": {
207
- "name": "meta.declaration.module.params.agda",
208
- "begin": "\\{",
209
- "end": "\\}",
210
- "patterns": [
211
- {
212
- "include": "#module_param"
59
+ "1": {
60
+ "name": "keyword.other.agda"
213
61
  },
214
- {
215
- "include": "#type_sig_rhs"
216
- }
217
- ]
218
- },
219
- "pragma": {
220
- "name": "support.pragma.block.agda",
221
- "begin": "\\{-#",
222
- "end": "#-\\}",
223
- "captures": {
224
- "0": {
225
- "name": "punctuation.definition.pragma.agda"
62
+ "4": {
63
+ "name": "entity.name.agda"
226
64
  }
227
- },
228
- "applyEndPatternLast": true
65
+ }
229
66
  },
230
- "type_sig_rhs": {
231
- "name": "meta.declaration.module.params.typesig.agda",
232
- "begin": ":",
233
- "end": "(?=[\\)\\}])",
234
- "patterns": [
235
- {
236
- "name": "storage.type.agda",
237
- "match": "\\b[^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*"
238
- }
239
- ]
67
+ {
68
+ "name": "keyword.other.agda",
69
+ "match": "(?\u003c=^|[[:space:]\\(\\){}])(abstract|constructor|data|do|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)(?=$|[[:space:]\\(\\){}])"
240
70
  }
241
- }
71
+ ]
242
72
  }
@@ -16,8 +16,8 @@
16
16
  },
17
17
  {
18
18
  "name": "comment.block.ahk",
19
- "begin": "^/\\*",
20
- "end": "^\\*/"
19
+ "begin": "^\\s*/\\*",
20
+ "end": "^\\s*\\*/"
21
21
  },
22
22
  {
23
23
  "name": "functionline.ahk",
@@ -60,7 +60,7 @@
60
60
  },
61
61
  {
62
62
  "name": "hotkeyline.ahk",
63
- "match": "^\\s*(.+)(::)",
63
+ "match": "^\\s*(\\S+(?:\\s+\u0026\\s+\\S+)*)(::)",
64
64
  "captures": {
65
65
  "1": {
66
66
  "name": "entity.name.function.label.ahk"
@@ -106,9 +106,13 @@
106
106
  }
107
107
  }
108
108
  },
109
+ {
110
+ "name": "invalid.deprecated.ahk",
111
+ "match": "\\b(?i:IfEqual|IfNotEqual|IfLess|IfLessOrEqual|IfGreater|IfGreaterOrEqual|IfExist|IfNotExist|IfInString|IfNotInString|IfWinActive|IfWinNotActive|IfWinExist|IfWinNotExist|OnExit|SetEnv|EnvDiv|EnvMult|SetFormat|StringGetPos|StringLeft|StringRight|StringLen|StringGetPos|StringMid|StringReplace|StringSplit|StringTrimLeft|StringTrimRight)\\b"
112
+ },
109
113
  {
110
114
  "name": "support.function.ahk",
111
- "match": "\\b(?i:autotrim|blockinput|click|clipwait|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|control|coordmode|detecthiddentext|detecthiddenwindows|driveget|drivespacefree|drive|edit|envadd|envdiv|envget|envmult|envset|envsub|envupdate|fileappend|filecopydir|filecopy|filecreatedir|filecreateshortcut|filedelete|fileencoding|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemovedir|filemove|filereadline|fileread|filerecycleempty|filerecycle|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|groupactivate|groupadd|groupclose|groupdeactivate|guicontrol|guicontrolget|gui|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|inputbox|input|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclickdrag|mouseclick|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|run|runas|runwait|sendevent|sendinput|sendlevel|sendmessage|sendmode|sendplay|sendraw|send|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|setregview|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundgetwavevolume|soundget|soundplay|soundsetwavevolume|soundset|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|winactivatebottom|winactivate|winclose|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winget|winhide|winkill|winmaximize|winmenuselectitem|winminimizeallundo|winminimizeall|winminimize|winmove|winrestore|winsettitle|winset|winshow|winwaitactive|winwaitclose|winwaitnotactive|winwait)\\b"
115
+ "match": "\\b(?i:autotrim|blockinput|click|clipwait|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|control|coordmode|detecthiddentext|detecthiddenwindows|driveget|drivespacefree|drive|edit|envadd|envget|envset|envsub|envupdate|fileappend|filecopydir|filecopy|filecreatedir|filecreateshortcut|filedelete|fileencoding|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemovedir|filemove|filereadline|fileread|filerecycleempty|filerecycle|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|groupactivate|groupadd|groupclose|groupdeactivate|guicontrol|guicontrolget|gui|hotkey|ifmsgbox|imagesearch|inidelete|iniread|iniwrite|inputbox|input|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclickdrag|mouseclick|mousegetpos|mousemove|msgbox|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|run|runas|runwait|sendevent|sendinput|sendlevel|sendmessage|sendmode|sendplay|sendraw|send|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|setregview|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundgetwavevolume|soundget|soundplay|soundsetwavevolume|soundset|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringlen|stringlower|stringmid|stringreplace|stringsplit|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|winactivatebottom|winactivate|winclose|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winget|winhide|winkill|winmaximize|winmenuselectitem|winminimizeallundo|winminimizeall|winminimize|winmove|winrestore|winsettitle|winset|winshow|winwaitactive|winwaitclose|winwaitnotactive|winwait)\\b"
112
116
  },
113
117
  {
114
118
  "name": "support.function.ahk",
@@ -136,7 +140,7 @@
136
140
  },
137
141
  {
138
142
  "name": "keyword.control.ahk",
139
- "match": "\\b(?\u003c!\\.)(?i:if|else|return|loop|break|for|while|class|extends|catch|finally|throw|try|until|continue|critical|exit|exitapp|gosub|goto||not|or|and|is|in)\\b"
143
+ "match": "\\b(?\u003c!\\.)(?i:if|else|return|loop|break|for|while|class|extends|catch|finally|throw|try|until|continue|critical|exit|exitapp|gosub|goto||not|or|and|is|in|switch|case)\\b"
140
144
  },
141
145
  {
142
146
  "name": "constant.numeric.ahk",
@@ -100,7 +100,7 @@
100
100
  },
101
101
  {
102
102
  "name": "storage.modifier.angelscript",
103
- "match": "\\b(get|in|inout|out|override|explicit|set|private|public|protected|const|default|final|shared|external|mixin|abstract)\\b"
103
+ "match": "\\b(get|in|inout|out|override|explicit|set|private|public|protected|const|default|final|shared|external|mixin|abstract|property)\\b"
104
104
  },
105
105
  {
106
106
  "name": "storage.type.angelscript",
@@ -207,6 +207,9 @@
207
207
  {
208
208
  "include": "#comment"
209
209
  },
210
+ {
211
+ "include": "#annotationAttachment"
212
+ },
210
213
  {
211
214
  "match": "(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"
212
215
  },
@@ -384,7 +387,7 @@
384
387
  "patterns": [
385
388
  {
386
389
  "begin": "\\bfunction\\b",
387
- "end": "\\}|(?=;)",
390
+ "end": "\\}|(?=;|=)",
388
391
  "patterns": [
389
392
  {
390
393
  "include": "#functionParameters"
@@ -473,7 +476,7 @@
473
476
  "patterns": [
474
477
  {
475
478
  "begin": "\\breturns\\b",
476
- "end": "(?=\\{|;|,)",
479
+ "end": "(?=\\{|;|,|=)",
477
480
  "patterns": [
478
481
  {
479
482
  "include": "#record"
@@ -481,6 +484,9 @@
481
484
  {
482
485
  "include": "#objectDec"
483
486
  },
487
+ {
488
+ "include": "#tupleType"
489
+ },
484
490
  {
485
491
  "name": "storage.type.ballerina",
486
492
  "match": "(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"
@@ -581,10 +587,10 @@
581
587
  "patterns": [
582
588
  {
583
589
  "begin": "\\breturns\\b",
584
- "end": "(?=\\,)",
590
+ "end": "(?=\\,)|(?:\\|)|(?=\\])|(?=\\))",
585
591
  "patterns": [
586
592
  {
587
- "include": "#parameter"
593
+ "include": "#functionTypeReturnsParameter"
588
594
  },
589
595
  {
590
596
  "include": "#comment"
@@ -598,11 +604,51 @@
598
604
  }
599
605
  ]
600
606
  },
607
+ "functionTypeReturnsParameter": {
608
+ "patterns": [
609
+ {
610
+ "begin": "((?=record|object|function)|(?:(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)))",
611
+ "end": "(?=\\,)|(?:\\|)|(?:\\:)|(?==\u003e)|(?=\\))|(?=\\])",
612
+ "patterns": [
613
+ {
614
+ "include": "#record"
615
+ },
616
+ {
617
+ "include": "#objectDec"
618
+ },
619
+ {
620
+ "include": "#functionType"
621
+ },
622
+ {
623
+ "include": "#constrainType"
624
+ },
625
+ {
626
+ "include": "#defaultValue"
627
+ },
628
+ {
629
+ "include": "#comment"
630
+ },
631
+ {
632
+ "include": "#parameterTuple"
633
+ },
634
+ {
635
+ "name": "variable.parameter.ballerina",
636
+ "match": "(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)"
637
+ }
638
+ ],
639
+ "beginCaptures": {
640
+ "0": {
641
+ "name": "storage.type.ballerina"
642
+ }
643
+ }
644
+ }
645
+ ]
646
+ },
601
647
  "functionTypeType": {
602
648
  "patterns": [
603
649
  {
604
650
  "begin": "(?:'?(?:(?:[^ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s\\\\])|\\\\(?:[ (){}\\[\\]\\-?*=\u003e\u003c?;\"',.\\s])|\\\\)+)",
605
- "end": "(?:\\,)|(?:\\|)|(?=\\])|(?=\\))",
651
+ "end": "(?=\\,)|(?:\\|)|(?=\\])|(?=\\))",
606
652
  "beginCaptures": {
607
653
  "0": {
608
654
  "name": "storage.type.ballerina"
@@ -615,11 +661,11 @@
615
661
  "patterns": [
616
662
  {
617
663
  "name": "keyword.control.ballerina",
618
- "match": "\\b(if|else|iterator|try|catch|finally|fork|join|all|some|while|foreach|in|throw|return|returns|break|timeout|transaction|abort|retry|retries|continue|bind|with|typeof|enum|wait)\\b"
664
+ "match": "\\b(if|else|iterator|try|catch|finally|fork|join|all|some|while|foreach|in|throw|return|returns|break|timeout|transaction|abort|retry|retries|continue|bind|with|typeof|enum|wait|let)\\b"
619
665
  },
620
666
  {
621
667
  "name": "keyword.other.ballerina",
622
- "match": "\\b(import|version|public|private|attach|as|native|handle|documentation|lock|new|record|limit|ascending|descending|check|checkpanic|panic|trap|start|done|untainted|tainted|onretry|oncommit|onabort|scope|compensate|compensation|primarykey|channel|abstract|extern|final|listener|remote|client|is|__init)\\b"
668
+ "match": "\\b(import|version|public|private|attach|as|native|handle|documentation|lock|new|record|limit|ascending|descending|check|checkpanic|panic|trap|start|flush|done|untainted|tainted|onretry|committed|aborted|scope|compensate|compensation|primarykey|channel|abstract|extern|final|listener|remote|client|is|__init)\\b"
623
669
  },
624
670
  {
625
671
  "name": "keyword.other.siddhi.ballerina",
@@ -635,7 +681,7 @@
635
681
  },
636
682
  {
637
683
  "name": "keyword.operator.ballerina",
638
- "match": "(!|%|\\+|\\-|~=|==|=|!=|\u003c|\u003e|\u0026\u0026|\\|\\||\\?:|\\.\\.\\.)"
684
+ "match": "(!|%|\\+|\\-|~=|==|=|!=|\u003c|\u003e|\u0026|\\||\\?:|\\.\\.\\.)"
639
685
  },
640
686
  {
641
687
  "include": "#types"
@@ -667,17 +713,7 @@
667
713
  {
668
714
  "include": "#code"
669
715
  }
670
- ],
671
- "beginCaptures": {
672
- "0": {
673
- "name": "punctuation.definition.string.begin.ballerina"
674
- }
675
- },
676
- "endCaptures": {
677
- "0": {
678
- "name": "punctuation.definition.string.end.ballerina"
679
- }
680
- }
716
+ ]
681
717
  }
682
718
  ]
683
719
  },