Skip to content

Commit

Permalink
Copy patterns from HCL grammar to Terraform grammar (#17)
Browse files Browse the repository at this point in the history
* Copy patterns from HCL grammar to Terraform grammar

This resolves an issue with nested include patterns. As soon as an
include hits the HCL grammar file, it would never include anything
from the Terraform grammar file. Because of this, highlighting of
functions would break in deeper nested blocks or function calls.

The commit introduces a lot of code duplication, but it all will go
away with the introduction of templating for grammar files.

* Update snapshot files for Terraform grammar
  • Loading branch information
dbanck authored Mar 16, 2022
1 parent 8fd8831 commit 7742f54
Show file tree
Hide file tree
Showing 10 changed files with 802 additions and 55 deletions.
775 changes: 760 additions & 15 deletions syntaxes/terraform.tmGrammar.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions tests/snapshot/terraform/expressions_dynamic.tf.snap
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.declaration.hcl
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.declaration.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.block.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl keyword.operator.accessor.hcl
# ^^^^^^^^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.other.member.hcl
> content {
Expand Down Expand Up @@ -99,7 +99,7 @@
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.declaration.hcl
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.declaration.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.block.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl meta.block.hcl keyword.operator.accessor.hcl
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl.terraform meta.block.hcl meta.block.hcl variable.other.member.hcl
> content {
Expand Down
30 changes: 15 additions & 15 deletions tests/snapshot/terraform/expressions_for.tf.snap
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
# ^ source.hcl.terraform
# ^^ source.hcl.terraform keyword.operator.word.hcl
# ^ source.hcl.terraform
# ^^^ source.hcl.terraform variable.other.readwrite.hcl
# ^^^ source.hcl.terraform support.constant.terraform
# ^ source.hcl.terraform keyword.operator.accessor.hcl
# ^^^^ source.hcl.terraform variable.other.member.hcl
# ^ source.hcl.terraform
# ^ source.hcl.terraform keyword.operator.hcl
# ^ source.hcl.terraform
# ^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
# ^^^^^ source.hcl.terraform meta.function-call.hcl support.function.builtin.terraform
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
Expand All @@ -29,20 +29,20 @@
# ^ source.hcl.terraform
# ^^ source.hcl.terraform keyword.operator.word.hcl
# ^ source.hcl.terraform
# ^^^ source.hcl.terraform variable.other.readwrite.hcl
# ^^^ source.hcl.terraform support.constant.terraform
# ^ source.hcl.terraform keyword.operator.accessor.hcl
# ^^^ source.hcl.terraform variable.other.member.hcl
# ^ source.hcl.terraform
# ^ source.hcl.terraform keyword.operator.hcl
# ^ source.hcl.terraform
# ^^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
# ^^^^^^ source.hcl.terraform meta.function-call.hcl support.function.builtin.terraform
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
# ^ source.hcl.terraform
# ^ source.hcl.terraform keyword.operator.arithmetic.hcl
# ^ source.hcl.terraform
# ^^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
# ^^^^^^ source.hcl.terraform meta.function-call.hcl support.function.builtin.terraform
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
Expand All @@ -59,7 +59,7 @@
# ^ source.hcl.terraform
# ^^ source.hcl.terraform keyword.operator.word.hcl
# ^ source.hcl.terraform
# ^^^ source.hcl.terraform variable.other.readwrite.hcl
# ^^^ source.hcl.terraform support.constant.terraform
# ^ source.hcl.terraform keyword.operator.accessor.hcl
# ^^^^ source.hcl.terraform variable.other.member.hcl
# ^ source.hcl.terraform
Expand All @@ -85,7 +85,7 @@
# ^ source.hcl.terraform
# ^^ source.hcl.terraform keyword.operator.word.hcl
# ^ source.hcl.terraform
# ^^^ source.hcl.terraform variable.other.readwrite.hcl
# ^^^ source.hcl.terraform support.constant.terraform
# ^ source.hcl.terraform keyword.operator.accessor.hcl
# ^^^^ source.hcl.terraform variable.other.member.hcl
# ^ source.hcl.terraform
Expand All @@ -95,7 +95,7 @@
# ^ source.hcl.terraform
# ^^ source.hcl.terraform storage.type.function.hcl
# ^ source.hcl.terraform
# ^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
# ^^^^^ source.hcl.terraform meta.function-call.hcl support.function.builtin.terraform
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
Expand All @@ -109,13 +109,13 @@
# ^ source.hcl.terraform
# ^^ source.hcl.terraform keyword.operator.word.hcl
# ^ source.hcl.terraform
# ^^^ source.hcl.terraform variable.other.readwrite.hcl
# ^^^ source.hcl.terraform support.constant.terraform
# ^ source.hcl.terraform keyword.operator.accessor.hcl
# ^^^^ source.hcl.terraform variable.other.member.hcl
# ^ source.hcl.terraform
# ^ source.hcl.terraform keyword.operator.hcl
# ^ source.hcl.terraform
# ^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
# ^^^^^ source.hcl.terraform meta.function-call.hcl support.function.builtin.terraform
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
Expand Down Expand Up @@ -152,7 +152,7 @@
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
# ^^ source.hcl.terraform meta.block.hcl meta.braces.hcl keyword.operator.word.hcl
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl variable.other.readwrite.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl keyword.operator.accessor.hcl
# ^^^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
Expand Down Expand Up @@ -190,7 +190,7 @@
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
# ^^ source.hcl.terraform meta.block.hcl meta.braces.hcl keyword.operator.word.hcl
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl variable.other.readwrite.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl keyword.operator.accessor.hcl
# ^^^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
Expand Down Expand Up @@ -230,7 +230,7 @@
# ^ source.hcl.terraform meta.block.hcl
# ^^ source.hcl.terraform meta.block.hcl keyword.operator.word.hcl
# ^ source.hcl.terraform meta.block.hcl
# ^^^ source.hcl.terraform meta.block.hcl variable.other.readwrite.hcl
# ^^^ source.hcl.terraform meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
# ^^^^^ source.hcl.terraform meta.block.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl
Expand Down Expand Up @@ -264,7 +264,7 @@
# ^ source.hcl.terraform meta.block.hcl
# ^^ source.hcl.terraform meta.block.hcl keyword.operator.word.hcl
# ^ source.hcl.terraform meta.block.hcl
# ^^^ source.hcl.terraform meta.block.hcl variable.other.readwrite.hcl
# ^^^ source.hcl.terraform meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
# ^^^^^ source.hcl.terraform meta.block.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl
Expand Down Expand Up @@ -307,7 +307,7 @@
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
# ^^ source.hcl.terraform meta.block.hcl meta.braces.hcl keyword.operator.word.hcl
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl variable.other.readwrite.hcl
# ^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl keyword.operator.accessor.hcl
# ^^^^^ source.hcl.terraform meta.block.hcl meta.braces.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl meta.braces.hcl
Expand Down
12 changes: 6 additions & 6 deletions tests/snapshot/terraform/expressions_functions.tf.snap
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
# ^ source.hcl.terraform meta.function-call.hcl constant.numeric.integer.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
>parseint("100", 10)
#^^^^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
#^^^^^^^^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl
Expand Down Expand Up @@ -164,7 +164,7 @@
# ^^^^^^^^ source.hcl.terraform string.quoted.double.hcl
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl
# ^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl keyword.other.interpolation.begin.hcl
# ^^^^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl meta.function-call.hcl variable.function.hcl
# ^^^^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl meta.function-call.hcl support.function.builtin.terraform
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl meta.function-call.hcl constant.numeric.integer.hcl
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl meta.function-call.hcl punctuation.separator.hcl
Expand Down Expand Up @@ -294,7 +294,7 @@
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
>trim("?!hello?!", "!?")
#^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
#^^^^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^^^^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl
Expand All @@ -306,7 +306,7 @@
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
>trimprefix("helloworld", "hello")
#^^^^^^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
#^^^^^^^^^^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^^^^^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl
Expand All @@ -318,7 +318,7 @@
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.end.hcl
>trimsuffix("helloworld", "world")
#^^^^^^^^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
#^^^^^^^^^^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^^^^^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl
Expand Down Expand Up @@ -351,7 +351,7 @@
# ^^^^^^ source.hcl.terraform comment.line.number-sign.hcl
>
>foo("bar")
#^^^ source.hcl.terraform meta.function-call.hcl variable.function.hcl
#^^^ source.hcl.terraform meta.function-call.hcl
# ^ source.hcl.terraform meta.function-call.hcl punctuation.section.parens.begin.hcl
# ^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^ source.hcl.terraform meta.function-call.hcl string.quoted.double.hcl
Expand Down
2 changes: 1 addition & 1 deletion tests/snapshot/terraform/expressions_splat.tf.snap
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# ^ source.hcl.terraform
# ^^ source.hcl.terraform keyword.operator.word.hcl
# ^ source.hcl.terraform
# ^^^ source.hcl.terraform variable.other.readwrite.hcl
# ^^^ source.hcl.terraform support.constant.terraform
# ^ source.hcl.terraform keyword.operator.accessor.hcl
# ^^^^ source.hcl.terraform variable.other.member.hcl
# ^ source.hcl.terraform
Expand Down
4 changes: 2 additions & 2 deletions tests/snapshot/terraform/expressions_strings.tf.snap
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
# ^^^^^^ source.hcl.terraform string.quoted.double.hcl
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl
# ^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl keyword.other.interpolation.begin.hcl
# ^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl variable.other.readwrite.hcl
# ^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl support.constant.terraform
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl keyword.operator.accessor.hcl
# ^^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl variable.other.member.hcl
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl keyword.other.interpolation.end.hcl
Expand All @@ -98,7 +98,7 @@
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl
# ^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl keyword.control.hcl
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl
# ^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl variable.other.readwrite.hcl
# ^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl support.constant.terraform
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl keyword.operator.accessor.hcl
# ^^^^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl variable.other.member.hcl
# ^ source.hcl.terraform string.quoted.double.hcl meta.interpolation.hcl
Expand Down
6 changes: 3 additions & 3 deletions tests/snapshot/terraform/issue927.tf.snap
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^^^ source.hcl.terraform meta.block.hcl
# ^^^ source.hcl.terraform meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
# ^^^ source.hcl.terraform meta.block.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl
Expand Down Expand Up @@ -61,7 +61,7 @@
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^^^ source.hcl.terraform meta.block.hcl
# ^^^ source.hcl.terraform meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
# ^^^^^^^^ source.hcl.terraform meta.block.hcl variable.other.member.hcl
>}
Expand All @@ -88,7 +88,7 @@
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^^^^^^ source.hcl.terraform meta.block.hcl
# ^^^^^^ source.hcl.terraform meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
# ^^^^^^^ source.hcl.terraform meta.block.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
Expand Down
2 changes: 1 addition & 1 deletion tests/snapshot/terraform/modules.tf.snap
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl.terraform meta.block.hcl variable.declaration.hcl
# ^^^^^^ source.hcl.terraform meta.block.hcl
# ^^^^^^ source.hcl.terraform meta.block.hcl support.constant.terraform
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
# ^^^^^^^ source.hcl.terraform meta.block.hcl variable.other.member.hcl
# ^ source.hcl.terraform meta.block.hcl keyword.operator.accessor.hcl
Expand Down
Loading

0 comments on commit 7742f54

Please sign in to comment.