tm-grammars 1.31.0 → 1.31.2

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.
package/NOTICE CHANGED
@@ -3209,7 +3209,7 @@ SPDX: Apache-2.0
3209
3209
  limitations under the License.
3210
3210
 
3211
3211
  =========================================================================================================
3212
- Files: es-tag-css.json, es-tag-glsl.json, es-tag-html.json, es-tag-sql.json, es-tag-xml.json
3212
+ Files: es-tag-css.json, es-tag-glsl.json, es-tag-html.json, es-tag-xml.json
3213
3213
  License: https://raw.githubusercontent.com/0x00000001A/es6-string-html/master/LICENSE
3214
3214
  SPDX: MIT
3215
3215
  ---------------------------------------------------------------------------------------------------------
@@ -3235,6 +3235,33 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3235
3235
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3236
3236
  SOFTWARE.
3237
3237
 
3238
+ =========================================================================================================
3239
+ Files: es-tag-sql.json
3240
+ License: https://raw.githubusercontent.com/frigus02/vscode-sql-tagged-template-literals/main/LICENSE
3241
+ SPDX: MIT
3242
+ ---------------------------------------------------------------------------------------------------------
3243
+ The MIT License (MIT)
3244
+
3245
+ Copyright (c) 2019 Jan Kühle
3246
+
3247
+ Permission is hereby granted, free of charge, to any person obtaining a copy
3248
+ of this software and associated documentation files (the "Software"), to deal
3249
+ in the Software without restriction, including without limitation the rights
3250
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3251
+ copies of the Software, and to permit persons to whom the Software is
3252
+ furnished to do so, subject to the following conditions:
3253
+
3254
+ The above copyright notice and this permission notice shall be included in
3255
+ all copies or substantial portions of the Software.
3256
+
3257
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3258
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3259
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
3260
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3261
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3262
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
3263
+ THE SOFTWARE.
3264
+
3238
3265
  =========================================================================================================
3239
3266
  Files: fennel.json
3240
3267
  License: https://raw.githubusercontent.com/kongeor/vsc-fennel/master/LICENSE
package/README.md CHANGED
@@ -40,7 +40,7 @@ import { grammars } from 'tm-grammars'
40
40
  | `berry` | `be` | [berry-lang/berry](https://github.com/berry-lang/berry/blob/74611286b8d2d2c2ee16ea187029f2a9c4257f5f/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json) | [MIT](https://raw.githubusercontent.com/berry-lang/berry/master/LICENSE) | | | 2.63 kB |
41
41
  | `bibtex` | | [microsoft/vscode](https://github.com/microsoft/vscode/blob/9a2c94d213696a4453b6d9988b003d98e7646e75/extensions/latex/syntaxes/Bibtex.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/microsoft/vscode/main/LICENSE.txt) | | | 4.51 kB |
42
42
  | `bicep` | | [Azure/bicep](https://github.com/Azure/bicep/blob/6252abb94141fc6e774a53652404be30f1cb9000/src/textmate/bicep.tmlanguage) | [MIT](https://raw.githubusercontent.com/Azure/bicep/main/LICENSE) | | | 4.92 kB |
43
- | `bird2` | `bird` | [bird-chinese-community/BIRD-tm-language-grammar](https://github.com/bird-chinese-community/BIRD-tm-language-grammar/blob/2e82aed3f306941105072adf685a91d75bca0bf6/grammars/bird2.tmLanguage.json) | [MPL-2.0](https://raw.githubusercontent.com/bird-chinese-community/BIRD-tm-language-grammar/main/LICENSE) | | | 16.08 kB |
43
+ | `bird2` | `bird` | [bird-chinese-community/BIRD-tm-language-grammar](https://github.com/bird-chinese-community/BIRD-tm-language-grammar/blob/efd72e31c81f0fedafbb32eed36f4df0eff524f6/grammars/bird2.tmLanguage.json) | [MPL-2.0](https://raw.githubusercontent.com/bird-chinese-community/BIRD-tm-language-grammar/main/LICENSE) | | | 18.70 kB |
44
44
  | `blade` | | [laravel/vs-code-extension](https://github.com/laravel/vs-code-extension/blob/80726f64975dc935d6b925d8230cdc1ea075802a/syntaxes/blade.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/laravel/vs-code-extension/main/LICENSE.md) | | `html-derivative` `html` `xml` `sql` `javascript` `json` `css` | 100.00 kB |
45
45
  | `bsl` | `1c` | [1c-syntax/vsc-language-1c-bsl](https://github.com/1c-syntax/vsc-language-1c-bsl/blob/2cde5a65a17b82b5363affadf5a620ebb0a026dc/syntaxes/1c.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/1c-syntax/vsc-language-1c-bsl/refs/heads/master/LICENSE.md) | | `sdbl` | 32.60 kB |
46
46
  | `c` | | [microsoft/vscode](https://github.com/microsoft/vscode/blob/bd1abe08c38bb5deccf65610f8f3c03d2338d20d/extensions/cpp/syntaxes/c.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/microsoft/vscode/main/LICENSE.txt) | | | 67.93 kB |
@@ -50,7 +50,7 @@ import { grammars } from 'tm-grammars'
50
50
  | `clarity` | | [hirosystems/clarity.tmbundle](https://github.com/hirosystems/clarity.tmbundle/blob/a187c9ccbbfeb91550f138c8d606888a902b7c98/Syntaxes/clarity.JSON-tmLanguage) | [MIT](https://raw.githubusercontent.com/stx-labs/clarity.tmbundle/main/LICENSE) | | | 13.47 kB |
51
51
  | `clojure` | `clj` | [microsoft/vscode](https://github.com/microsoft/vscode/blob/a1a4c0a63b1ad59e84f54b874744fe35dea9abe1/extensions/clojure/syntaxes/clojure.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/microsoft/vscode/main/LICENSE.txt) | | | 6.02 kB |
52
52
  | `cmake` | | [twxs/vs.language.cmake](https://github.com/twxs/vs.language.cmake/blob/19b1b8fe2d68d72cf294d0c3c22f0a3fc54f8f6f/syntaxes/CMake.tmLanguage) | [MIT](https://raw.githubusercontent.com/twxs/vs.language.cmake/master/LICENSE) | | | 9.38 kB |
53
- | `cobol` | | [spgennard/vscode_cobol](https://github.com/spgennard/vscode_cobol/blob/28a53ee742017ec60055f2aaaf174aaf62e83c45/syntaxes/COBOL.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/spgennard/vscode_cobol/main/LICENSE) | | `html` `java` | 37.32 kB |
53
+ | `cobol` | | [spgennard/vscode_cobol](https://github.com/spgennard/vscode_cobol/blob/7020540cc77e04fb2edc8503f906d51fa840bbe5/syntaxes/COBOL.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/spgennard/vscode_cobol/main/LICENSE) | | `html` `java` | 37.30 kB |
54
54
  | `codeowners` | | [jasonnutter/vscode-codeowners](https://github.com/jasonnutter/vscode-codeowners/blob/219dee0ab25c1bfad0b9de84180117e71221a653/syntaxes/codeowners.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/jasonnutter/vscode-codeowners/master/LICENSE.txt) | | | 471.00 B |
55
55
  | `codeql` | `ql` | [github/vscode-codeql](https://github.com/github/vscode-codeql/blob/a6266bbcc88702619ceb580253a65e8f83333c1b/syntaxes/ql.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/github/vscode-codeql/main/LICENSE.md) | | | 25.78 kB |
56
56
  | `coffee` | `coffeescript` | [microsoft/vscode](https://github.com/microsoft/vscode/blob/ff58f5083f57b50e6a100ab60454dfb72fe21e80/extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/microsoft/vscode/main/LICENSE.txt) | | `javascript` | 25.88 kB |
@@ -272,7 +272,7 @@ Injections are grammars that are embedded in other grammars. They are used to ag
272
272
  | `es-tag-css` | | [0x00000001A/es6-string-html](https://github.com/0x00000001A/es6-string-html/blob/b8f51210b53ce64e789949d4be33b7ecb42cf177/syntaxes/es6-inline-css.json) | [MIT](https://raw.githubusercontent.com/0x00000001A/es6-string-html/master/LICENSE) | [Buy Me A Coffee: **nonholy**](https://www.buymeacoffee.com/nonholy) | `typescript` `css` `javascript` | 1.65 kB |
273
273
  | `es-tag-glsl` | | [0x00000001A/es6-string-html](https://github.com/0x00000001A/es6-string-html/blob/b8f51210b53ce64e789949d4be33b7ecb42cf177/syntaxes/es6-inline-glsl.json) | [MIT](https://raw.githubusercontent.com/0x00000001A/es6-string-html/master/LICENSE) | [Buy Me A Coffee: **nonholy**](https://www.buymeacoffee.com/nonholy) | `typescript` `glsl` `javascript` | 1.53 kB |
274
274
  | `es-tag-html` | | [0x00000001A/es6-string-html](https://github.com/0x00000001A/es6-string-html/blob/b8f51210b53ce64e789949d4be33b7ecb42cf177/syntaxes/es6-inline-html.json) | [MIT](https://raw.githubusercontent.com/0x00000001A/es6-string-html/master/LICENSE) | [Buy Me A Coffee: **nonholy**](https://www.buymeacoffee.com/nonholy) | `typescript` `html` `javascript` | 1.83 kB |
275
- | `es-tag-sql` | | [0x00000001A/es6-string-html](https://github.com/0x00000001A/es6-string-html/blob/b8f51210b53ce64e789949d4be33b7ecb42cf177/syntaxes/es6-inline-sql.json) | [MIT](https://raw.githubusercontent.com/0x00000001A/es6-string-html/master/LICENSE) | [Buy Me A Coffee: **nonholy**](https://www.buymeacoffee.com/nonholy) | `typescript` `sql` | 1.45 kB |
275
+ | `es-tag-sql` | | [frigus02/vscode-sql-tagged-template-literals](https://github.com/frigus02/vscode-sql-tagged-template-literals/blob/80e8ddcb034a3bc66382789d2ca251d0266a9f56/extension-syntax-only/syntaxes/grammar.json) | [MIT](https://raw.githubusercontent.com/frigus02/vscode-sql-tagged-template-literals/main/LICENSE) | | `typescript` `sql` | 7.86 kB |
276
276
  | `es-tag-xml` | | [0x00000001A/es6-string-html](https://github.com/0x00000001A/es6-string-html/blob/b8f51210b53ce64e789949d4be33b7ecb42cf177/syntaxes/es6-inline-xml.json) | [MIT](https://raw.githubusercontent.com/0x00000001A/es6-string-html/master/LICENSE) | [Buy Me A Coffee: **nonholy**](https://www.buymeacoffee.com/nonholy) | `xml` | 1.04 kB |
277
277
  | `jinja-html` | | [samuelcolvin/jinjahtml-vscode](https://github.com/samuelcolvin/jinjahtml-vscode/blob/64ad369cd167bba2e614944db6d925b7dc6483b4/syntaxes/jinja-html.tmLanguage.json) | [MIT](https://raw.githubusercontent.com/samuelcolvin/jinjahtml-vscode/main/LICENSE) | [GitHub Sponsors: **@samuelcolvin**](https://github.com/sponsors/samuelcolvin) | `html` | 465.00 B |
278
278
  | `markdown-nix` | | [nix-community/vscode-nix-ide](https://github.com/nix-community/vscode-nix-ide/blob/e2aff510787a01beb97c6227adbb96e38a60fac4/dist/injection.json) | [MIT](https://raw.githubusercontent.com/nix-community/vscode-nix-ide/main/LICENSE) | [GitHub Sponsors: **@nix-community**](https://github.com/sponsors/nix-community) [Open Collective: **nix-community**](https://opencollective.com/nix-community) | | 762.00 B |
@@ -20,10 +20,10 @@
20
20
  "include": "#strings"
21
21
  },
22
22
  {
23
- "include": "#numbers"
23
+ "include": "#ip-addresses"
24
24
  },
25
25
  {
26
- "include": "#ip-addresses"
26
+ "include": "#prefixes"
27
27
  },
28
28
  {
29
29
  "include": "#vpn-rd"
@@ -35,7 +35,7 @@
35
35
  "include": "#bgp-paths"
36
36
  },
37
37
  {
38
- "include": "#prefixes"
38
+ "include": "#print-statements"
39
39
  },
40
40
  {
41
41
  "include": "#template-definitions"
@@ -59,16 +59,13 @@
59
59
  "include": "#import-export-statements"
60
60
  },
61
61
  {
62
- "include": "#structural-keywords"
63
- },
64
- {
65
- "include": "#functional-keywords"
62
+ "include": "#variable-declarations"
66
63
  },
67
64
  {
68
- "include": "#semantic-modifiers"
65
+ "include": "#method-calls"
69
66
  },
70
67
  {
71
- "include": "#builtin-functions"
68
+ "include": "#function-calls"
72
69
  },
73
70
  {
74
71
  "include": "#method-properties"
@@ -80,34 +77,40 @@
80
77
  "include": "#data-types"
81
78
  },
82
79
  {
83
- "include": "#operators"
80
+ "include": "#constants"
84
81
  },
85
82
  {
86
- "include": "#constants"
83
+ "include": "#structural-keywords"
87
84
  },
88
85
  {
89
- "include": "#filter-names"
86
+ "include": "#protocol-phrases"
90
87
  },
91
88
  {
92
- "include": "#user-variables"
89
+ "include": "#functional-keywords"
93
90
  },
94
91
  {
95
- "include": "#function-calls"
92
+ "include": "#semantic-modifiers"
96
93
  },
97
94
  {
98
- "include": "#method-calls"
95
+ "include": "#builtin-functions"
99
96
  },
100
97
  {
101
- "include": "#variable-declarations"
98
+ "include": "#filter-names"
102
99
  },
103
100
  {
104
- "include": "#symbols"
101
+ "include": "#user-variables"
105
102
  },
106
103
  {
107
- "include": "#blocks"
104
+ "include": "#operators"
108
105
  },
109
106
  {
110
- "include": "#print-statements"
107
+ "include": "#numbers"
108
+ },
109
+ {
110
+ "include": "#symbols"
111
+ },
112
+ {
113
+ "include": "#blocks"
111
114
  }
112
115
  ],
113
116
  "repository": {
@@ -137,7 +140,10 @@
137
140
  "name": "constant.numeric.asn.bird"
138
141
  },
139
142
  {
140
- "include": "#numbers"
143
+ "include": "#operators"
144
+ },
145
+ {
146
+ "include": "#symbols"
141
147
  }
142
148
  ]
143
149
  }
@@ -218,7 +224,7 @@
218
224
  "builtin-functions": {
219
225
  "patterns": [
220
226
  {
221
- "match": "\\b(?:defined|unset|printn??|roa_check|aspa_check|aspa_check_downstream|aspa_check_upstream|from_hex|format|prepend|add|delete|filter|empty|reset|bt_assert|bt_test_suite|bt_test_same)\\b",
227
+ "match": "\\b(?:defined|unset|roa_check|aspa_check|aspa_check_downstream|aspa_check_upstream|from_hex|format|append|prepend|add|delete|empty|reset|bt_assert|bt_test_suite|bt_test_same)\\b",
222
228
  "name": "support.function.builtin.bird"
223
229
  }
224
230
  ]
@@ -226,7 +232,11 @@
226
232
  "bytestrings": {
227
233
  "patterns": [
228
234
  {
229
- "match": "\\b(?:hex:)?(?:\\h{2}[-.:\\s]*){2,}\\h{2}\\b",
235
+ "match": "\\bhex:\\h{2}(?:[-.:\\s]*\\h{2})*\\b",
236
+ "name": "constant.numeric.bytestring.bird"
237
+ },
238
+ {
239
+ "match": "\\b(?:\\h{2}[-.:\\s]*){15,}\\h{2}\\b",
230
240
  "name": "constant.numeric.bytestring.bird"
231
241
  },
232
242
  {
@@ -307,7 +317,7 @@
307
317
  "data-types": {
308
318
  "patterns": [
309
319
  {
310
- "match": "\\b(?:int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\\b",
320
+ "match": "\\b(?:(?:int|pair|quad|ip|prefix|ec|lc|rd|enum)\\s+set|int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\\b",
311
321
  "name": "storage.type.bird"
312
322
  }
313
323
  ]
@@ -315,7 +325,7 @@
315
325
  "filter-definitions": {
316
326
  "patterns": [
317
327
  {
318
- "begin": "\\b(filter)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s*\\{",
328
+ "begin": "\\b(filter)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\s*\\{",
319
329
  "beginCaptures": {
320
330
  "1": {
321
331
  "name": "keyword.control.filter.bird"
@@ -369,7 +379,7 @@
369
379
  "function-definitions": {
370
380
  "patterns": [
371
381
  {
372
- "begin": "\\b(function)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s*\\(",
382
+ "begin": "\\b(function)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')(?=\\s*\\()",
373
383
  "beginCaptures": {
374
384
  "1": {
375
385
  "name": "keyword.control.function.bird"
@@ -387,8 +397,18 @@
387
397
  "name": "meta.function-definition.bird",
388
398
  "patterns": [
389
399
  {
390
- "begin": "\\G(?=\\()",
400
+ "begin": "\\(",
401
+ "beginCaptures": {
402
+ "0": {
403
+ "name": "punctuation.definition.parameters.begin.bird"
404
+ }
405
+ },
391
406
  "end": "\\)",
407
+ "endCaptures": {
408
+ "0": {
409
+ "name": "punctuation.definition.parameters.end.bird"
410
+ }
411
+ },
392
412
  "name": "meta.function-parameters.bird",
393
413
  "patterns": [
394
414
  {
@@ -424,7 +444,7 @@
424
444
  "functional-keywords": {
425
445
  "patterns": [
426
446
  {
427
- "match": "\\b(?:static|rip|ospf|bgp|babel|rpki|bfd|device|direct|kernel|pipe|perf|mrt|aggregator|l3vpn|radv)\\b",
447
+ "match": "\\b(?:static|rip|ospf|bgp|babel|rpki|bfd|bmp|device|direct|kernel|pipe|perf|mrt|aggregator|l3vpn|radv)\\b",
428
448
  "name": "keyword.control.protocol-type.bird"
429
449
  },
430
450
  {
@@ -435,6 +455,10 @@
435
455
  "match": "\\b(?:interface|type|wired|wireless|tunnel|rxcost|limit|hello|update|interval|port|tx|class|dscp|priority|rx|buffer|length|check|link|rtt|cost|min|max|decay|send|timestamps)\\b",
436
456
  "name": "keyword.other.interface.bird"
437
457
  },
458
+ {
459
+ "match": "\\b(?:(?:refresh|retry|expire|transport|ssh|tcp|user|address|version|ignore|private|public|key)|(?:local\\s+address|ignore\\s+max\\s+length|min\\s+version|max\\s+version|bird\\s+private\\s+key|remote\\s+public\\s+key))\\b",
460
+ "name": "keyword.other.rpki.bird"
461
+ },
438
462
  {
439
463
  "match": "\\b(?:authentication|none|mac|permissive|password|generate|accept|from|to|algorithm|hmac|sha1|sha256|sha384|sha512|blake2s128|blake2s256|blake2b256|blake2b512)\\b",
440
464
  "name": "keyword.other.auth.bird"
@@ -452,7 +476,7 @@
452
476
  "name": "keyword.other.flowspec.bird"
453
477
  },
454
478
  {
455
- "match": "\\b(?:vpn|mpls|aspa|roa6??)\\b",
479
+ "match": "\\b(?:vpn4|vpn6|mpls|aspa|roa4|roa6)\\b",
456
480
  "name": "keyword.other.address.bird"
457
481
  },
458
482
  {
@@ -475,7 +499,7 @@
475
499
  "name": "entity.name.function.filter.bird"
476
500
  }
477
501
  },
478
- "match": "\\b(import)\\s+(filter)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\b",
502
+ "match": "\\b(import)\\s+(filter)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\b",
479
503
  "name": "meta.import-statement.bird"
480
504
  },
481
505
  {
@@ -536,7 +560,7 @@
536
560
  "name": "entity.name.function.filter.bird"
537
561
  }
538
562
  },
539
- "match": "\\b(export)\\s+(filter)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\b",
563
+ "match": "\\b(export)\\s+(filter)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\b",
540
564
  "name": "meta.export-statement.bird"
541
565
  }
542
566
  ]
@@ -556,7 +580,7 @@
556
580
  "name": "constant.numeric.ip.ipv6.bird"
557
581
  },
558
582
  {
559
- "match": "(?:\\h{0,4}:){1,6}::(?:\\h{0,4}:){0,5}\\h{0,4}(?:/[0-9]{1,3})?\\b",
583
+ "match": "\\b(?:\\h{0,4}:){1,6}::(?:\\h{0,4}:){0,5}\\h{0,4}(?:/[0-9]{1,3})?\\b",
560
584
  "name": "constant.numeric.ip.ipv6.bird"
561
585
  }
562
586
  ]
@@ -592,7 +616,7 @@
592
616
  "method-properties": {
593
617
  "patterns": [
594
618
  {
595
- "match": "\\b(?:first|last|last_nonaggregated|len|asn|data1??|data2|is_v4|ip|src|dst|rd|maxlen|type|mask|min|max)\\b",
619
+ "match": "(?<=\\.)\\s*(?:first|last|last_nonaggregated|len|asn|data1??|data2|is_v4|ip|src|dst|rd|maxlen|type|mask|min|max)\\b(?!\\s*\\()",
596
620
  "name": "support.variable.property.bird"
597
621
  }
598
622
  ]
@@ -719,13 +743,17 @@
719
743
  "operators": {
720
744
  "patterns": [
721
745
  {
722
- "match": "==|!=|<=|>=|[<=>~]|!~",
746
+ "match": "==|!=|<=|>=|!~|[<=>~]",
723
747
  "name": "keyword.operator.comparison.bird"
724
748
  },
725
749
  {
726
750
  "match": "&&|\\|\\||!|->",
727
751
  "name": "keyword.operator.logical.bird"
728
752
  },
753
+ {
754
+ "match": "\\+\\+",
755
+ "name": "keyword.operator.concat.bird"
756
+ },
729
757
  {
730
758
  "match": "[-%*+/]",
731
759
  "name": "keyword.operator.arithmetic.bird"
@@ -734,10 +762,6 @@
734
762
  "match": "\\.\\.",
735
763
  "name": "keyword.operator.range.bird"
736
764
  },
737
- {
738
- "match": "=",
739
- "name": "keyword.operator.assignment.bird"
740
- },
741
765
  {
742
766
  "match": "\\.",
743
767
  "name": "keyword.operator.accessor.bird"
@@ -779,7 +803,7 @@
779
803
  "protocol-definitions": {
780
804
  "patterns": [
781
805
  {
782
- "begin": "\\b(protocol)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+(from)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s*\\{",
806
+ "begin": "\\b(protocol)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\s+(from)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\s*\\{",
783
807
  "beginCaptures": {
784
808
  "1": {
785
809
  "name": "keyword.control.protocol.bird"
@@ -811,7 +835,7 @@
811
835
  ]
812
836
  },
813
837
  {
814
- "begin": "\\b(protocol)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s*\\{",
838
+ "begin": "\\b(protocol)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\s*\\{",
815
839
  "beginCaptures": {
816
840
  "1": {
817
841
  "name": "keyword.control.protocol.bird"
@@ -861,6 +885,22 @@
861
885
  }
862
886
  ]
863
887
  },
888
+ "protocol-phrases": {
889
+ "patterns": [
890
+ {
891
+ "match": "\\b(?:strict\\s+bind|zero\\s+udp6\\s+checksum\\s+rx|idle\\s+tx\\s+interval|multiplier|keyed|meticulous)\\b",
892
+ "name": "keyword.other.bfd.phrase.bird"
893
+ },
894
+ {
895
+ "match": "\\b(?:send\\s+timestamps|rtt\\s+(?:cost|min|max|decay)|next\\s+hop\\s+prefer|prefer|native)\\b",
896
+ "name": "keyword.other.babel.phrase.bird"
897
+ },
898
+ {
899
+ "match": "\\b(?:next\\s+hop\\s+(?:self|address|ibgp|ebgp)|link\\s+local\\s+next\\s+hop\\s+format|import\\s+table|export\\s+table|base\\s+table|add\\s+paths|aigp\\s+originate|long\\s+lived\\s+graceful\\s+restart|long\\s+lived\\s+stale\\s+time|dynamic\\s+name(?:\\s+digits)?|free\\s+bind|ttl\\s+security|multihop\\s+password|rr\\s+client|rs\\s+client|advertise\\s+hostname|interpret\\s+communities|deterministic\\s+med|default\\s+bgp_local_pref|default\\s+bgp_med|med\\s+metric|igp\\s+metric|missing\\s+lladdr|gateway\\s+address|forwarding\\s+addressed|gateway\\s+recursive|allow\\s+local\\s+as|allow\\s+bogus\\s+as|originate\\s+community|full\\s+route\\s+table|capabilities|primary)\\b",
900
+ "name": "keyword.other.bgp.phrase.bird"
901
+ }
902
+ ]
903
+ },
864
904
  "route-attributes": {
865
905
  "patterns": [
866
906
  {
@@ -901,19 +941,8 @@
901
941
  ]
902
942
  },
903
943
  {
904
- "begin": "'",
905
- "beginCaptures": {
906
- "0": {
907
- "name": "punctuation.definition.string.begin.bird"
908
- }
909
- },
910
- "end": "'",
911
- "endCaptures": {
912
- "0": {
913
- "name": "punctuation.definition.string.end.bird"
914
- }
915
- },
916
- "name": "string.quoted.single.bird"
944
+ "match": "'[-.0-:A-Z_a-z]+'",
945
+ "name": "entity.name.symbol.quoted.bird"
917
946
  }
918
947
  ]
919
948
  },
@@ -948,7 +977,39 @@
948
977
  "template-definitions": {
949
978
  "patterns": [
950
979
  {
951
- "begin": "\\b(template)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s*\\{",
980
+ "begin": "\\b(template)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\s+(from)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\s*\\{",
981
+ "beginCaptures": {
982
+ "1": {
983
+ "name": "keyword.control.template.bird"
984
+ },
985
+ "2": {
986
+ "name": "entity.name.type.protocol.bird"
987
+ },
988
+ "3": {
989
+ "name": "entity.name.function.template.bird"
990
+ },
991
+ "4": {
992
+ "name": "keyword.control.template-reference.bird"
993
+ },
994
+ "5": {
995
+ "name": "entity.name.function.template.bird"
996
+ }
997
+ },
998
+ "end": "}",
999
+ "endCaptures": {
1000
+ "0": {
1001
+ "name": "punctuation.definition.block.end.bird"
1002
+ }
1003
+ },
1004
+ "name": "meta.template-definition-with-from.bird",
1005
+ "patterns": [
1006
+ {
1007
+ "include": "$self"
1008
+ }
1009
+ ]
1010
+ },
1011
+ {
1012
+ "begin": "\\b(template)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s+([A-Z_a-z][0-9A-Z_a-z]*|'[-.0-:A-Z_a-z]+')\\s*\\{",
952
1013
  "beginCaptures": {
953
1014
  "1": {
954
1015
  "name": "keyword.control.template.bird"
@@ -966,7 +1027,30 @@
966
1027
  "name": "punctuation.definition.block.end.bird"
967
1028
  }
968
1029
  },
969
- "name": "meta.template-definition.bird",
1030
+ "name": "meta.template-definition-with-name.bird",
1031
+ "patterns": [
1032
+ {
1033
+ "include": "$self"
1034
+ }
1035
+ ]
1036
+ },
1037
+ {
1038
+ "begin": "\\b(template)\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\s*\\{",
1039
+ "beginCaptures": {
1040
+ "1": {
1041
+ "name": "keyword.control.template.bird"
1042
+ },
1043
+ "2": {
1044
+ "name": "entity.name.type.protocol.bird"
1045
+ }
1046
+ },
1047
+ "end": "}",
1048
+ "endCaptures": {
1049
+ "0": {
1050
+ "name": "punctuation.definition.block.end.bird"
1051
+ }
1052
+ },
1053
+ "name": "meta.template-definition-anonymous.bird",
970
1054
  "patterns": [
971
1055
  {
972
1056
  "include": "$self"
@@ -994,7 +1078,7 @@
994
1078
  "name": "variable.other.declaration.bird"
995
1079
  }
996
1080
  },
997
- "match": "\\b(int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\\s+([A-Z_a-z][0-9A-Z_a-z]*)(?:\\s*=|;)",
1081
+ "match": "\\b((?:int|pair|quad|ip|prefix|ec|lc|rd|enum)\\s+set|int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\\s+([A-Z_a-z][0-9A-Z_a-z]*)(?:\\s*=|;)",
998
1082
  "name": "meta.variable-declaration.bird"
999
1083
  }
1000
1084
  ]
@@ -5,7 +5,6 @@
5
5
  "scbl",
6
6
  "cobol",
7
7
  "cbl",
8
- "cblle",
9
8
  "cblsrce",
10
9
  "cblcpy",
11
10
  "lks",
@@ -17,7 +16,6 @@
17
16
  "sel",
18
17
  "scb",
19
18
  "scbl",
20
- "sqlcblle",
21
19
  "cob",
22
20
  "dds",
23
21
  "def",
@@ -1,97 +1,145 @@
1
1
  {
2
- "fileTypes": [
3
- "js",
4
- "jsx",
5
- "ts",
6
- "tsx",
7
- "html",
8
- "vue",
9
- "svelte",
10
- "php",
11
- "res"
12
- ],
13
2
  "injectTo": [
14
3
  "source.ts",
15
4
  "source.js"
16
5
  ],
17
- "injectionSelector": "L:source.js -comment -string, L:source.jsx -comment -string, L:source.js.jsx -comment -string, L:source.ts -comment -string, L:source.tsx -comment -string, L:source.rescript -comment -string",
18
- "injections": {
19
- "L:source": {
20
- "patterns": [
21
- {
22
- "match": "<",
23
- "name": "invalid.illegal.bad-angle-bracket.html"
24
- }
25
- ]
26
- }
27
- },
6
+ "injectionSelector": "L:source -comment -string",
28
7
  "name": "es-tag-sql",
29
8
  "patterns": [
30
9
  {
31
- "begin": "(?i)\\b(\\w+\\.sql)\\s*(`)",
10
+ "__COMMENT__": "Literals tagged with an sql function (including optional accessors and types), e.g. sql<User>('user-by-id')`SELECT ...`",
11
+ "begin": "(?:([$_[:alpha:]][$_[:alnum:]]*)(?:\\s*(\\??\\.)\\s*(#?[$_[:alpha:]][$_[:alnum:]]*))*\\s*(\\??\\.))?\\s*(#?(?i)sql|sqlFragment(?-i))\\s*(?=(?:(\\?\\.\\s*)|(!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\s*)?\\())",
32
12
  "beginCaptures": {
33
13
  "1": {
34
- "name": "variable.parameter"
14
+ "name": "meta.function-call.ts variable.other.object.ts"
15
+ },
16
+ "2": {
17
+ "name": "meta.function-call.ts punctuation.accessor.optional.ts"
18
+ },
19
+ "3": {
20
+ "name": "meta.function-call.ts variable.other.object.ts"
21
+ },
22
+ "4": {
23
+ "name": "meta.function-call.ts punctuation.accessor.optional.ts"
24
+ },
25
+ "5": {
26
+ "name": "meta.function-call.ts entity.name.function.ts"
35
27
  }
36
28
  },
37
- "end": "(`)",
29
+ "end": "(?<=(`|\\)\\s*[^`\\s]))",
38
30
  "patterns": [
39
31
  {
40
- "include": "source.ts#template-substitution-element"
32
+ "include": "source.ts#comment"
41
33
  },
42
34
  {
43
- "include": "source.ts#string-character-escape"
35
+ "include": "source.ts#function-call-optionals"
44
36
  },
45
37
  {
46
- "include": "source.sql"
38
+ "include": "source.ts#type-arguments"
47
39
  },
48
40
  {
49
- "include": "source.plpgsql.postgres"
41
+ "include": "source.ts#paren-expression"
50
42
  },
51
43
  {
52
- "match": "."
44
+ "include": "#embedded-sql"
53
45
  }
54
46
  ]
55
47
  },
56
48
  {
57
- "begin": "(?i)(\\s?/?\\*?\\s?((?:|inline-)sql)\\s?\\*?/?\\s?)(`)",
49
+ "__COMMENT__": "Literals tagged with an sql comment, e.g. /*sql*/`SELECT ...`",
50
+ "begin": "(/\\*\\s*(?i)sql(?-i)\\s*\\*/)\\s*(?=`)",
58
51
  "beginCaptures": {
59
52
  "1": {
60
- "name": "comment.block"
53
+ "name": "comment.block.ts"
61
54
  }
62
55
  },
63
- "end": "(`)",
56
+ "end": "(?<=`)",
64
57
  "patterns": [
65
58
  {
66
- "include": "source.ts#template-substitution-element"
67
- },
59
+ "include": "#embedded-sql"
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "__COMMENT__": "Literals tagged with sql (including optional accessors and types), e.g. my.object?.sql<User>`SELECT ...`. This is based on the 1st #template-call pattern in TypeScript.tmLanguage.json",
65
+ "begin": "(?=(([$_[:alpha:]][$_[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)(#?(?i)sql|sqlFragment(?-i))(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\s*)?`)",
66
+ "end": "(?<=`)",
67
+ "name": "string.template.ts",
68
+ "patterns": [
68
69
  {
69
- "include": "source.ts#string-character-escape"
70
+ "begin": "(?=(([$_[:alpha:]][$_[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)(#?(?i)sql|sqlFragment(?-i)))",
71
+ "end": "(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\s*)?`)",
72
+ "patterns": [
73
+ {
74
+ "include": "source.ts#support-function-call-identifiers"
75
+ },
76
+ {
77
+ "match": "(#?(?i)sql|sqlFragment(?-i))",
78
+ "name": "entity.name.function.tagged-template.ts"
79
+ }
80
+ ]
70
81
  },
71
82
  {
72
- "include": "source.sql"
83
+ "include": "source.ts#type-arguments"
73
84
  },
74
85
  {
75
- "include": "source.plpgsql.postgres"
86
+ "include": "#embedded-sql"
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ "__COMMENT__": "Literals tagged with sql (including optional types), e.g. sql<User>`SELECT ...`. This is based on the 2nd #template-call pattern in TypeScript.tmLanguage.json",
92
+ "begin": "\\b((?i)sql|sqlFragment(?-i))\\s*(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>|<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\{([^{}]|(\\{([^{}]|\\{[^{}]*})*}))*})|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(\\[([^]\\[]|(\\[([^]\\[]|\\[[^]\\[]*])*]))*])|('([^'\\\\]|\\\\.)*')|(\"([^\"\\\\]|\\\\.)*\")|(`([^\\\\`]|\\\\.)*`))(?=\\s*([,.<>\\[]|=>|&(?!&)|\\|(?!\\|)))))([^(<>]|(\\(([^()]|(\\(([^()]|\\([^()]*\\))*\\)))*\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\s*)`)",
93
+ "beginCaptures": {
94
+ "1": {
95
+ "name": "entity.name.function.tagged-template.ts"
96
+ }
97
+ },
98
+ "end": "(?<=`)",
99
+ "name": "string.template.ts",
100
+ "patterns": [
101
+ {
102
+ "include": "source.ts#type-arguments"
76
103
  },
77
104
  {
78
- "match": "."
105
+ "include": "#embedded-sql"
79
106
  }
80
107
  ]
81
108
  },
82
109
  {
83
- "begin": "(?i)(?<=[(,:=\\s]|\\$\\()\\s*(((/\\*)|(//))\\s?((?:|inline-)sql) {0,1000}\\*?/?) {0,1000}$",
110
+ "__COMMENT__": "Literals tagged with sql, e.g. sql`SELECT ...`. This is based on the 2nd #template pattern in TypeScript.tmLanguage.json",
111
+ "begin": "\\b((?i)sql|sqlFragment(?-i))\\s*(?=`)",
84
112
  "beginCaptures": {
85
113
  "1": {
86
- "name": "comment.line"
114
+ "name": "entity.name.function.tagged-template.ts"
87
115
  }
88
116
  },
89
- "end": "(`)",
117
+ "end": "(?<=`)",
118
+ "name": "string.template.ts",
90
119
  "patterns": [
91
120
  {
92
- "begin": "\\G()",
93
- "end": "(`)"
94
- },
121
+ "include": "#embedded-sql"
122
+ }
123
+ ]
124
+ }
125
+ ],
126
+ "repository": {
127
+ "embedded-sql": {
128
+ "begin": "`",
129
+ "beginCaptures": {
130
+ "0": {
131
+ "name": "punctuation.definition.string.template.begin.js"
132
+ }
133
+ },
134
+ "contentName": "meta.embedded.block.sql",
135
+ "end": "`",
136
+ "endCaptures": {
137
+ "0": {
138
+ "name": "punctuation.definition.string.template.end.js"
139
+ }
140
+ },
141
+ "name": "string.template.ts",
142
+ "patterns": [
95
143
  {
96
144
  "include": "source.ts#template-substitution-element"
97
145
  },
@@ -109,6 +157,6 @@
109
157
  }
110
158
  ]
111
159
  }
112
- ],
113
- "scopeName": "inline.es6-sql"
160
+ },
161
+ "scopeName": "inline.tagged-template-sql"
114
162
  }
package/index.js CHANGED
@@ -450,22 +450,22 @@ export const grammars = [
450
450
  aliases: [
451
451
  'bird',
452
452
  ],
453
- byteSize: 16465,
453
+ byteSize: 19153,
454
454
  categories: [
455
455
  'config',
456
456
  ],
457
457
  displayName: 'BIRD2 Configuration',
458
458
  funding: [
459
459
  ],
460
- hash: 'aZeLWzKe0MfMsf4TugV0UubLbnVfmdqzqwjWy3i1kNg',
461
- lastUpdate: '2025-09-26T03:40:53Z',
460
+ hash: 'VpcN6rBjsbh4DfdqrSS2YDg0ubRt5lOPOaFnlqQ4hSg',
461
+ lastUpdate: '2026-02-28T19:04:32Z',
462
462
  license: 'MPL-2.0',
463
463
  licenseUrl: 'https://raw.githubusercontent.com/bird-chinese-community/BIRD-tm-language-grammar/main/LICENSE',
464
464
  name: 'bird2',
465
465
  scopeName: 'source.bird2',
466
- sha: '2e82aed3f306941105072adf685a91d75bca0bf6',
467
- source: 'https://github.com/bird-chinese-community/BIRD-tm-language-grammar/blob/2e82aed3f306941105072adf685a91d75bca0bf6/grammars/bird2.tmLanguage.json',
468
- sourceApi: 'https://api.github.com/repos/bird-chinese-community/BIRD-tm-language-grammar/contents/grammars/bird2.tmLanguage.json?ref=2e82aed3f306941105072adf685a91d75bca0bf6',
466
+ sha: 'efd72e31c81f0fedafbb32eed36f4df0eff524f6',
467
+ source: 'https://github.com/bird-chinese-community/BIRD-tm-language-grammar/blob/efd72e31c81f0fedafbb32eed36f4df0eff524f6/grammars/bird2.tmLanguage.json',
468
+ sourceApi: 'https://api.github.com/repos/bird-chinese-community/BIRD-tm-language-grammar/contents/grammars/bird2.tmLanguage.json?ref=efd72e31c81f0fedafbb32eed36f4df0eff524f6',
469
469
  },
470
470
  {
471
471
  byteSize: 102405,
@@ -654,7 +654,7 @@ export const grammars = [
654
654
  sourceApi: 'https://api.github.com/repos/twxs/vs.language.cmake/contents/syntaxes/CMake.tmLanguage?ref=19b1b8fe2d68d72cf294d0c3c22f0a3fc54f8f6f',
655
655
  },
656
656
  {
657
- byteSize: 38215,
657
+ byteSize: 38196,
658
658
  displayName: 'COBOL',
659
659
  embedded: [
660
660
  'html',
@@ -662,15 +662,15 @@ export const grammars = [
662
662
  ],
663
663
  funding: [
664
664
  ],
665
- hash: 'eWw0cwpULrxH1b6u9F-vrb5XaWbIVyEKZpovABNnAyw',
666
- lastUpdate: '2025-08-19T20:53:00Z',
665
+ hash: 'mDjJhsj2XiWtp1jA7C_DzZNi4Hy7Cc3USupqpk7GUNg',
666
+ lastUpdate: '2026-02-28T19:27:32Z',
667
667
  license: 'MIT',
668
668
  licenseUrl: 'https://raw.githubusercontent.com/spgennard/vscode_cobol/main/LICENSE',
669
669
  name: 'cobol',
670
670
  scopeName: 'source.cobol',
671
- sha: '28a53ee742017ec60055f2aaaf174aaf62e83c45',
672
- source: 'https://github.com/spgennard/vscode_cobol/blob/28a53ee742017ec60055f2aaaf174aaf62e83c45/syntaxes/COBOL.tmLanguage.json',
673
- sourceApi: 'https://api.github.com/repos/spgennard/vscode_cobol/contents/syntaxes/COBOL.tmLanguage.json?ref=28a53ee742017ec60055f2aaaf174aaf62e83c45',
671
+ sha: '7020540cc77e04fb2edc8503f906d51fa840bbe5',
672
+ source: 'https://github.com/spgennard/vscode_cobol/blob/7020540cc77e04fb2edc8503f906d51fa840bbe5/syntaxes/COBOL.tmLanguage.json',
673
+ sourceApi: 'https://api.github.com/repos/spgennard/vscode_cobol/contents/syntaxes/COBOL.tmLanguage.json?ref=7020540cc77e04fb2edc8503f906d51fa840bbe5',
674
674
  },
675
675
  {
676
676
  byteSize: 471,
@@ -5237,7 +5237,7 @@ export const injections = [
5237
5237
  sourceApi: 'https://api.github.com/repos/0x00000001A/es6-string-html/contents/syntaxes/es6-inline-html.json?ref=b8f51210b53ce64e789949d4be33b7ecb42cf177',
5238
5238
  },
5239
5239
  {
5240
- byteSize: 1483,
5240
+ byteSize: 8046,
5241
5241
  embedded: [
5242
5242
  'typescript',
5243
5243
  'sql',
@@ -5246,25 +5246,20 @@ export const injections = [
5246
5246
  'ts-tags',
5247
5247
  ],
5248
5248
  funding: [
5249
- {
5250
- handle: 'nonholy',
5251
- name: 'Buy Me A Coffee',
5252
- url: 'https://www.buymeacoffee.com/nonholy',
5253
- },
5254
5249
  ],
5255
- hash: '0nxyIHxbOwBjqkgBtKCL-xZPOJ9b-LNJTDdi7VEkB6w',
5250
+ hash: '2AGJ4IowJ_RdN6clwFAQCc7RJnAZdQLa2nleUqKl7BI',
5256
5251
  injectTo: [
5257
5252
  'source.ts',
5258
5253
  'source.js',
5259
5254
  ],
5260
- lastUpdate: '2024-05-10T19:00:53Z',
5255
+ lastUpdate: '2021-02-26T11:51:19Z',
5261
5256
  license: 'MIT',
5262
- licenseUrl: 'https://raw.githubusercontent.com/0x00000001A/es6-string-html/master/LICENSE',
5257
+ licenseUrl: 'https://raw.githubusercontent.com/frigus02/vscode-sql-tagged-template-literals/main/LICENSE',
5263
5258
  name: 'es-tag-sql',
5264
- scopeName: 'inline.es6-sql',
5265
- sha: 'b8f51210b53ce64e789949d4be33b7ecb42cf177',
5266
- source: 'https://github.com/0x00000001A/es6-string-html/blob/b8f51210b53ce64e789949d4be33b7ecb42cf177/syntaxes/es6-inline-sql.json',
5267
- sourceApi: 'https://api.github.com/repos/0x00000001A/es6-string-html/contents/syntaxes/es6-inline-sql.json?ref=b8f51210b53ce64e789949d4be33b7ecb42cf177',
5259
+ scopeName: 'inline.tagged-template-sql',
5260
+ sha: '80e8ddcb034a3bc66382789d2ca251d0266a9f56',
5261
+ source: 'https://github.com/frigus02/vscode-sql-tagged-template-literals/blob/80e8ddcb034a3bc66382789d2ca251d0266a9f56/extension-syntax-only/syntaxes/grammar.json',
5262
+ sourceApi: 'https://api.github.com/repos/frigus02/vscode-sql-tagged-template-literals/contents/extension-syntax-only/syntaxes/grammar.json?ref=80e8ddcb034a3bc66382789d2ca251d0266a9f56',
5268
5263
  },
5269
5264
  {
5270
5265
  byteSize: 1070,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tm-grammars",
3
3
  "type": "module",
4
- "version": "1.31.0",
4
+ "version": "1.31.2",
5
5
  "description": "Collecton of TextMate grammars in JSON",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",