tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,631 @@
1
+ {
2
+ "displayName": "SQL",
3
+ "name": "sql",
4
+ "patterns": [
5
+ {
6
+ "match": "((?<!@)@)\\b(\\w+)\\b",
7
+ "name": "text.variable"
8
+ },
9
+ {
10
+ "match": "(\\[)[^\\]]*(\\])",
11
+ "name": "text.bracketed"
12
+ },
13
+ {
14
+ "include": "#comments"
15
+ },
16
+ {
17
+ "captures": {
18
+ "1": {
19
+ "name": "keyword.other.create.sql"
20
+ },
21
+ "2": {
22
+ "name": "keyword.other.sql"
23
+ },
24
+ "5": {
25
+ "name": "entity.name.function.sql"
26
+ }
27
+ },
28
+ "match": "(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4",
29
+ "name": "meta.create.sql"
30
+ },
31
+ {
32
+ "captures": {
33
+ "1": {
34
+ "name": "keyword.other.create.sql"
35
+ },
36
+ "2": {
37
+ "name": "keyword.other.sql"
38
+ }
39
+ },
40
+ "match": "(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))",
41
+ "name": "meta.drop.sql"
42
+ },
43
+ {
44
+ "captures": {
45
+ "1": {
46
+ "name": "keyword.other.create.sql"
47
+ },
48
+ "2": {
49
+ "name": "keyword.other.table.sql"
50
+ },
51
+ "3": {
52
+ "name": "entity.name.function.sql"
53
+ },
54
+ "4": {
55
+ "name": "keyword.other.cascade.sql"
56
+ }
57
+ },
58
+ "match": "(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)",
59
+ "name": "meta.drop.sql"
60
+ },
61
+ {
62
+ "captures": {
63
+ "1": {
64
+ "name": "keyword.other.create.sql"
65
+ },
66
+ "2": {
67
+ "name": "keyword.other.table.sql"
68
+ }
69
+ },
70
+ "match": "(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)",
71
+ "name": "meta.alter.sql"
72
+ },
73
+ {
74
+ "captures": {
75
+ "1": {
76
+ "name": "storage.type.sql"
77
+ },
78
+ "10": {
79
+ "name": "constant.numeric.sql"
80
+ },
81
+ "11": {
82
+ "name": "storage.type.sql"
83
+ },
84
+ "12": {
85
+ "name": "storage.type.sql"
86
+ },
87
+ "13": {
88
+ "name": "storage.type.sql"
89
+ },
90
+ "14": {
91
+ "name": "constant.numeric.sql"
92
+ },
93
+ "15": {
94
+ "name": "storage.type.sql"
95
+ },
96
+ "2": {
97
+ "name": "storage.type.sql"
98
+ },
99
+ "3": {
100
+ "name": "constant.numeric.sql"
101
+ },
102
+ "4": {
103
+ "name": "storage.type.sql"
104
+ },
105
+ "5": {
106
+ "name": "constant.numeric.sql"
107
+ },
108
+ "6": {
109
+ "name": "storage.type.sql"
110
+ },
111
+ "7": {
112
+ "name": "constant.numeric.sql"
113
+ },
114
+ "8": {
115
+ "name": "constant.numeric.sql"
116
+ },
117
+ "9": {
118
+ "name": "storage.type.sql"
119
+ }
120
+ },
121
+ "match": "(?xi)\n\n\t\t\t\t# normal stuff, capture 1\n\t\t\t\t \\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b\n\n\t\t\t\t# numeric suffix, capture 2 + 3i\n\t\t\t\t|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\t\t\t\t# optional numeric suffix, capture 4 + 5i\n\t\t\t\t|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\t\t\t\t# special case, capture 6 + 7i + 8i\n\t\t\t\t|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\t\t\t\t# special case, captures 9, 10i, 11\n\t\t\t\t|\\b(times?)\\b(?:\\((\\d+)\\))?(\\swith(?:out)?\\stime\\szone\\b)?\n\n\t\t\t\t# special case, captures 12, 13, 14i, 15\n\t\t\t\t|\\b(timestamp)(?:(s|tz))?\\b(?:\\((\\d+)\\))?(\\s(with|without)\\stime\\szone\\b)?\n\n\t\t\t"
122
+ },
123
+ {
124
+ "match": "(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|nocheck|check|constraint|collate|default)\\b)",
125
+ "name": "storage.modifier.sql"
126
+ },
127
+ {
128
+ "match": "\\b\\d+\\b",
129
+ "name": "constant.numeric.sql"
130
+ },
131
+ {
132
+ "match": "(?i:\\b(select(\\s+(all|distinct))?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\s+by|or|like|and|union(\\s+all)?|having|order\\s+by|limit|cross\\s+join|join|straight_join|(inner|(left|right|full)(\\s+outer)?)\\s+join|natural(\\s+(inner|(left|right|full)(\\s+outer)?))?\\s+join)\\b)",
133
+ "name": "keyword.other.DML.sql"
134
+ },
135
+ {
136
+ "match": "(?i:\\b(on|off|((is\\s+)?not\\s+)?null)\\b)",
137
+ "name": "keyword.other.DDL.create.II.sql"
138
+ },
139
+ {
140
+ "match": "(?i:\\bvalues\\b)",
141
+ "name": "keyword.other.DML.II.sql"
142
+ },
143
+ {
144
+ "match": "(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)",
145
+ "name": "keyword.other.LUW.sql"
146
+ },
147
+ {
148
+ "match": "(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)",
149
+ "name": "keyword.other.authorization.sql"
150
+ },
151
+ {
152
+ "match": "(?i:\\bin\\b)",
153
+ "name": "keyword.other.data-integrity.sql"
154
+ },
155
+ {
156
+ "match": "(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)",
157
+ "name": "keyword.other.object-comments.sql"
158
+ },
159
+ {
160
+ "match": "(?i)\\bAS\\b",
161
+ "name": "keyword.other.alias.sql"
162
+ },
163
+ {
164
+ "match": "(?i)\\b(DESC|ASC)\\b",
165
+ "name": "keyword.other.order.sql"
166
+ },
167
+ {
168
+ "match": "\\*",
169
+ "name": "keyword.operator.star.sql"
170
+ },
171
+ {
172
+ "match": "[!<>]?=|<>|<|>",
173
+ "name": "keyword.operator.comparison.sql"
174
+ },
175
+ {
176
+ "match": "-|\\+|/",
177
+ "name": "keyword.operator.math.sql"
178
+ },
179
+ {
180
+ "match": "\\|\\|",
181
+ "name": "keyword.operator.concatenator.sql"
182
+ },
183
+ {
184
+ "captures": {
185
+ "1": {
186
+ "name": "support.function.aggregate.sql"
187
+ }
188
+ },
189
+ "match": "(?i)\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b\\s*\\("
190
+ },
191
+ {
192
+ "captures": {
193
+ "1": {
194
+ "name": "support.function.analytic.sql"
195
+ }
196
+ },
197
+ "match": "(?i)\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\b\\s*\\("
198
+ },
199
+ {
200
+ "captures": {
201
+ "1": {
202
+ "name": "support.function.bitmanipulation.sql"
203
+ }
204
+ },
205
+ "match": "(?i)\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\b\\s*\\("
206
+ },
207
+ {
208
+ "captures": {
209
+ "1": {
210
+ "name": "support.function.conversion.sql"
211
+ }
212
+ },
213
+ "match": "(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b\\s*\\("
214
+ },
215
+ {
216
+ "captures": {
217
+ "1": {
218
+ "name": "support.function.collation.sql"
219
+ }
220
+ },
221
+ "match": "(?i)\\b(collationproperty|tertiary_weights)\\b\\s*\\("
222
+ },
223
+ {
224
+ "captures": {
225
+ "1": {
226
+ "name": "support.function.cryptographic.sql"
227
+ }
228
+ },
229
+ "match": "(?i)\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\b\\s*\\("
230
+ },
231
+ {
232
+ "captures": {
233
+ "1": {
234
+ "name": "support.function.cursor.sql"
235
+ }
236
+ },
237
+ "match": "(?i)\\b(cursor_status)\\b\\s*\\("
238
+ },
239
+ {
240
+ "captures": {
241
+ "1": {
242
+ "name": "support.function.datetime.sql"
243
+ }
244
+ },
245
+ "match": "(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\b\\s*\\("
246
+ },
247
+ {
248
+ "captures": {
249
+ "1": {
250
+ "name": "support.function.datatype.sql"
251
+ }
252
+ },
253
+ "match": "(?i)\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\b\\s*\\("
254
+ },
255
+ {
256
+ "captures": {
257
+ "1": {
258
+ "name": "support.function.expression.sql"
259
+ }
260
+ },
261
+ "match": "(?i)\\b(coalesce|nullif)\\b\\s*\\("
262
+ },
263
+ {
264
+ "captures": {
265
+ "1": {
266
+ "name": "support.function.globalvar.sql"
267
+ }
268
+ },
269
+ "match": "(?<!@)@@(?i)\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\b\\s*\\("
270
+ },
271
+ {
272
+ "captures": {
273
+ "1": {
274
+ "name": "support.function.json.sql"
275
+ }
276
+ },
277
+ "match": "(?i)\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\b\\s*\\("
278
+ },
279
+ {
280
+ "captures": {
281
+ "1": {
282
+ "name": "support.function.logical.sql"
283
+ }
284
+ },
285
+ "match": "(?i)\\b(choose|iif|greatest|least)\\b\\s*\\("
286
+ },
287
+ {
288
+ "captures": {
289
+ "1": {
290
+ "name": "support.function.mathematical.sql"
291
+ }
292
+ },
293
+ "match": "(?i)\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\b\\s*\\("
294
+ },
295
+ {
296
+ "captures": {
297
+ "1": {
298
+ "name": "support.function.metadata.sql"
299
+ }
300
+ },
301
+ "match": "(?i)\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\b\\s*\\("
302
+ },
303
+ {
304
+ "captures": {
305
+ "1": {
306
+ "name": "support.function.ranking.sql"
307
+ }
308
+ },
309
+ "match": "(?i)\\b(rank|dense_rank|ntile|row_number)\\b\\s*\\("
310
+ },
311
+ {
312
+ "captures": {
313
+ "1": {
314
+ "name": "support.function.rowset.sql"
315
+ }
316
+ },
317
+ "match": "(?i)\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\b\\s*\\("
318
+ },
319
+ {
320
+ "captures": {
321
+ "1": {
322
+ "name": "support.function.security.sql"
323
+ }
324
+ },
325
+ "match": "(?i)\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\b\\s*\\("
326
+ },
327
+ {
328
+ "captures": {
329
+ "1": {
330
+ "name": "support.function.string.sql"
331
+ }
332
+ },
333
+ "match": "(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b\\s*\\("
334
+ },
335
+ {
336
+ "captures": {
337
+ "1": {
338
+ "name": "support.function.system.sql"
339
+ }
340
+ },
341
+ "match": "(?i)\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\b\\s*\\("
342
+ },
343
+ {
344
+ "captures": {
345
+ "1": {
346
+ "name": "support.function.textimage.sql"
347
+ }
348
+ },
349
+ "match": "(?i)\\b(patindex|textptr|textvalid)\\b\\s*\\("
350
+ },
351
+ {
352
+ "captures": {
353
+ "1": {
354
+ "name": "constant.other.database-name.sql"
355
+ },
356
+ "2": {
357
+ "name": "constant.other.table-name.sql"
358
+ }
359
+ },
360
+ "match": "(\\w+?)\\.(\\w+)"
361
+ },
362
+ {
363
+ "include": "#strings"
364
+ },
365
+ {
366
+ "include": "#regexps"
367
+ },
368
+ {
369
+ "match": "\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime|datetime2|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|session|sessions|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablock|tablockx|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|value|values|varbinary|varchar|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|window|windows|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b",
370
+ "name": "keyword.other.sql"
371
+ },
372
+ {
373
+ "captures": {
374
+ "1": {
375
+ "name": "punctuation.section.scope.begin.sql"
376
+ },
377
+ "2": {
378
+ "name": "punctuation.section.scope.end.sql"
379
+ }
380
+ },
381
+ "comment": "Allow for special ↩ behavior",
382
+ "match": "(\\()(\\))",
383
+ "name": "meta.block.sql"
384
+ }
385
+ ],
386
+ "repository": {
387
+ "comment-block": {
388
+ "begin": "/\\*",
389
+ "captures": {
390
+ "0": {
391
+ "name": "punctuation.definition.comment.sql"
392
+ }
393
+ },
394
+ "end": "\\*/",
395
+ "name": "comment.block",
396
+ "patterns": [
397
+ {
398
+ "include": "#comment-block"
399
+ }
400
+ ]
401
+ },
402
+ "comments": {
403
+ "patterns": [
404
+ {
405
+ "begin": "(^[ \\t]+)?(?=--)",
406
+ "beginCaptures": {
407
+ "1": {
408
+ "name": "punctuation.whitespace.comment.leading.sql"
409
+ }
410
+ },
411
+ "end": "(?!\\G)",
412
+ "patterns": [
413
+ {
414
+ "begin": "--",
415
+ "beginCaptures": {
416
+ "0": {
417
+ "name": "punctuation.definition.comment.sql"
418
+ }
419
+ },
420
+ "end": "\\n",
421
+ "name": "comment.line.double-dash.sql"
422
+ }
423
+ ]
424
+ },
425
+ {
426
+ "begin": "(^[ \\t]+)?(?=#)",
427
+ "beginCaptures": {
428
+ "1": {
429
+ "name": "punctuation.whitespace.comment.leading.sql"
430
+ }
431
+ },
432
+ "end": "(?!\\G)",
433
+ "patterns": [
434
+ ]
435
+ },
436
+ {
437
+ "include": "#comment-block"
438
+ }
439
+ ]
440
+ },
441
+ "regexps": {
442
+ "patterns": [
443
+ {
444
+ "begin": "/(?=\\S.*/)",
445
+ "beginCaptures": {
446
+ "0": {
447
+ "name": "punctuation.definition.string.begin.sql"
448
+ }
449
+ },
450
+ "end": "/",
451
+ "endCaptures": {
452
+ "0": {
453
+ "name": "punctuation.definition.string.end.sql"
454
+ }
455
+ },
456
+ "name": "string.regexp.sql",
457
+ "patterns": [
458
+ {
459
+ "include": "#string_interpolation"
460
+ },
461
+ {
462
+ "match": "\\\\/",
463
+ "name": "constant.character.escape.slash.sql"
464
+ }
465
+ ]
466
+ },
467
+ {
468
+ "begin": "%r\\{",
469
+ "beginCaptures": {
470
+ "0": {
471
+ "name": "punctuation.definition.string.begin.sql"
472
+ }
473
+ },
474
+ "comment": "We should probably handle nested bracket pairs!?! -- Allan",
475
+ "end": "\\}",
476
+ "endCaptures": {
477
+ "0": {
478
+ "name": "punctuation.definition.string.end.sql"
479
+ }
480
+ },
481
+ "name": "string.regexp.modr.sql",
482
+ "patterns": [
483
+ {
484
+ "include": "#string_interpolation"
485
+ }
486
+ ]
487
+ }
488
+ ]
489
+ },
490
+ "string_escape": {
491
+ "match": "\\\\.",
492
+ "name": "constant.character.escape.sql"
493
+ },
494
+ "string_interpolation": {
495
+ "captures": {
496
+ "1": {
497
+ "name": "punctuation.definition.string.begin.sql"
498
+ },
499
+ "3": {
500
+ "name": "punctuation.definition.string.end.sql"
501
+ }
502
+ },
503
+ "match": "(#\\{)([^\\}]*)(\\})",
504
+ "name": "string.interpolated.sql"
505
+ },
506
+ "strings": {
507
+ "patterns": [
508
+ {
509
+ "captures": {
510
+ "2": {
511
+ "name": "punctuation.definition.string.begin.sql"
512
+ },
513
+ "3": {
514
+ "name": "punctuation.definition.string.end.sql"
515
+ }
516
+ },
517
+ "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",
518
+ "match": "(N)?(')[^']*(')",
519
+ "name": "string.quoted.single.sql"
520
+ },
521
+ {
522
+ "begin": "'",
523
+ "beginCaptures": {
524
+ "0": {
525
+ "name": "punctuation.definition.string.begin.sql"
526
+ }
527
+ },
528
+ "end": "'",
529
+ "endCaptures": {
530
+ "0": {
531
+ "name": "punctuation.definition.string.end.sql"
532
+ }
533
+ },
534
+ "name": "string.quoted.single.sql",
535
+ "patterns": [
536
+ {
537
+ "include": "#string_escape"
538
+ }
539
+ ]
540
+ },
541
+ {
542
+ "captures": {
543
+ "1": {
544
+ "name": "punctuation.definition.string.begin.sql"
545
+ },
546
+ "2": {
547
+ "name": "punctuation.definition.string.end.sql"
548
+ }
549
+ },
550
+ "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",
551
+ "match": "(`)[^`\\\\]*(`)",
552
+ "name": "string.quoted.other.backtick.sql"
553
+ },
554
+ {
555
+ "begin": "`",
556
+ "beginCaptures": {
557
+ "0": {
558
+ "name": "punctuation.definition.string.begin.sql"
559
+ }
560
+ },
561
+ "end": "`",
562
+ "endCaptures": {
563
+ "0": {
564
+ "name": "punctuation.definition.string.end.sql"
565
+ }
566
+ },
567
+ "name": "string.quoted.other.backtick.sql",
568
+ "patterns": [
569
+ {
570
+ "include": "#string_escape"
571
+ }
572
+ ]
573
+ },
574
+ {
575
+ "captures": {
576
+ "1": {
577
+ "name": "punctuation.definition.string.begin.sql"
578
+ },
579
+ "2": {
580
+ "name": "punctuation.definition.string.end.sql"
581
+ }
582
+ },
583
+ "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",
584
+ "match": "(\")[^\"#]*(\")",
585
+ "name": "string.quoted.double.sql"
586
+ },
587
+ {
588
+ "begin": "\"",
589
+ "beginCaptures": {
590
+ "0": {
591
+ "name": "punctuation.definition.string.begin.sql"
592
+ }
593
+ },
594
+ "end": "\"",
595
+ "endCaptures": {
596
+ "0": {
597
+ "name": "punctuation.definition.string.end.sql"
598
+ }
599
+ },
600
+ "name": "string.quoted.double.sql",
601
+ "patterns": [
602
+ {
603
+ "include": "#string_interpolation"
604
+ }
605
+ ]
606
+ },
607
+ {
608
+ "begin": "%\\{",
609
+ "beginCaptures": {
610
+ "0": {
611
+ "name": "punctuation.definition.string.begin.sql"
612
+ }
613
+ },
614
+ "end": "\\}",
615
+ "endCaptures": {
616
+ "0": {
617
+ "name": "punctuation.definition.string.end.sql"
618
+ }
619
+ },
620
+ "name": "string.other.quoted.brackets.sql",
621
+ "patterns": [
622
+ {
623
+ "include": "#string_interpolation"
624
+ }
625
+ ]
626
+ }
627
+ ]
628
+ }
629
+ },
630
+ "scopeName": "source.sql"
631
+ }