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
@@ -1720,6 +1720,9 @@
1720
1720
  {
1721
1721
  "include": "#lambda"
1722
1722
  },
1723
+ {
1724
+ "include": "#generator"
1725
+ },
1723
1726
  {
1724
1727
  "include": "#illegal-operator"
1725
1728
  },
@@ -1735,6 +1738,9 @@
1735
1738
  {
1736
1739
  "include": "#list"
1737
1740
  },
1741
+ {
1742
+ "include": "#odd-function-call"
1743
+ },
1738
1744
  {
1739
1745
  "include": "#round-braces"
1740
1746
  },
@@ -2605,6 +2611,25 @@
2605
2611
  }
2606
2612
  ]
2607
2613
  },
2614
+ "generator": {
2615
+ "begin": "\\bfor\\b",
2616
+ "end": "\\bin\\b",
2617
+ "patterns": [
2618
+ {
2619
+ "include": "#expression"
2620
+ }
2621
+ ],
2622
+ "beginCaptures": {
2623
+ "0": {
2624
+ "name": "keyword.control.flow.python"
2625
+ }
2626
+ },
2627
+ "endCaptures": {
2628
+ "0": {
2629
+ "name": "keyword.control.flow.python"
2630
+ }
2631
+ }
2632
+ },
2608
2633
  "illegal-anno": {
2609
2634
  "name": "invalid.illegal.annotation.python",
2610
2635
  "match": "-\u003e"
@@ -2760,6 +2785,7 @@
2760
2785
  "include": "#special-names"
2761
2786
  },
2762
2787
  {
2788
+ "name": "meta.indexed-name.python",
2763
2789
  "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"
2764
2790
  }
2765
2791
  ]
@@ -2979,6 +3005,7 @@
2979
3005
  }
2980
3006
  },
2981
3007
  "member-access": {
3008
+ "name": "meta.member.access.python",
2982
3009
  "begin": "(\\.)\\s*(?!\\.)",
2983
3010
  "end": "(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?\u003c=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?\u003c=\\s))(?=[^\\\\\\w\\s]) |\n $\n",
2984
3011
  "patterns": [
@@ -2987,6 +3014,9 @@
2987
3014
  },
2988
3015
  {
2989
3016
  "include": "#member-access-base"
3017
+ },
3018
+ {
3019
+ "include": "#member-access-attribute"
2990
3020
  }
2991
3021
  ],
2992
3022
  "beginCaptures": {
@@ -2995,6 +3025,10 @@
2995
3025
  }
2996
3026
  }
2997
3027
  },
3028
+ "member-access-attribute": {
3029
+ "name": "meta.attribute.python",
3030
+ "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"
3031
+ },
2998
3032
  "member-access-base": {
2999
3033
  "patterns": [
3000
3034
  {
@@ -3018,6 +3052,7 @@
3018
3052
  ]
3019
3053
  },
3020
3054
  "member-access-class": {
3055
+ "name": "meta.member.access.python",
3021
3056
  "begin": "(\\.)\\s*(?!\\.)",
3022
3057
  "end": "(?\u003c=\\S)(?=\\W)|$",
3023
3058
  "patterns": [
@@ -3124,6 +3159,20 @@
3124
3159
  }
3125
3160
  }
3126
3161
  },
3162
+ "odd-function-call": {
3163
+ "begin": "(?x)\n (?\u003c= \\] | \\) ) \\s*\n (?=\\()\n",
3164
+ "end": "(\\))",
3165
+ "patterns": [
3166
+ {
3167
+ "include": "#function-arguments"
3168
+ }
3169
+ ],
3170
+ "endCaptures": {
3171
+ "1": {
3172
+ "name": "punctuation.definition.arguments.end.python"
3173
+ }
3174
+ }
3175
+ },
3127
3176
  "operator": {
3128
3177
  "match": "(?x)\n \\b(?\u003c!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (\u003c\u003c | \u003e\u003e | \u0026 | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | \u003e= | \u003c= | \u003c | \u003e) (?# 5)\n",
3129
3178
  "captures": {
@@ -4709,6 +4758,9 @@
4709
4758
  {
4710
4759
  "include": "#function-declaration"
4711
4760
  },
4761
+ {
4762
+ "include": "#generator"
4763
+ },
4712
4764
  {
4713
4765
  "include": "#statement-keyword"
4714
4766
  },
@@ -1,65 +1,133 @@
1
1
  {
2
- "name": "q",
2
+ "name": "q/kdb",
3
3
  "scopeName": "source.q",
4
4
  "patterns": [
5
5
  {
6
- "name": "comment.block.source.q",
7
- "begin": "/\n",
8
- "end": "\\\\\n"
6
+ "name": "comment.block.q",
7
+ "begin": "^\\s*/\\s*$\\n",
8
+ "end": "^\\s*\\\\\\s*$\\n"
9
9
  },
10
10
  {
11
- "name": "comment.line.source.q",
12
- "match": "\\s/.*|^/.*"
11
+ "name": "comment.block.q",
12
+ "begin": "^\\\\\\s*\\n",
13
+ "end": "'As far as I know, there is no way to exit this kind of block comment'"
13
14
  },
14
15
  {
15
- "name": "comment.block.source.q",
16
- "begin": "\\\\\n",
17
- "end": "\\\\\n"
16
+ "name": "comment.line.q",
17
+ "match": "\\s/.+$\\n?|^/.+$\\n"
18
18
  },
19
19
  {
20
- "name": "other.source.q",
21
- "match": "(?=(\\W|\\b))((\\.Q\\.\\w+)|(\\.z\\.\\w+)|(\\\\\\w+))(?=(\\W|\\b))",
22
- "captures": {
20
+ "name": "string.quoted.string.source.q",
21
+ "begin": "\"",
22
+ "end": "\"",
23
+ "patterns": [
24
+ {
25
+ "name": "constant.numeric.complex.source.q",
26
+ "match": "\\\\[trn\\\\\\\"]"
27
+ },
28
+ {
29
+ "name": "constant.numeric.complex.source.q",
30
+ "match": "\\\\[0-9]{3}"
31
+ },
32
+ {
33
+ "name": "message.error.q",
34
+ "match": "\\\\[0-9]{1,2}"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "name": "string.interpolated.symbol.q",
40
+ "match": "(`:[:/a-zA-Z0-9_.]*)|(`[:a-zA-Z0-9_.]*)"
41
+ },
42
+ {
43
+ "begin": "(?=(\\W|\\b))(\\.[a-zA-Z]+[a-zA-Z0-9_]*)(\\.[a-zA-Z0-9_]*)*\\s*\\[(?=.*\\]\\s*([,+\\-*%@$!?\u003c\u003e=~|\u0026\\#]?)(::|:))",
44
+ "end": "\\]([,+\\-*%@$!?\u003c\u003e=~|\u0026\\#]?)(::|:)",
45
+ "patterns": [
46
+ {
47
+ "include": "$self"
48
+ }
49
+ ],
50
+ "beginCaptures": {
23
51
  "2": {
24
- "name": "support.function.q"
52
+ "name": "variable.parameter.complex.namespace_dict_assign.q"
53
+ },
54
+ "3": {
55
+ "name": "variable.parameter.complex.namespace_dict_assign.q"
56
+ }
57
+ },
58
+ "endCaptures": {
59
+ "1": {
60
+ "name": "support.function.assignment.q"
61
+ },
62
+ "2": {
63
+ "name": "support.function.assignment.q"
25
64
  }
26
65
  }
27
66
  },
28
67
  {
29
- "name": "string.quoted.string.source.q",
30
- "match": "\".*?\""
68
+ "name": "variable.parameter.complex.namespace_assignment.q",
69
+ "match": "(?=(\\W|\\b))(\\.[a-zA-Z]+[a-zA-Z0-9_]*)(\\.[a-zA-Z0-9_]*)*\\s*([,+\\-*%@$!?\u003c\u003e=~|\u0026\\#]?)(::|:)",
70
+ "captures": {
71
+ "4": {
72
+ "name": "support.function.assignment.q"
73
+ },
74
+ "5": {
75
+ "name": "support.function.assignment.q"
76
+ }
77
+ }
78
+ },
79
+ {
80
+ "name": "support.function.namespace.q",
81
+ "match": "\\.[qQhkozj]\\.\\w+"
31
82
  },
32
83
  {
33
- "name": "string.interpolated.symbol.source.q",
34
- "match": "`[:/a-zA-Z0-9_.]+"
84
+ "name": "source.other_namespaces.q",
85
+ "match": "(?=(\\W|\\b))(\\.[a-zA-Z]+[a-zA-Z0-9_]*)(\\.[a-zA-Z0-9_]*)*(?=(\\W|\\b))"
35
86
  },
36
87
  {
37
- "name": "other.source.q",
38
- "match": "(?=([^a-zA-Z0-9]|\\b))(\\.?[a-zA-Z]+[a-zA-Z0-9_\\.]*\\s*)(:)\\s*",
88
+ "name": "other.assignment.q",
89
+ "match": "(?=([^a-zA-Z0-9]|\\b))([a-zA-Z]+[a-zA-Z0-9_]*)\\s*([,+\\-*%@$!?\u003c\u003e=~|\u0026\\#]?)(::|:)",
39
90
  "captures": {
40
91
  "2": {
41
- "name": "variable.parameter.complex.source.q"
92
+ "name": "variable.parameter.complex.assignment.q"
42
93
  },
43
94
  "3": {
44
95
  "name": "support.function.q"
96
+ },
97
+ "4": {
98
+ "name": "support.function.q"
45
99
  }
46
100
  }
47
101
  },
48
102
  {
49
- "name": "support.function.q",
50
- "match": "[!$@\\\\/_#?|',`(\\\\:)]"
51
- },
52
- {
53
- "name": "support.function.q",
54
- "match": "\\.(?=\\W)"
103
+ "begin": "(?=([^a-zA-Z0-9]|\\b))([a-zA-Z]+[a-zA-Z0-9_]*)\\s*\\[(?=.*\\]\\s*([,+\\-*%@$!?\u003c\u003e=~|\u0026\\#]?)(::|:))",
104
+ "end": "\\]([,+\\-*%@$!?\u003c\u003e=~|\u0026\\#]?)(::|:)",
105
+ "patterns": [
106
+ {
107
+ "include": "$self"
108
+ }
109
+ ],
110
+ "beginCaptures": {
111
+ "2": {
112
+ "name": "variable.parameter.complex.dict_assign.q"
113
+ }
114
+ },
115
+ "endCaptures": {
116
+ "1": {
117
+ "name": "support.function.assignment.q"
118
+ },
119
+ "2": {
120
+ "name": "support.function.assignment.q"
121
+ }
122
+ }
55
123
  },
56
124
  {
57
125
  "contentName": "meta.function.parameters.q",
58
126
  "begin": "(\\{\\s*\\[)",
59
- "end": "(?=\\]\\s*)",
127
+ "end": "]",
60
128
  "patterns": [
61
129
  {
62
- "match": "\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(;)|(?=[\\]\\)]))",
130
+ "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?:(;)|(?=[\\]\\)]))",
63
131
  "captures": {
64
132
  "1": {
65
133
  "name": "entity.other.inherited-class.q"
@@ -72,49 +140,68 @@
72
140
  ]
73
141
  },
74
142
  {
75
- "name": "other.source.q",
76
- "match": "(?=(\\W|\\b))(prd|while|wavg|delete|min|like|exp|abs|insert|wsum|last|log|div|cos|sin|sqrt|max|in|exec|within|xexp|avg|second|hour|minute|update|sum|by|from|select|neg|not|null|string|reciprocal|floor|ceiling|signum|mod|xbar|xlog|and|or|each|scan|over|prior|mmu|lsq|inv|md5|ltime|gtime|count|first|var|dev|med|cov|cor|all|any|rand|sums|prds|mins|maxs|fills|deltas|ratios|avgs|differ|prev|next|rank|reverse|iasc|idesc|asc|desc|msum|mcount|mavg|mdev|xrank|mmin|mmax|xprev|rotate|distinct|group|where|flip|type|key|til|get|value|attr|cut|set|upsert|raze|union|inter|except|cross|sv|vs|sublist|enlist|read0|read1|hopen|hclose|hdel|hsym|hcount|peach|system|ltrim|rtrim|trim|lower|upper|ssr|view|tables|views|cols|xcols|keys|xkey|xcol|xasc|xdesc|fkeys|meta|lj|aj|aj0|ij|pj|asof|uj|ww|wj|wj1|fby|xgroup|ungroup|ej|save|load|rsave|rload|show|csv|parse|eval)(?=(\\W|\\b))",
77
- "captures": {
78
- "2": {
79
- "name": "keyword.other.complex.source.q"
80
- }
81
- }
143
+ "name": "keyword.other.complex.keyword.q",
144
+ "match": "(?=(\\W|\\b))(abs|acos|aj|aj0|all|and|any|asc|asin|asof|atan|attr|avg|avgs|bin|binr|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|each|ej|ema|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|idesc|if|ij|ijf|in|insert|inter|inv|key|keys|last|like|lj|ljf|load|log|lower|lsq|ltime|ltrim|mavg|max|maxs|mcount|md5|mdev|med|meta|min|mins|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|prd|prds|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ss|ssr|string|sublist|sum|sums|sv|svar|system|tables|tan|til|trim|type|uj|ujf|ungroup|union|update|upper|upsert|value|var|view|views|vs|wavg|where|while|within|wj|wj1|wsum|xasc|xbar|xcol|xcols|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)(?=(\\W|\\b))"
82
145
  },
83
146
  {
84
- "name": "other.source.q",
85
- "match": "(?=(\\W|\\b))([0-9]{4}\\.[0-9]{2}\\.[0-9]{2}[TD]?[0-9]{2}:[0-9]{2}:[0-9]{2}(:[0-9]{2})?(\\.[0-9]{3,6})?)(?=(\\W|\\b))",
86
- "captures": {
87
- "2": {
88
- "name": "constant.numeric.complex.source.q"
89
- }
90
- }
147
+ "name": "constant.numeric.complex.timestamp.q",
148
+ "match": "(?=(\\W|\\b))([0-9]{4}\\.[0-9]{2}\\.[0-9]{2}D[0-9]{2}(:[0-5][0-9]){0,2}(\\.[0-9]{3}([a-zA-CE-SU-Z0-9]*[ABCEFGHIJKLMNOPQRSUVWXYZagklnopqrtuvwxy0-9])?|\\.[0-9]*|:)?)(?=(\\W|\\b))"
91
149
  },
92
150
  {
93
- "name": "other.source.q",
94
- "match": "(?=(\\W|\\b))([0-9]{4}\\.[0-9]{2}\\.[0-9]{2}[TD]?)(?=(\\W|\\b))",
95
- "captures": {
96
- "2": {
97
- "name": "constant.numeric.complex.source.q"
98
- }
99
- }
151
+ "name": "constant.numeric.complex.datetime.q",
152
+ "match": "(?=(\\W|\\b))([0-9]{4}\\.[0-9]{2}\\.[0-9]{2}T[0-9]{2}(:[0-5][0-9]){0,2}(\\.[0-9]{3}([a-zA-CE-Z0-9]*[ABCEFGHIJKLMNOPQRSUVWXYZagklnopqrtuvwxy0-9])?|\\.[0-9]*|:)?)(?=(\\W|\\b))"
100
153
  },
101
154
  {
102
- "name": "other.source.q",
103
- "match": "(?=(\\W|\\b))([0-9]{2}:[0-9]{2}:[0-9]{2}(:[0-9]{2})?(\\.[0-9]{3,6})?)(?=(\\W|\\b))",
104
- "captures": {
105
- "2": {
106
- "name": "constant.numeric.complex.source.q"
107
- }
108
- }
155
+ "name": "constant.numeric.complex.timespan.q",
156
+ "match": "(?=(\\W|\\b))(([0-9]{1,6}D([0-9]{1,2})((:[0-5][0-9]){0,2}|:)(\\.[0-9]{0,9}[a-zA-Z0-9]*[A-Zacgklnopqrtuvwxy0-9])?)|([0-9]{2}:[0-5][0-9](:[0-5][0-9]\\.[0-9]{4,}|:[0-5][0-9]\\.[0-9]{9,}[a-zA-Z0-9]*[ABCEFGHIJKLMNOPQRSUVWXYZagklnopqrtuvwxy0-9])|\\.[0-9]{8,}))(?=(\\W|\\b))"
109
157
  },
110
158
  {
111
- "name": "other.source.q",
112
- "match": "(?=(\\W|\\b))([-]?[0-9]+[bhijef]{0,1}(\\.[0-9]+[m]?)?|0x[a-f0-9]+)(?=(\\W|\\b))",
113
- "captures": {
114
- "2": {
115
- "name": "constant.numeric.complex.source.q"
116
- }
117
- }
159
+ "name": "constant.numeric.complex.time.q",
160
+ "match": "(?=(\\W|\\b))([0-9]{2}:[0-5][0-9]((:[0-9]{2}(((([ABCEFGHIJKLMNOPQRSUVWXYZacgklnopqrtuvwxy0-9:]){1,2})?([0-5][0-9]){1,2})|\\.[0-9]{3}[ABCEFGHIJKLMNOPQRSUVWXYZacgklnopqrtuvwxy0-9]?|\\.[0-9]{0,3}))|\\.[0-9]{4,7}))(?=(\\W|\\b))"
161
+ },
162
+ {
163
+ "name": "constant.numeric.complex.second.q",
164
+ "match": "(?=(\\W|\\b))([0-9]{2}:[0-5][0-9]([0-5][0-9]([0-5][0-9])?|\\.[0-9]{2}|:[0-9]{2}|([a-zA-Z]){0,2}[0-5][0-9]))(?=(\\W|\\b))"
165
+ },
166
+ {
167
+ "name": "constant.numeric.complex.minute.q",
168
+ "match": "(?=(\\W|\\b))([0-9]{2}:([0-5][0-9]([ABCEFGHIJKLMNOPQRSUVWXYZacgklnopqrtuvwxy0-9:])?)?)(?=(\\W|\\b))"
169
+ },
170
+ {
171
+ "name": "constant.numeric.complex.date.q",
172
+ "match": "(?=(\\W|\\b))([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})(?=(\\W|\\b))"
173
+ },
174
+ {
175
+ "name": "constant.numeric.complex.month.q",
176
+ "match": "(?=(\\W|\\b))([0-9]{4,}\\.([0][1-9]|[1][0-2])m)(?=(\\W|\\b))"
177
+ },
178
+ {
179
+ "name": "support.function.io.q",
180
+ "match": "0:|1:|2:"
181
+ },
182
+ {
183
+ "name": "constant.numeric.complex.q",
184
+ "match": "(?=(\\W|\\b))([-]?[0-9]+[bhijf]?(\\.[0-9]+[m]?)?|0x[a-fA-F0-9]+)(?=(\\W|\\b)|_)"
185
+ },
186
+ {
187
+ "name": "constant.numeric.complex.real.q",
188
+ "match": "(?=(\\W|\\b))([-]?[0-9]+e[-]?[0-9]+)(?=(\\W|\\b))"
189
+ },
190
+ {
191
+ "name": "constant.numeric.complex.null.q",
192
+ "match": "(?=(\\W|\\b))(0n|0N[ghijepmdznuvt]?)(?=(\\W|\\b))"
193
+ },
194
+ {
195
+ "name": "constant.numeric.complex.inf.q",
196
+ "match": "(?=(\\W|\\b))(0w|0W[hijepdznuvt]?)(?=(\\W|\\b))"
197
+ },
198
+ {
199
+ "name": "support.function.q",
200
+ "match": "[!$@\\\\/_#?|',`\\\\:]"
201
+ },
202
+ {
203
+ "name": "support.function.q",
204
+ "match": "\\.(?=\\W)"
118
205
  }
119
206
  ]
120
207
  }
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "QASM",
3
+ "scopeName": "source.qasm",
4
+ "patterns": [
5
+ {
6
+ "name": "comment.line.double-slash",
7
+ "match": "\\/\\/.*$"
8
+ },
9
+ {
10
+ "name": "comment.line.number-sign",
11
+ "match": "#.*$"
12
+ },
13
+ {
14
+ "name": "entity.name.function",
15
+ "match": "^(?x) # At beggining of line\n(\\.) # Valid function name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{\u003e+~|] # - Another selector\n | # # - A comment\n)"
16
+ },
17
+ {
18
+ "name": "entity.name.section",
19
+ "match": "(?x)\\b(include|OPENQASM|version)\\b"
20
+ },
21
+ {
22
+ "name": "variable.language",
23
+ "match": "(?x)\\b(qubit|qubits|map)\\b"
24
+ },
25
+ {
26
+ "name": "constant.other",
27
+ "match": "(?\u003c=(\\w\\[)|(:))( *\\d *)(?=(\\s*\\])|(:))"
28
+ },
29
+ {
30
+ "name": "keyword.storage.modifier",
31
+ "match": "-\u003e"
32
+ },
33
+ {
34
+ "name": "constant.string.single",
35
+ "match": "('.*')"
36
+ },
37
+ {
38
+ "name": "constant.string.double",
39
+ "match": "\".*\""
40
+ },
41
+ {
42
+ "name": "storage.type",
43
+ "match": "(?x)^\\b(?:(qreg|creg)| (gate|opaque))\\b"
44
+ },
45
+ {
46
+ "name": "support.function",
47
+ "match": "(?x)\\b(?:(prep_x|prep_y|prep_z|error_model)| (measure_x|measure_y|measure_z|measure_all|measure_parity|measure)| (display|display_binary))\\b"
48
+ },
49
+ {
50
+ "name": "keyword.control",
51
+ "match": "(?i)(?x)\\b(?:((i|h|x|y|z)| (rx|ry|rz)| (x90|y90|z90|rx90|ry90|rz90|mx90|my90|mz90)| (x180|y180|z180|rx180|ry180|rz180|mx180|my180|mz180)| (u1|u2|u3|cu1|cu2|cu3)| (s|sdag|t|tdag)| (cnot|cx|cz|cr|crk|toffoli|ccx|ccnot)| (swap) ))\\b"
52
+ },
53
+ {
54
+ "name": "keyword.control",
55
+ "match": "(?i)(?x)\\bc-(?:((i|h|x|y|z)| (rx|ry|rz)| (x90|y90|z90|rx90|ry90|rz90|mx90|my90|mz90)| (x180|y180|z180|rx180|ry180|rz180|mx180|my180|mz180)| (u1|u2|u3)| (s|sdag|t|tdag)| (cnot|cx|cz|cr|crk|toffoli|ccx|ccnot)| (swap) ))\\b"
56
+ },
57
+ {
58
+ "name": "keyword.control",
59
+ "match": "(?i)(?x)\\b(?:(not )|(if(?=[( ])))\\b"
60
+ },
61
+ {
62
+ "name": "variable.language",
63
+ "match": "\\b(depolarizing_channel|load_state|barrier)\\b"
64
+ }
65
+ ]
66
+ }
@@ -0,0 +1,1408 @@
1
+ {
2
+ "name": "QL",
3
+ "scopeName": "source.ql",
4
+ "patterns": [
5
+ {
6
+ "include": "#module-member"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "abstract": {
11
+ "name": "storage.modifier.abstract.ql",
12
+ "match": "(?x)\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))"
13
+ },
14
+ "and": {
15
+ "name": "keyword.other.and.ql",
16
+ "match": "(?x)\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))"
17
+ },
18
+ "annotation": {
19
+ "patterns": [
20
+ {
21
+ "include": "#bindingset-annotation"
22
+ },
23
+ {
24
+ "include": "#language-annotation"
25
+ },
26
+ {
27
+ "include": "#pragma-annotation"
28
+ },
29
+ {
30
+ "include": "#annotation-keyword"
31
+ }
32
+ ]
33
+ },
34
+ "annotation-keyword": {
35
+ "patterns": [
36
+ {
37
+ "include": "#abstract"
38
+ },
39
+ {
40
+ "include": "#bindingset"
41
+ },
42
+ {
43
+ "include": "#cached"
44
+ },
45
+ {
46
+ "include": "#deprecated"
47
+ },
48
+ {
49
+ "include": "#external"
50
+ },
51
+ {
52
+ "include": "#final"
53
+ },
54
+ {
55
+ "include": "#language"
56
+ },
57
+ {
58
+ "include": "#library"
59
+ },
60
+ {
61
+ "include": "#override"
62
+ },
63
+ {
64
+ "include": "#pragma"
65
+ },
66
+ {
67
+ "include": "#private"
68
+ },
69
+ {
70
+ "include": "#query"
71
+ },
72
+ {
73
+ "include": "#transient"
74
+ }
75
+ ]
76
+ },
77
+ "any": {
78
+ "name": "keyword.quantifier.any.ql",
79
+ "match": "(?x)\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))"
80
+ },
81
+ "arithmetic-operator": {
82
+ "name": "keyword.operator.arithmetic.ql",
83
+ "match": "(?x)\\+|-|\\*|/|%"
84
+ },
85
+ "as": {
86
+ "name": "keyword.other.as.ql",
87
+ "match": "(?x)\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))"
88
+ },
89
+ "asc": {
90
+ "name": "keyword.order.asc.ql",
91
+ "match": "(?x)\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))"
92
+ },
93
+ "at-lower-id": {
94
+ "match": "(?x)@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
95
+ },
96
+ "avg": {
97
+ "name": "keyword.aggregate.avg.ql",
98
+ "match": "(?x)\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))"
99
+ },
100
+ "bindingset": {
101
+ "name": "storage.modifier.bindingset.ql",
102
+ "match": "(?x)\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))"
103
+ },
104
+ "bindingset-annotation": {
105
+ "name": "meta.block.bindingset-annotation.ql",
106
+ "begin": "(?x)((?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))))",
107
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
108
+ "patterns": [
109
+ {
110
+ "include": "#bindingset-annotation-body"
111
+ },
112
+ {
113
+ "include": "#non-context-sensitive"
114
+ }
115
+ ],
116
+ "beginCaptures": {
117
+ "1": {
118
+ "patterns": [
119
+ {
120
+ "include": "#bindingset"
121
+ }
122
+ ]
123
+ }
124
+ }
125
+ },
126
+ "bindingset-annotation-body": {
127
+ "name": "meta.block.bindingset-annotation-body.ql",
128
+ "begin": "(?x)((?:\\[))",
129
+ "end": "(?x)((?:\\]))",
130
+ "patterns": [
131
+ {
132
+ "include": "#non-context-sensitive"
133
+ },
134
+ {
135
+ "name": "variable.parameter.ql",
136
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
137
+ }
138
+ ],
139
+ "beginCaptures": {
140
+ "1": {
141
+ "patterns": [
142
+ {
143
+ "include": "#open-bracket"
144
+ }
145
+ ]
146
+ }
147
+ },
148
+ "endCaptures": {
149
+ "1": {
150
+ "patterns": [
151
+ {
152
+ "include": "#close-bracket"
153
+ }
154
+ ]
155
+ }
156
+ }
157
+ },
158
+ "boolean": {
159
+ "name": "keyword.type.boolean.ql",
160
+ "match": "(?x)\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))"
161
+ },
162
+ "by": {
163
+ "name": "keyword.order.by.ql",
164
+ "match": "(?x)\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))"
165
+ },
166
+ "cached": {
167
+ "name": "storage.modifier.cached.ql",
168
+ "match": "(?x)\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))"
169
+ },
170
+ "class": {
171
+ "name": "keyword.other.class.ql",
172
+ "match": "(?x)\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))"
173
+ },
174
+ "class-body": {
175
+ "name": "meta.block.class-body.ql",
176
+ "begin": "(?x)((?:\\{))",
177
+ "end": "(?x)((?:\\}))",
178
+ "patterns": [
179
+ {
180
+ "include": "#class-member"
181
+ }
182
+ ],
183
+ "beginCaptures": {
184
+ "1": {
185
+ "patterns": [
186
+ {
187
+ "include": "#open-brace"
188
+ }
189
+ ]
190
+ }
191
+ },
192
+ "endCaptures": {
193
+ "1": {
194
+ "patterns": [
195
+ {
196
+ "include": "#close-brace"
197
+ }
198
+ ]
199
+ }
200
+ }
201
+ },
202
+ "class-declaration": {
203
+ "name": "meta.block.class-declaration.ql",
204
+ "begin": "(?x)((?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))))",
205
+ "end": "(?x)(?\u003c= \\} | ; )",
206
+ "patterns": [
207
+ {
208
+ "include": "#class-body"
209
+ },
210
+ {
211
+ "include": "#extends-clause"
212
+ },
213
+ {
214
+ "include": "#non-context-sensitive"
215
+ },
216
+ {
217
+ "name": "entity.name.type.class.ql",
218
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
219
+ }
220
+ ],
221
+ "beginCaptures": {
222
+ "1": {
223
+ "patterns": [
224
+ {
225
+ "include": "#class"
226
+ }
227
+ ]
228
+ }
229
+ }
230
+ },
231
+ "class-member": {
232
+ "patterns": [
233
+ {
234
+ "include": "#predicate-or-field-declaration"
235
+ },
236
+ {
237
+ "include": "#annotation"
238
+ },
239
+ {
240
+ "include": "#non-context-sensitive"
241
+ }
242
+ ]
243
+ },
244
+ "close-brace": {
245
+ "name": "punctuation.curlybrace.close.ql",
246
+ "match": "(?x)\\}"
247
+ },
248
+ "close-bracket": {
249
+ "name": "punctuation.squarebracket.close.ql",
250
+ "match": "(?x)\\]"
251
+ },
252
+ "close-paren": {
253
+ "name": "punctuation.parenthesis.close.ql",
254
+ "match": "(?x)\\)"
255
+ },
256
+ "comma": {
257
+ "name": "punctuation.separator.comma.ql",
258
+ "match": "(?x),"
259
+ },
260
+ "comment": {
261
+ "patterns": [
262
+ {
263
+ "name": "comment.block.documentation.ql",
264
+ "begin": "(?x)/\\*\\*",
265
+ "end": "(?x)\\*/",
266
+ "patterns": [
267
+ {
268
+ "begin": "(?x)(?\u003c=/\\*\\*)([^*]|\\*(?!/))*$",
269
+ "while": "(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)",
270
+ "patterns": [
271
+ {
272
+ "name": "keyword.tag.ql",
273
+ "match": "(?x)\\G\\s* (@\\S+)"
274
+ }
275
+ ]
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "name": "comment.block.ql",
281
+ "begin": "(?x)/\\*",
282
+ "end": "(?x)\\*/"
283
+ },
284
+ {
285
+ "name": "comment.line.double-slash.ql",
286
+ "match": "(?x)//.*$"
287
+ }
288
+ ]
289
+ },
290
+ "comment-start": {
291
+ "match": "(?x)// | /\\*"
292
+ },
293
+ "comparison-operator": {
294
+ "name": "keyword.operator.comparison.ql",
295
+ "match": "(?x)=|\\!-"
296
+ },
297
+ "concat": {
298
+ "name": "keyword.aggregate.concat.ql",
299
+ "match": "(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))"
300
+ },
301
+ "count": {
302
+ "name": "keyword.aggregate.count.ql",
303
+ "match": "(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))"
304
+ },
305
+ "date": {
306
+ "name": "keyword.type.date.ql",
307
+ "match": "(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))"
308
+ },
309
+ "deprecated": {
310
+ "name": "storage.modifier.deprecated.ql",
311
+ "match": "(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))"
312
+ },
313
+ "desc": {
314
+ "name": "keyword.order.desc.ql",
315
+ "match": "(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))"
316
+ },
317
+ "dont-care": {
318
+ "name": "variable.language.dont-care.ql",
319
+ "match": "(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))"
320
+ },
321
+ "dot": {
322
+ "name": "punctuation.accessor.ql",
323
+ "match": "(?x)\\."
324
+ },
325
+ "dotdot": {
326
+ "name": "punctuation.operator.range.ql",
327
+ "match": "(?x)\\.\\."
328
+ },
329
+ "else": {
330
+ "name": "keyword.other.else.ql",
331
+ "match": "(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))"
332
+ },
333
+ "end-of-as-clause": {
334
+ "match": "(?x)(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))))"
335
+ },
336
+ "end-of-id": {
337
+ "match": "(?x)(?!(?:[0-9A-Za-z_]))"
338
+ },
339
+ "exists": {
340
+ "name": "keyword.quantifier.exists.ql",
341
+ "match": "(?x)\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))"
342
+ },
343
+ "expr-as-clause": {
344
+ "name": "meta.block.expr-as-clause.ql",
345
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
346
+ "end": "(?x)(?:(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))",
347
+ "patterns": [
348
+ {
349
+ "include": "#non-context-sensitive"
350
+ },
351
+ {
352
+ "name": "variable.other.ql",
353
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
354
+ }
355
+ ],
356
+ "beginCaptures": {
357
+ "1": {
358
+ "patterns": [
359
+ {
360
+ "include": "#as"
361
+ }
362
+ ]
363
+ }
364
+ }
365
+ },
366
+ "extends": {
367
+ "name": "keyword.other.extends.ql",
368
+ "match": "(?x)\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))"
369
+ },
370
+ "extends-clause": {
371
+ "name": "meta.block.extends-clause.ql",
372
+ "begin": "(?x)((?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))))",
373
+ "end": "(?x)(?= \\{ )",
374
+ "patterns": [
375
+ {
376
+ "include": "#non-context-sensitive"
377
+ },
378
+ {
379
+ "name": "entity.name.type.ql",
380
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
381
+ }
382
+ ],
383
+ "beginCaptures": {
384
+ "1": {
385
+ "patterns": [
386
+ {
387
+ "include": "#extends"
388
+ }
389
+ ]
390
+ }
391
+ }
392
+ },
393
+ "external": {
394
+ "name": "storage.modifier.external.ql",
395
+ "match": "(?x)\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))"
396
+ },
397
+ "false": {
398
+ "name": "constant.language.boolean.false.ql",
399
+ "match": "(?x)\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))"
400
+ },
401
+ "final": {
402
+ "name": "storage.modifier.final.ql",
403
+ "match": "(?x)\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))"
404
+ },
405
+ "float": {
406
+ "name": "keyword.type.float.ql",
407
+ "match": "(?x)\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))"
408
+ },
409
+ "float-literal": {
410
+ "name": "constant.numeric.decimal.ql",
411
+ "match": "(?x)-?[0-9]+\\.[0-9]+(?![0-9])"
412
+ },
413
+ "forall": {
414
+ "name": "keyword.quantifier.forall.ql",
415
+ "match": "(?x)\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))"
416
+ },
417
+ "forex": {
418
+ "name": "keyword.quantifier.forex.ql",
419
+ "match": "(?x)\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))"
420
+ },
421
+ "from": {
422
+ "name": "keyword.other.from.ql",
423
+ "match": "(?x)\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))"
424
+ },
425
+ "from-section": {
426
+ "name": "meta.block.from-section.ql",
427
+ "begin": "(?x)((?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))))",
428
+ "end": "(?x)(?= (?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))) | (?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))) )",
429
+ "patterns": [
430
+ {
431
+ "include": "#non-context-sensitive"
432
+ },
433
+ {
434
+ "name": "variable.parameter.ql",
435
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|$))"
436
+ },
437
+ {
438
+ "include": "#module-qualifier"
439
+ },
440
+ {
441
+ "name": "entity.name.type.ql",
442
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
443
+ },
444
+ {
445
+ "name": "variable.parameter.ql",
446
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
447
+ }
448
+ ],
449
+ "beginCaptures": {
450
+ "1": {
451
+ "patterns": [
452
+ {
453
+ "include": "#from"
454
+ }
455
+ ]
456
+ }
457
+ }
458
+ },
459
+ "id-character": {
460
+ "match": "(?x)[0-9A-Za-z_]"
461
+ },
462
+ "if": {
463
+ "name": "keyword.other.if.ql",
464
+ "match": "(?x)\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))"
465
+ },
466
+ "implies": {
467
+ "name": "keyword.other.implies.ql",
468
+ "match": "(?x)\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))"
469
+ },
470
+ "import": {
471
+ "name": "keyword.other.import.ql",
472
+ "match": "(?x)\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))"
473
+ },
474
+ "import-as-clause": {
475
+ "name": "meta.block.import-as-clause.ql",
476
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
477
+ "end": "(?x)(?:(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))",
478
+ "patterns": [
479
+ {
480
+ "include": "#non-context-sensitive"
481
+ },
482
+ {
483
+ "name": "entity.name.type.namespace.ql",
484
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
485
+ }
486
+ ],
487
+ "beginCaptures": {
488
+ "1": {
489
+ "patterns": [
490
+ {
491
+ "include": "#as"
492
+ }
493
+ ]
494
+ }
495
+ }
496
+ },
497
+ "import-directive": {
498
+ "name": "meta.block.import-directive.ql",
499
+ "begin": "(?x)((?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))",
500
+ "end": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?!\\s*(\\.|\\:\\:))",
501
+ "patterns": [
502
+ {
503
+ "include": "#non-context-sensitive"
504
+ },
505
+ {
506
+ "name": "entity.name.type.namespace.ql",
507
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
508
+ }
509
+ ],
510
+ "beginCaptures": {
511
+ "1": {
512
+ "patterns": [
513
+ {
514
+ "include": "#import"
515
+ }
516
+ ]
517
+ }
518
+ },
519
+ "endCaptures": {
520
+ "0": {
521
+ "name": "entity.name.type.namespace.ql"
522
+ }
523
+ }
524
+ },
525
+ "in": {
526
+ "name": "keyword.other.in.ql",
527
+ "match": "(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))"
528
+ },
529
+ "instanceof": {
530
+ "name": "keyword.other.instanceof.ql",
531
+ "match": "(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))"
532
+ },
533
+ "int": {
534
+ "name": "keyword.type.int.ql",
535
+ "match": "(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))"
536
+ },
537
+ "int-literal": {
538
+ "name": "constant.numeric.decimal.ql",
539
+ "match": "(?x)-?[0-9]+(?![0-9])"
540
+ },
541
+ "keyword": {
542
+ "patterns": [
543
+ {
544
+ "include": "#dont-care"
545
+ },
546
+ {
547
+ "include": "#and"
548
+ },
549
+ {
550
+ "include": "#any"
551
+ },
552
+ {
553
+ "include": "#as"
554
+ },
555
+ {
556
+ "include": "#asc"
557
+ },
558
+ {
559
+ "include": "#avg"
560
+ },
561
+ {
562
+ "include": "#boolean"
563
+ },
564
+ {
565
+ "include": "#by"
566
+ },
567
+ {
568
+ "include": "#class"
569
+ },
570
+ {
571
+ "include": "#concat"
572
+ },
573
+ {
574
+ "include": "#count"
575
+ },
576
+ {
577
+ "include": "#date"
578
+ },
579
+ {
580
+ "include": "#desc"
581
+ },
582
+ {
583
+ "include": "#else"
584
+ },
585
+ {
586
+ "include": "#exists"
587
+ },
588
+ {
589
+ "include": "#extends"
590
+ },
591
+ {
592
+ "include": "#false"
593
+ },
594
+ {
595
+ "include": "#float"
596
+ },
597
+ {
598
+ "include": "#forall"
599
+ },
600
+ {
601
+ "include": "#forex"
602
+ },
603
+ {
604
+ "include": "#from"
605
+ },
606
+ {
607
+ "include": "#if"
608
+ },
609
+ {
610
+ "include": "#implies"
611
+ },
612
+ {
613
+ "include": "#import"
614
+ },
615
+ {
616
+ "include": "#in"
617
+ },
618
+ {
619
+ "include": "#instanceof"
620
+ },
621
+ {
622
+ "include": "#int"
623
+ },
624
+ {
625
+ "include": "#max"
626
+ },
627
+ {
628
+ "include": "#min"
629
+ },
630
+ {
631
+ "include": "#module"
632
+ },
633
+ {
634
+ "include": "#newtype"
635
+ },
636
+ {
637
+ "include": "#none"
638
+ },
639
+ {
640
+ "include": "#not"
641
+ },
642
+ {
643
+ "include": "#or"
644
+ },
645
+ {
646
+ "include": "#order"
647
+ },
648
+ {
649
+ "include": "#predicate"
650
+ },
651
+ {
652
+ "include": "#rank"
653
+ },
654
+ {
655
+ "include": "#result"
656
+ },
657
+ {
658
+ "include": "#select"
659
+ },
660
+ {
661
+ "include": "#strictconcat"
662
+ },
663
+ {
664
+ "include": "#strictcount"
665
+ },
666
+ {
667
+ "include": "#strictsum"
668
+ },
669
+ {
670
+ "include": "#string"
671
+ },
672
+ {
673
+ "include": "#sum"
674
+ },
675
+ {
676
+ "include": "#super"
677
+ },
678
+ {
679
+ "include": "#then"
680
+ },
681
+ {
682
+ "include": "#this"
683
+ },
684
+ {
685
+ "include": "#true"
686
+ },
687
+ {
688
+ "include": "#where"
689
+ }
690
+ ]
691
+ },
692
+ "language": {
693
+ "name": "storage.modifier.language.ql",
694
+ "match": "(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))"
695
+ },
696
+ "language-annotation": {
697
+ "name": "meta.block.language-annotation.ql",
698
+ "begin": "(?x)((?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))",
699
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
700
+ "patterns": [
701
+ {
702
+ "include": "#language-annotation-body"
703
+ },
704
+ {
705
+ "include": "#non-context-sensitive"
706
+ }
707
+ ],
708
+ "beginCaptures": {
709
+ "1": {
710
+ "patterns": [
711
+ {
712
+ "include": "#language"
713
+ }
714
+ ]
715
+ }
716
+ }
717
+ },
718
+ "language-annotation-body": {
719
+ "name": "meta.block.language-annotation-body.ql",
720
+ "begin": "(?x)((?:\\[))",
721
+ "end": "(?x)((?:\\]))",
722
+ "patterns": [
723
+ {
724
+ "include": "#non-context-sensitive"
725
+ },
726
+ {
727
+ "name": "storage.modifier.ql",
728
+ "match": "(?x)\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))"
729
+ }
730
+ ],
731
+ "beginCaptures": {
732
+ "1": {
733
+ "patterns": [
734
+ {
735
+ "include": "#open-bracket"
736
+ }
737
+ ]
738
+ }
739
+ },
740
+ "endCaptures": {
741
+ "1": {
742
+ "patterns": [
743
+ {
744
+ "include": "#close-bracket"
745
+ }
746
+ ]
747
+ }
748
+ }
749
+ },
750
+ "library": {
751
+ "name": "storage.modifier.library.ql",
752
+ "match": "(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))"
753
+ },
754
+ "literal": {
755
+ "patterns": [
756
+ {
757
+ "include": "#float-literal"
758
+ },
759
+ {
760
+ "include": "#int-literal"
761
+ },
762
+ {
763
+ "include": "#string-literal"
764
+ }
765
+ ]
766
+ },
767
+ "lower-id": {
768
+ "match": "(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
769
+ },
770
+ "max": {
771
+ "name": "keyword.aggregate.max.ql",
772
+ "match": "(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))"
773
+ },
774
+ "min": {
775
+ "name": "keyword.aggregate.min.ql",
776
+ "match": "(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))"
777
+ },
778
+ "module": {
779
+ "name": "keyword.other.module.ql",
780
+ "match": "(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))"
781
+ },
782
+ "module-body": {
783
+ "name": "meta.block.module-body.ql",
784
+ "begin": "(?x)((?:\\{))",
785
+ "end": "(?x)((?:\\}))",
786
+ "patterns": [
787
+ {
788
+ "include": "#module-member"
789
+ }
790
+ ],
791
+ "beginCaptures": {
792
+ "1": {
793
+ "patterns": [
794
+ {
795
+ "include": "#open-brace"
796
+ }
797
+ ]
798
+ }
799
+ },
800
+ "endCaptures": {
801
+ "1": {
802
+ "patterns": [
803
+ {
804
+ "include": "#close-brace"
805
+ }
806
+ ]
807
+ }
808
+ }
809
+ },
810
+ "module-declaration": {
811
+ "name": "meta.block.module-declaration.ql",
812
+ "begin": "(?x)((?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))",
813
+ "end": "(?x)(?\u003c=\\}|;)",
814
+ "patterns": [
815
+ {
816
+ "include": "#module-body"
817
+ },
818
+ {
819
+ "include": "#non-context-sensitive"
820
+ },
821
+ {
822
+ "name": "entity.name.type.namespace.ql",
823
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
824
+ }
825
+ ],
826
+ "beginCaptures": {
827
+ "1": {
828
+ "patterns": [
829
+ {
830
+ "include": "#module"
831
+ }
832
+ ]
833
+ }
834
+ }
835
+ },
836
+ "module-member": {
837
+ "patterns": [
838
+ {
839
+ "include": "#import-directive"
840
+ },
841
+ {
842
+ "include": "#import-as-clause"
843
+ },
844
+ {
845
+ "include": "#module-declaration"
846
+ },
847
+ {
848
+ "include": "#class-declaration"
849
+ },
850
+ {
851
+ "include": "#select-clause"
852
+ },
853
+ {
854
+ "include": "#predicate-or-field-declaration"
855
+ },
856
+ {
857
+ "include": "#non-context-sensitive"
858
+ },
859
+ {
860
+ "include": "#annotation"
861
+ }
862
+ ]
863
+ },
864
+ "module-qualifier": {
865
+ "name": "entity.name.type.namespace.ql",
866
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?=\\s*\\:\\:)"
867
+ },
868
+ "newtype": {
869
+ "name": "keyword.other.newtype.ql",
870
+ "match": "(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))"
871
+ },
872
+ "newtype-branch": {
873
+ "name": "meta.block.newtype-branch.ql",
874
+ "begin": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",
875
+ "end": "(?x)(?\u003c=\\}) | (?! \\s | (?:// | /\\*) | \\{ )",
876
+ "patterns": [
877
+ {
878
+ "include": "#predicate-body"
879
+ },
880
+ {
881
+ "include": "#non-context-sensitive"
882
+ },
883
+ {
884
+ "name": "entity.name.type.ql",
885
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
886
+ }
887
+ ],
888
+ "beginCaptures": {
889
+ "0": {
890
+ "name": "entity.name.type.ql"
891
+ }
892
+ }
893
+ },
894
+ "newtype-declaration": {
895
+ "name": "meta.block.newtype.ql",
896
+ "begin": "(?x)((?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))",
897
+ "end": "(?x)(?! \\s | (?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) | (?:// | /\\*) | \\= | \\( )",
898
+ "patterns": [
899
+ {
900
+ "include": "#non-context-sensitive"
901
+ },
902
+ {
903
+ "include": "#newtype-branch"
904
+ }
905
+ ],
906
+ "beginCaptures": {
907
+ "1": {
908
+ "patterns": [
909
+ {
910
+ "include": "#newtype"
911
+ }
912
+ ]
913
+ }
914
+ }
915
+ },
916
+ "non-context-sensitive": {
917
+ "patterns": [
918
+ {
919
+ "include": "#comment"
920
+ },
921
+ {
922
+ "include": "#literal"
923
+ },
924
+ {
925
+ "include": "#operator-or-punctuation"
926
+ },
927
+ {
928
+ "include": "#keyword"
929
+ }
930
+ ]
931
+ },
932
+ "none": {
933
+ "name": "keyword.quantifier.none.ql",
934
+ "match": "(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))"
935
+ },
936
+ "not": {
937
+ "name": "keyword.other.not.ql",
938
+ "match": "(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))"
939
+ },
940
+ "open-brace": {
941
+ "name": "punctuation.curlybrace.open.ql",
942
+ "match": "(?x)\\{"
943
+ },
944
+ "open-bracket": {
945
+ "name": "punctuation.squarebracket.open.ql",
946
+ "match": "(?x)\\["
947
+ },
948
+ "open-paren": {
949
+ "name": "punctuation.parenthesis.open.ql",
950
+ "match": "(?x)\\("
951
+ },
952
+ "operator-or-punctuation": {
953
+ "patterns": [
954
+ {
955
+ "include": "#relational-operator"
956
+ },
957
+ {
958
+ "include": "#comparison-operator"
959
+ },
960
+ {
961
+ "include": "#arithmetic-operator"
962
+ },
963
+ {
964
+ "include": "#comma"
965
+ },
966
+ {
967
+ "include": "#semicolon"
968
+ },
969
+ {
970
+ "include": "#dot"
971
+ },
972
+ {
973
+ "include": "#dotdot"
974
+ },
975
+ {
976
+ "include": "#pipe"
977
+ },
978
+ {
979
+ "include": "#open-paren"
980
+ },
981
+ {
982
+ "include": "#close-paren"
983
+ },
984
+ {
985
+ "include": "#open-brace"
986
+ },
987
+ {
988
+ "include": "#close-brace"
989
+ },
990
+ {
991
+ "include": "#open-bracket"
992
+ },
993
+ {
994
+ "include": "#close-bracket"
995
+ }
996
+ ]
997
+ },
998
+ "or": {
999
+ "name": "keyword.other.or.ql",
1000
+ "match": "(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))"
1001
+ },
1002
+ "order": {
1003
+ "name": "keyword.order.order.ql",
1004
+ "match": "(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))"
1005
+ },
1006
+ "override": {
1007
+ "name": "storage.modifier.override.ql",
1008
+ "match": "(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))"
1009
+ },
1010
+ "pipe": {
1011
+ "name": "punctuation.separator.pipe.ql",
1012
+ "match": "(?x)\\|"
1013
+ },
1014
+ "pragma": {
1015
+ "name": "storage.modifier.pragma.ql",
1016
+ "match": "(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))"
1017
+ },
1018
+ "pragma-annotation": {
1019
+ "name": "meta.block.pragma-annotation.ql",
1020
+ "begin": "(?x)((?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))",
1021
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
1022
+ "patterns": [
1023
+ {
1024
+ "include": "#pragma-annotation-body"
1025
+ },
1026
+ {
1027
+ "include": "#non-context-sensitive"
1028
+ }
1029
+ ],
1030
+ "beginCaptures": {
1031
+ "1": {
1032
+ "patterns": [
1033
+ {
1034
+ "include": "#pragma"
1035
+ }
1036
+ ]
1037
+ }
1038
+ }
1039
+ },
1040
+ "pragma-annotation-body": {
1041
+ "name": "meta.block.pragma-annotation-body.ql",
1042
+ "begin": "(?x)((?:\\[))",
1043
+ "end": "(?x)((?:\\]))",
1044
+ "patterns": [
1045
+ {
1046
+ "name": "storage.modifier.ql",
1047
+ "match": "(?x)\\b(?:inline|noinline|nomagic|noopt)\\b"
1048
+ }
1049
+ ],
1050
+ "beginCaptures": {
1051
+ "1": {
1052
+ "patterns": [
1053
+ {
1054
+ "include": "#open-bracket"
1055
+ }
1056
+ ]
1057
+ }
1058
+ },
1059
+ "endCaptures": {
1060
+ "1": {
1061
+ "patterns": [
1062
+ {
1063
+ "include": "#close-bracket"
1064
+ }
1065
+ ]
1066
+ }
1067
+ }
1068
+ },
1069
+ "predicate": {
1070
+ "name": "keyword.other.predicate.ql",
1071
+ "match": "(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))"
1072
+ },
1073
+ "predicate-body": {
1074
+ "name": "meta.block.predicate-body.ql",
1075
+ "begin": "(?x)((?:\\{))",
1076
+ "end": "(?x)((?:\\}))",
1077
+ "patterns": [
1078
+ {
1079
+ "include": "#predicate-body-contents"
1080
+ }
1081
+ ],
1082
+ "beginCaptures": {
1083
+ "1": {
1084
+ "patterns": [
1085
+ {
1086
+ "include": "#open-brace"
1087
+ }
1088
+ ]
1089
+ }
1090
+ },
1091
+ "endCaptures": {
1092
+ "1": {
1093
+ "patterns": [
1094
+ {
1095
+ "include": "#close-brace"
1096
+ }
1097
+ ]
1098
+ }
1099
+ }
1100
+ },
1101
+ "predicate-body-contents": {
1102
+ "patterns": [
1103
+ {
1104
+ "include": "#expr-as-clause"
1105
+ },
1106
+ {
1107
+ "include": "#non-context-sensitive"
1108
+ },
1109
+ {
1110
+ "include": "#module-qualifier"
1111
+ },
1112
+ {
1113
+ "name": "entity.name.function.ql",
1114
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))\\s*(?:\\*|\\+)?\\s*(?=\\()"
1115
+ },
1116
+ {
1117
+ "name": "variable.other.ql",
1118
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1119
+ },
1120
+ {
1121
+ "name": "entity.name.type.ql",
1122
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1123
+ }
1124
+ ]
1125
+ },
1126
+ "predicate-or-field-declaration": {
1127
+ "name": "meta.block.predicate-or-field-declaration.ql",
1128
+ "begin": "(?x)(?:(?=(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))))))) | (?=(?:(?:(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))))) | (?=(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))",
1129
+ "end": "(?x)(?\u003c=\\}|;)",
1130
+ "patterns": [
1131
+ {
1132
+ "include": "#predicate-parameter-list"
1133
+ },
1134
+ {
1135
+ "include": "#predicate-body"
1136
+ },
1137
+ {
1138
+ "include": "#non-context-sensitive"
1139
+ },
1140
+ {
1141
+ "include": "#module-qualifier"
1142
+ },
1143
+ {
1144
+ "name": "variable.field.ql",
1145
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*;)"
1146
+ },
1147
+ {
1148
+ "name": "entity.name.function.ql",
1149
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1150
+ },
1151
+ {
1152
+ "name": "entity.name.type.ql",
1153
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1154
+ }
1155
+ ]
1156
+ },
1157
+ "predicate-parameter-list": {
1158
+ "name": "meta.block.predicate-parameter-list.ql",
1159
+ "begin": "(?x)((?:\\())",
1160
+ "end": "(?x)((?:\\)))",
1161
+ "patterns": [
1162
+ {
1163
+ "include": "#non-context-sensitive"
1164
+ },
1165
+ {
1166
+ "name": "variable.parameter.ql",
1167
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|\\)))"
1168
+ },
1169
+ {
1170
+ "include": "#module-qualifier"
1171
+ },
1172
+ {
1173
+ "name": "entity.name.type.ql",
1174
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1175
+ },
1176
+ {
1177
+ "name": "variable.parameter.ql",
1178
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1179
+ }
1180
+ ],
1181
+ "beginCaptures": {
1182
+ "1": {
1183
+ "patterns": [
1184
+ {
1185
+ "include": "#open-paren"
1186
+ }
1187
+ ]
1188
+ }
1189
+ },
1190
+ "endCaptures": {
1191
+ "1": {
1192
+ "patterns": [
1193
+ {
1194
+ "include": "#close-paren"
1195
+ }
1196
+ ]
1197
+ }
1198
+ }
1199
+ },
1200
+ "predicate-start-keyword": {
1201
+ "patterns": [
1202
+ {
1203
+ "include": "#boolean"
1204
+ },
1205
+ {
1206
+ "include": "#date"
1207
+ },
1208
+ {
1209
+ "include": "#float"
1210
+ },
1211
+ {
1212
+ "include": "#int"
1213
+ },
1214
+ {
1215
+ "include": "#predicate"
1216
+ },
1217
+ {
1218
+ "include": "#string"
1219
+ }
1220
+ ]
1221
+ },
1222
+ "private": {
1223
+ "name": "storage.modifier.private.ql",
1224
+ "match": "(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))"
1225
+ },
1226
+ "query": {
1227
+ "name": "storage.modifier.query.ql",
1228
+ "match": "(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))"
1229
+ },
1230
+ "rank": {
1231
+ "name": "keyword.aggregate.rank.ql",
1232
+ "match": "(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))"
1233
+ },
1234
+ "relational-operator": {
1235
+ "name": "keyword.operator.relational.ql",
1236
+ "match": "(?x)\u003c=|\u003c|\u003e=|\u003e"
1237
+ },
1238
+ "result": {
1239
+ "name": "variable.language.result.ql",
1240
+ "match": "(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))"
1241
+ },
1242
+ "select": {
1243
+ "name": "keyword.query.select.ql",
1244
+ "match": "(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))"
1245
+ },
1246
+ "select-as-clause": {
1247
+ "match": "(?x)meta.block.select-as-clause.ql",
1248
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
1249
+ "end": "(?x)(?\u003c=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))",
1250
+ "patterns": [
1251
+ {
1252
+ "include": "#non-context-sensitive"
1253
+ },
1254
+ {
1255
+ "name": "variable.other.ql",
1256
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1257
+ }
1258
+ ],
1259
+ "beginCaptures": {
1260
+ "1": {
1261
+ "patterns": [
1262
+ {
1263
+ "include": "#as"
1264
+ }
1265
+ ]
1266
+ }
1267
+ }
1268
+ },
1269
+ "select-clause": {
1270
+ "name": "meta.block.select-clause.ql",
1271
+ "begin": "(?x)(?=(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1272
+ "end": "(?x)(?!(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1273
+ "patterns": [
1274
+ {
1275
+ "include": "#from-section"
1276
+ },
1277
+ {
1278
+ "include": "#where-section"
1279
+ },
1280
+ {
1281
+ "include": "#select-section"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "select-section": {
1286
+ "name": "meta.block.select-section.ql",
1287
+ "begin": "(?x)((?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1288
+ "end": "(?x)(?=\\n)",
1289
+ "patterns": [
1290
+ {
1291
+ "include": "#predicate-body-contents"
1292
+ },
1293
+ {
1294
+ "include": "#select-as-clause"
1295
+ }
1296
+ ],
1297
+ "beginCaptures": {
1298
+ "1": {
1299
+ "patterns": [
1300
+ {
1301
+ "include": "#select"
1302
+ }
1303
+ ]
1304
+ }
1305
+ }
1306
+ },
1307
+ "semicolon": {
1308
+ "name": "punctuation.separator.statement.ql",
1309
+ "match": "(?x);"
1310
+ },
1311
+ "simple-id": {
1312
+ "match": "(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
1313
+ },
1314
+ "strictconcat": {
1315
+ "name": "keyword.aggregate.strictconcat.ql",
1316
+ "match": "(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))"
1317
+ },
1318
+ "strictcount": {
1319
+ "name": "keyword.aggregate.strictcount.ql",
1320
+ "match": "(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))"
1321
+ },
1322
+ "strictsum": {
1323
+ "name": "keyword.aggregate.strictsum.ql",
1324
+ "match": "(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))"
1325
+ },
1326
+ "string": {
1327
+ "name": "keyword.type.string.ql",
1328
+ "match": "(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))"
1329
+ },
1330
+ "string-escape": {
1331
+ "name": "constant.character.escape.ql",
1332
+ "match": "(?x)\\\\[\"\\\\nrt]"
1333
+ },
1334
+ "string-literal": {
1335
+ "name": "string.quoted.double.ql",
1336
+ "begin": "(?x)\"",
1337
+ "end": "(?x)(\") | ((?:[^\\\\\\n])$)",
1338
+ "patterns": [
1339
+ {
1340
+ "include": "#string-escape"
1341
+ }
1342
+ ],
1343
+ "beginCaptures": {
1344
+ "0": {
1345
+ "name": "punctuation.definition.string.begin.ql"
1346
+ }
1347
+ },
1348
+ "endCaptures": {
1349
+ "1": {
1350
+ "name": "punctuation.definition.string.end.ql"
1351
+ },
1352
+ "2": {
1353
+ "name": "invalid.illegal.newline.ql"
1354
+ }
1355
+ }
1356
+ },
1357
+ "sum": {
1358
+ "name": "keyword.aggregate.sum.ql",
1359
+ "match": "(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))"
1360
+ },
1361
+ "super": {
1362
+ "name": "variable.language.super.ql",
1363
+ "match": "(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))"
1364
+ },
1365
+ "then": {
1366
+ "name": "keyword.other.then.ql",
1367
+ "match": "(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))"
1368
+ },
1369
+ "this": {
1370
+ "name": "variable.language.this.ql",
1371
+ "match": "(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))"
1372
+ },
1373
+ "transient": {
1374
+ "name": "storage.modifier.transient.ql",
1375
+ "match": "(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))"
1376
+ },
1377
+ "true": {
1378
+ "name": "constant.language.boolean.true.ql",
1379
+ "match": "(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))"
1380
+ },
1381
+ "upper-id": {
1382
+ "match": "(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
1383
+ },
1384
+ "where": {
1385
+ "name": "keyword.query.where.ql",
1386
+ "match": "(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))"
1387
+ },
1388
+ "where-section": {
1389
+ "name": "meta.block.where-section.ql",
1390
+ "begin": "(?x)((?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))",
1391
+ "end": "(?x)(?=(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1392
+ "patterns": [
1393
+ {
1394
+ "include": "#predicate-body-contents"
1395
+ }
1396
+ ],
1397
+ "beginCaptures": {
1398
+ "1": {
1399
+ "patterns": [
1400
+ {
1401
+ "include": "#where"
1402
+ }
1403
+ ]
1404
+ }
1405
+ }
1406
+ }
1407
+ }
1408
+ }