github-linguist 7.28.0 → 7.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +7 -3
  3. data/bin/github-linguist +6 -3
  4. data/grammars/etc.json +1 -1
  5. data/grammars/inline.graphql.json +1 -1
  6. data/grammars/inline.graphql.markdown.codeblock.json +1 -0
  7. data/grammars/inline.hbs.json +1 -1
  8. data/grammars/markdown.commonlisp.codeblock.json +1 -0
  9. data/grammars/markdown.gleam.codeblock.json +1 -0
  10. data/grammars/markdown.glimmer.codeblock.json +1 -0
  11. data/grammars/markdown.move.codeblock.json +1 -1
  12. data/grammars/markdown.rego.codeblock.json +1 -0
  13. data/grammars/source.8xp.json +1 -0
  14. data/grammars/source.Caddyfile-test.json +1 -0
  15. data/grammars/source.Caddyfile.json +1 -0
  16. data/grammars/source.abl.json +1 -1
  17. data/grammars/source.amxxpawn.json +1 -0
  18. data/grammars/source.astro.json +1 -1
  19. data/grammars/source.bb.json +1 -0
  20. data/grammars/source.bh.json +1 -0
  21. data/grammars/source.bicep.json +1 -1
  22. data/grammars/source.bms.json +1 -1
  23. data/grammars/source.bqn.json +1 -0
  24. data/grammars/source.brs.json +1 -1
  25. data/grammars/source.clarion.json +1 -1
  26. data/grammars/source.cobol.json +1 -1
  27. data/grammars/source.commonlisp.json +1 -0
  28. data/grammars/source.cs.json +1 -1
  29. data/grammars/source.csound.json +1 -1
  30. data/grammars/source.d2.json +1 -1
  31. data/grammars/source.dart.json +1 -1
  32. data/grammars/source.did.json +1 -1
  33. data/grammars/source.elvish-transcript.json +1 -1
  34. data/grammars/source.firrtl.json +1 -0
  35. data/grammars/source.fsharp.json +1 -1
  36. data/grammars/source.gdscript.json +1 -1
  37. data/grammars/source.generic-db.json +1 -1
  38. data/grammars/source.gjs.json +1 -1
  39. data/grammars/source.gleam.json +1 -1
  40. data/grammars/source.gts.json +1 -1
  41. data/grammars/source.hcl.json +1 -1
  42. data/grammars/source.hcl.terraform.json +1 -1
  43. data/grammars/source.hx.json +1 -1
  44. data/grammars/source.ice.json +1 -1
  45. data/grammars/source.julia.json +1 -1
  46. data/grammars/source.kotlin.json +1 -1
  47. data/grammars/source.lean4.json +1 -1
  48. data/grammars/source.lua.json +1 -1
  49. data/grammars/source.luau.json +1 -0
  50. data/grammars/source.m2.json +1 -1
  51. data/grammars/source.markdown.caddy.codeblock.json +1 -0
  52. data/grammars/source.matlab.json +1 -1
  53. data/grammars/source.mdx.json +1 -1
  54. data/grammars/source.mojo.json +1 -0
  55. data/grammars/source.move.json +1 -1
  56. data/grammars/source.nasal.json +1 -1
  57. data/grammars/source.nim.json +1 -1
  58. data/grammars/source.nushell.json +1 -1
  59. data/grammars/source.odin.json +1 -1
  60. data/grammars/source.p4.json +1 -1
  61. data/grammars/source.pip-requirements.json +1 -0
  62. data/grammars/source.pkl.json +1 -0
  63. data/grammars/source.praat.json +1 -1
  64. data/grammars/source.rego.json +1 -1
  65. data/grammars/source.rescript.json +1 -1
  66. data/grammars/source.roc.json +1 -0
  67. data/grammars/source.ron.json +1 -0
  68. data/grammars/source.rust.json +1 -1
  69. data/grammars/source.scala.json +1 -1
  70. data/grammars/source.slice.json +1 -1
  71. data/grammars/source.slint.json +1 -0
  72. data/grammars/source.solidity.json +1 -1
  73. data/grammars/source.sourcepawn.json +1 -1
  74. data/grammars/source.sqf.json +1 -1
  75. data/grammars/source.swift.json +1 -1
  76. data/grammars/source.templ.json +1 -0
  77. data/grammars/source.toit.json +1 -1
  78. data/grammars/source.ts.json +1 -1
  79. data/grammars/source.tsx.json +1 -1
  80. data/grammars/source.vba.json +1 -1
  81. data/grammars/source.wsd.json +1 -1
  82. data/grammars/sp-jsdoc.injection.json +1 -0
  83. data/grammars/text.adblock.json +1 -1
  84. data/grammars/text.crontab.json +1 -0
  85. data/grammars/text.html.edge.json +1 -0
  86. data/grammars/text.html.ember-handlebars.json +1 -1
  87. data/grammars/text.html.statamic.json +1 -1
  88. data/grammars/text.md.json +1 -1
  89. data/grammars/text.srt.json +1 -1
  90. data/grammars/text.valve-cfg.json +1 -0
  91. data/grammars/text.valve-kv.json +1 -0
  92. data/grammars/version +1 -1
  93. data/lib/linguist/VERSION +1 -1
  94. data/lib/linguist/generated.rb +39 -1
  95. data/lib/linguist/heuristics.yml +26 -2
  96. data/lib/linguist/languages.json +1 -1
  97. data/lib/linguist/languages.yml +195 -9
  98. data/lib/linguist/repository.rb +8 -6
  99. data/lib/linguist/samples.json +1 -1
  100. metadata +31 -5
  101. data/grammars/markdown.graphql.codeblock.json +0 -1
  102. data/grammars/source.terraform.json +0 -1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-linguist
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.28.0
4
+ version: 7.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-12 00:00:00.000000000 Z
11
+ date: 2024-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -241,6 +241,7 @@ files:
241
241
  - grammars/injections.etc.json
242
242
  - grammars/inline.edgeql.json
243
243
  - grammars/inline.graphql.json
244
+ - grammars/inline.graphql.markdown.codeblock.json
244
245
  - grammars/inline.graphql.php.json
245
246
  - grammars/inline.graphql.python.json
246
247
  - grammars/inline.graphql.re.json
@@ -253,9 +254,11 @@ files:
253
254
  - grammars/markdown.bicep.codeblock.json
254
255
  - grammars/markdown.cadence.codeblock.json
255
256
  - grammars/markdown.codeblock.proto.json
257
+ - grammars/markdown.commonlisp.codeblock.json
256
258
  - grammars/markdown.curry.codeblock.json
257
259
  - grammars/markdown.d2.codeblock.json
258
- - grammars/markdown.graphql.codeblock.json
260
+ - grammars/markdown.gleam.codeblock.json
261
+ - grammars/markdown.glimmer.codeblock.json
259
262
  - grammars/markdown.hack.codeblock.json
260
263
  - grammars/markdown.haxe.codeblock.json
261
264
  - grammars/markdown.hxml.codeblock.json
@@ -265,6 +268,7 @@ files:
265
268
  - grammars/markdown.move.codeblock.json
266
269
  - grammars/markdown.plantuml.codeblock.json
267
270
  - grammars/markdown.prisma.codeblock.json
271
+ - grammars/markdown.rego.codeblock.json
268
272
  - grammars/markdown.rescript.codeblock.json
269
273
  - grammars/markdown.talon.codeblock.json
270
274
  - grammars/markdown.textproto.codeblock.json
@@ -272,6 +276,9 @@ files:
272
276
  - grammars/objdump.x86asm.json
273
277
  - grammars/source.2da.json
274
278
  - grammars/source.4dm.json
279
+ - grammars/source.8xp.json
280
+ - grammars/source.Caddyfile-test.json
281
+ - grammars/source.Caddyfile.json
275
282
  - grammars/source.abap.json
276
283
  - grammars/source.abapcds.json
277
284
  - grammars/source.abl.json
@@ -287,6 +294,7 @@ files:
287
294
  - grammars/source.al.json
288
295
  - grammars/source.alloy.json
289
296
  - grammars/source.ampl.json
297
+ - grammars/source.amxxpawn.json
290
298
  - grammars/source.angelscript.json
291
299
  - grammars/source.antlr.json
292
300
  - grammars/source.apache-config.json
@@ -308,12 +316,14 @@ files:
308
316
  - grammars/source.ballerina.json
309
317
  - grammars/source.basic.json
310
318
  - grammars/source.batchfile.json
319
+ - grammars/source.bb.json
311
320
  - grammars/source.bc.json
312
321
  - grammars/source.bdf.json
313
322
  - grammars/source.befunge.json
314
323
  - grammars/source.berry.bytecode.json
315
324
  - grammars/source.berry.json
316
325
  - grammars/source.bf.json
326
+ - grammars/source.bh.json
317
327
  - grammars/source.bicep.json
318
328
  - grammars/source.blitzmax.json
319
329
  - grammars/source.bms.json
@@ -323,6 +333,7 @@ files:
323
333
  - grammars/source.boo.json
324
334
  - grammars/source.boogie.json
325
335
  - grammars/source.bp.json
336
+ - grammars/source.bqn.json
326
337
  - grammars/source.brs.json
327
338
  - grammars/source.bsl.json
328
339
  - grammars/source.bsv.json
@@ -366,6 +377,7 @@ files:
366
377
  - grammars/source.cobolit.json
367
378
  - grammars/source.cobsql_dir.json
368
379
  - grammars/source.coffee.json
380
+ - grammars/source.commonlisp.json
369
381
  - grammars/source.context.json
370
382
  - grammars/source.cool.json
371
383
  - grammars/source.coq.json
@@ -440,6 +452,7 @@ files:
440
452
  - grammars/source.figctrl.json
441
453
  - grammars/source.figfont.json
442
454
  - grammars/source.firestore.json
455
+ - grammars/source.firrtl.json
443
456
  - grammars/source.fish.json
444
457
  - grammars/source.fnl.json
445
458
  - grammars/source.fontdir.json
@@ -588,6 +601,7 @@ files:
588
601
  - grammars/source.lsl.json
589
602
  - grammars/source.ltspice.symbol.json
590
603
  - grammars/source.lua.json
604
+ - grammars/source.luau.json
591
605
  - grammars/source.m2.json
592
606
  - grammars/source.m4.json
593
607
  - grammars/source.m68k.json
@@ -595,6 +609,7 @@ files:
595
609
  - grammars/source.makefile.json
596
610
  - grammars/source.makegen.json
597
611
  - grammars/source.man-conf.json
612
+ - grammars/source.markdown.caddy.codeblock.json
598
613
  - grammars/source.mask.json
599
614
  - grammars/source.mata.json
600
615
  - grammars/source.mathematica.json
@@ -631,6 +646,7 @@ files:
631
646
  - grammars/source.modelica.json
632
647
  - grammars/source.modula-3.json
633
648
  - grammars/source.modula2.json
649
+ - grammars/source.mojo.json
634
650
  - grammars/source.monkey.json
635
651
  - grammars/source.moonscript.json
636
652
  - grammars/source.move.json
@@ -703,6 +719,8 @@ files:
703
719
  - grammars/source.pic.json
704
720
  - grammars/source.pig_latin.json
705
721
  - grammars/source.pike.json
722
+ - grammars/source.pip-requirements.json
723
+ - grammars/source.pkl.json
706
724
  - grammars/source.pli.json
707
725
  - grammars/source.plist.json
708
726
  - grammars/source.pnlgrp.json
@@ -766,6 +784,8 @@ files:
766
784
  - grammars/source.rez.json
767
785
  - grammars/source.ring.json
768
786
  - grammars/source.rmcobol.json
787
+ - grammars/source.roc.json
788
+ - grammars/source.ron.json
769
789
  - grammars/source.rpg.json
770
790
  - grammars/source.rpgle.json
771
791
  - grammars/source.rpm-spec.json
@@ -796,6 +816,7 @@ files:
796
816
  - grammars/source.sieve.json
797
817
  - grammars/source.singularity.json
798
818
  - grammars/source.slice.json
819
+ - grammars/source.slint.json
799
820
  - grammars/source.smali.json
800
821
  - grammars/source.smalltalk.json
801
822
  - grammars/source.smithy.json
@@ -828,8 +849,8 @@ files:
828
849
  - grammars/source.talon.json
829
850
  - grammars/source.tcl.json
830
851
  - grammars/source.tea.json
852
+ - grammars/source.templ.json
831
853
  - grammars/source.terra.json
832
- - grammars/source.terraform.json
833
854
  - grammars/source.textgrid.json
834
855
  - grammars/source.textproto.json
835
856
  - grammars/source.thrift.json
@@ -902,6 +923,7 @@ files:
902
923
  - grammars/source.zenscript.json
903
924
  - grammars/source.zig.json
904
925
  - grammars/source.zil.json
926
+ - grammars/sp-jsdoc.injection.json
905
927
  - grammars/text.adblock.json
906
928
  - grammars/text.bibtex.json
907
929
  - grammars/text.browserslist.json
@@ -909,6 +931,7 @@ files:
909
931
  - grammars/text.checksums.json
910
932
  - grammars/text.codeowners.json
911
933
  - grammars/text.conllu.json
934
+ - grammars/text.crontab.json
912
935
  - grammars/text.dfy.dafny.json
913
936
  - grammars/text.elixir.json
914
937
  - grammars/text.eml.basic.json
@@ -929,6 +952,7 @@ files:
929
952
  - grammars/text.html.django.json
930
953
  - grammars/text.html.ecmarkup.json
931
954
  - grammars/text.html.ecr.json
955
+ - grammars/text.html.edge.json
932
956
  - grammars/text.html.elixir.json
933
957
  - grammars/text.html.ember-handlebars.json
934
958
  - grammars/text.html.erb.json
@@ -995,6 +1019,8 @@ files:
995
1019
  - grammars/text.tex.latex.rd.json
996
1020
  - grammars/text.tex.latex.sweave.json
997
1021
  - grammars/text.texinfo.json
1022
+ - grammars/text.valve-cfg.json
1023
+ - grammars/text.valve-kv.json
998
1024
  - grammars/text.vim-help.json
999
1025
  - grammars/text.vtt.json
1000
1026
  - grammars/text.xml.ant.json
@@ -1060,7 +1086,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1060
1086
  - !ruby/object:Gem::Version
1061
1087
  version: '0'
1062
1088
  requirements: []
1063
- rubygems_version: 3.4.10
1089
+ rubygems_version: 3.5.9
1064
1090
  signing_key:
1065
1091
  specification_version: 4
1066
1092
  summary: GitHub Language detection
@@ -1 +0,0 @@
1
- {"scopeName":"markdown.graphql.codeblock","patterns":[{"contentName":"meta.embedded.block.graphql","begin":"(gql|graphql|GraphQL)(\\s+[^`~]*)?$","end":"(^|\\G)(?=\\s*[`~]{3,}\\s*$)","patterns":[{"begin":"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)","patterns":[{"include":"source.graphql"}]}]}]}
@@ -1 +0,0 @@
1
- {"name":"Terraform","scopeName":"source.terraform","patterns":[{"include":"#comments"},{"include":"#top_level_attribute_definition"},{"include":"#imports"},{"include":"#block"},{"include":"#expressions"}],"repository":{"attribute_access":{"begin":"\\.","end":"(\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b)|(\\*)|(\\d+)","beginCaptures":{"0":{"name":"keyword.operator.accessor.terraform"}},"endCaptures":{"1":{"name":"variable.other.member.terraform"},"2":{"name":"keyword.operator.splat.terraform"},"3":{"name":"constant.numeric.integer.terraform"}}},"block":{"name":"meta.type.terraform","begin":"(\\b(resource|provider|variable|output|locals|module|data|terraform)\\b|(\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b))(?=[\\s\\\"\\-[:word:]]*(\\{))","end":"(?=\\{)","patterns":[{"name":"string.quoted.double.terraform","begin":"\\\"","end":"\\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.terraform"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.terraform"}}},{"name":"entity.name.label.terraform","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"}],"beginCaptures":{"2":{"name":"storage.type.terraform"},"3":{"name":"entity.name.type.terraform"}}},"block_comments":{"name":"comment.block.terraform","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.terraform"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.terraform"}}},"brackets":{"begin":"\\[","end":"(\\*)?\\]","patterns":[{"include":"#comma"},{"include":"#comments"},{"include":"#expressions"},{"include":"#tuple_for_expression"}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.terraform"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.end.terraform"},"1":{"name":"keyword.operator.splat.terraform"}}},"comma":{"name":"punctuation.separator.terraform","match":"\\,"},"comments":{"patterns":[{"include":"#inline_comments"},{"include":"#block_comments"}]},"expressions":{"patterns":[{"include":"#literal_values"},{"include":"#operators"},{"include":"#brackets"},{"include":"#objects"},{"include":"#attribute_access"},{"include":"#functions"},{"include":"#parens"}]},"functions":{"name":"meta.function-call.terraform","begin":"((abs|ceil|floor|log|max|min|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring)|\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b))(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expressions"},{"include":"#comma"}],"beginCaptures":{"2":{"name":"support.function.builtin.terraform"},"3":{"name":"variable.function.terraform"},"4":{"name":"punctuation.section.parens.begin.terraform"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.terraform"}}},"heredoc":{"name":"string.unquoted.heredoc.terraform","begin":"(\\\u003c\\\u003c\\-?)\\s*(\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b)\\s*$","end":"^\\s*\\2\\s*$","patterns":[{"include":"#string_interpolation"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.terraform"},"2":{"name":"keyword.control.heredoc.terraform"}},"endCaptures":{"0":{"name":"keyword.control.heredoc.terraform"}}},"imports":{"begin":"\\s*(terraform)\\s*(import)\\s*","end":"$\\n?","patterns":[{"include":"#string_literals"},{"name":"entity.name.label.terraform","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"},{"include":"#numeric_literals"},{"include":"#attribute_access"}],"beginCaptures":{"1":{"name":"support.constant.terraform"},"2":{"name":"keyword.control.import.terraform"}}},"inline_comments":{"name":"comment.line.terraform","begin":"#|//","end":"$\n?","beginCaptures":{"0":{"name":"punctuation.definition.comment.terraform"}}},"language_constants":{"name":"constant.language.terraform","match":"\\b(true|false|null)\\b"},"literal_values":{"patterns":[{"include":"#numeric_literals"},{"include":"#language_constants"},{"include":"#string_literals"},{"include":"#heredoc"},{"include":"#type_keywords"},{"include":"#named_value_references"}]},"main":{"patterns":[{"include":"#comments"},{"include":"#block"},{"include":"#expressions"}]},"named_value_references":{"name":"support.constant.terraform","match":"\\b(var|local|module|data|path|terraform)\\b"},"numeric_literals":{"patterns":[{"name":"constant.numeric.float.terraform","match":"\\b\\d+(([Ee][+-]?))\\d+\\b","captures":{"1":{"name":"punctuation.separator.exponent.terraform"}}},{"name":"constant.numeric.float.terraform","match":"\\b\\d+(\\.)\\d+(?:(([Ee][+-]?))\\d+)?\\b","captures":{"1":{"name":"punctuation.separator.decimal.terraform"},"2":{"name":"punctuation.separator.exponent.terraform"}}},{"name":"constant.numeric.integer.terraform","match":"\\b\\d+\\b"}]},"object_for_expression":{"begin":"\\bfor\\b","end":"(?=\\})","patterns":[{"name":"storage.type.function.terraform","match":"\\=\\\u003e"},{"name":"keyword.operator.word.terraform","match":"\\bin\\b"},{"name":"keyword.control.conditional.terraform","match":"\\bif\\b"},{"name":"keyword.operator.terraform","match":"\\:"},{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"name":"variable.other.readwrite.terraform","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"}],"beginCaptures":{"0":{"name":"keyword.control.terraform"}}},"object_key_values":{"patterns":[{"include":"#comments"},{"include":"#expressions"}]},"objects":{"name":"meta.braces.terraform","begin":"\\{","end":"\\}","patterns":[{"include":"#object_for_expression"},{"include":"#comments"},{"begin":"\\s*(\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b)\\s*(\\=)\\s*","end":"((\\,)|($\\n?)|(?=\\}))","patterns":[{"include":"#object_key_values"}],"beginCaptures":{"1":{"name":"meta.mapping.key.terraform string.unquoted.terraform"},"2":{"name":"keyword.operator.terraform"}},"endCaptures":{"1":{"name":"punctuation.separator.terraform"},"3":{"name":"punctuation.section.braces.end.terraform"}}},{"begin":"((\\\").*(\\\"))\\s*(\\=)\\s*","end":"((\\,)|($\\n?)|(?=\\}))","patterns":[{"include":"#object_key_values"}],"beginCaptures":{"1":{"name":"meta.mapping.key.terraform string.quoted.double.terraform"},"2":{"name":"punctuation.definition.string.begin.terraform"},"3":{"name":"punctuation.definition.string.end.terraform"},"4":{"name":"keyword.operator.terraform"}},"endCaptures":{"1":{"name":"punctuation.separator.terraform"},"3":{"name":"punctuation.section.braces.end.terraform"}}},{"name":"meta.mapping.key.terraform","begin":"\\(","end":"(\\))\\s*(\\=)\\s*","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.terraform"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.terraform"},"2":{"name":"keyword.operator.terraform"}}},{"patterns":[{"include":"#main"}]}],"beginCaptures":{"0":{"name":"punctuation.section.braces.begin.terraform"}},"endCaptures":{"0":{"name":"punctuation.section.braces.end.terraform"}}},"operators":{"patterns":[{"name":"keyword.operator.terraform","match":"\\\u003e\\="},{"name":"keyword.operator.terraform","match":"\\\u003c\\="},{"name":"keyword.operator.terraform","match":"\\=\\="},{"name":"keyword.operator.terraform","match":"\\!\\="},{"name":"keyword.operator.arithmetic.terraform","match":"\\+"},{"name":"keyword.operator.arithmetic.terraform","match":"\\-"},{"name":"keyword.operator.arithmetic.terraform","match":"\\*"},{"name":"keyword.operator.arithmetic.terraform","match":"\\/"},{"name":"keyword.operator.arithmetic.terraform","match":"\\%"},{"name":"keyword.operator.logical.terraform","match":"\\\u0026\\\u0026"},{"name":"keyword.operator.logical.terraform","match":"\\|\\|"},{"name":"keyword.operator.logical.terraform","match":"\\!"},{"name":"keyword.operator.terraform","match":"\\\u003e"},{"name":"keyword.operator.terraform","match":"\\\u003c"},{"name":"keyword.operator.terraform","match":"\\?"},{"name":"keyword.operator.terraform","match":"\\.\\.\\."},{"name":"keyword.operator.terraform","match":"\\:"}]},"parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#expressions"},{"name":"variable.other.readwrite.terraform","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.terraform"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.terraform"}}},"string_interpolation":{"name":"meta.interpolation.terraform","begin":"(\\$|\\%)\\{","end":"\\}","patterns":[{"name":"keyword.operator.template.left.trim.terraform","match":"\\~\\s"},{"name":"keyword.operator.template.right.trim.terraform","match":"\\s\\~"},{"name":"keyword.control.terraform","match":"\\b(if|else|endif|for|in|endfor)\\b"},{"include":"#expressions"}],"beginCaptures":{"0":{"name":"keyword.other.interpolation.begin.terraform"}},"endCaptures":{"0":{"name":"keyword.other.interpolation.end.terraform"}}},"string_literals":{"name":"string.quoted.double.terraform","begin":"\"","end":"\"","patterns":[{"include":"#string_interpolation"},{"name":"constant.character.escape.terraform","match":"\\\\[nrt\"\\\\]|\\\\u([[:xdigit:]]{8}|[[:xdigit:]]{4})"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.terraform"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.terraform"}}},"top_level_attribute_definition":{"name":"variable.declaration.terraform","match":"(\\()?(\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b)(\\))?\\s*(\\=[^\\=|\\\u003e])\\s*","captures":{"1":{"name":"punctuation.section.parens.begin.terraform"},"2":{"name":"variable.other.readwrite.terraform"},"3":{"name":"punctuation.section.parens.end.terraform"},"4":{"name":"keyword.operator.assignment.terraform"}}},"tuple_for_expression":{"begin":"\\bfor\\b","end":"(?=\\])","patterns":[{"name":"keyword.operator.word.terraform","match":"\\bin\\b"},{"name":"keyword.control.conditional.terraform","match":"\\bif\\b"},{"name":"keyword.operator.terraform","match":"\\:"},{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"name":"variable.other.readwrite.terraform","match":"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b"}],"beginCaptures":{"0":{"name":"keyword.control.terraform"}}},"type_keywords":{"name":"storage.type.terraform","match":"\\b(any|string|number|bool)\\b"}}}