Skip to content

Commit

Permalink
Allow curly braces in block label strings
Browse files Browse the repository at this point in the history
  • Loading branch information
dbanck committed May 3, 2024
1 parent 5a72a12 commit ab1d9da
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 21 deletions.
2 changes: 1 addition & 1 deletion src/_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ repository:
block:
name: meta.block.hcl
comment: This will match HCL blocks like `thing1 "one" "two" {` or `thing2 {`
begin: ([\w][\-\w]*)([^?{\r\n]*)(\{)
begin: ([\w][\-\w]*)([^?\r\n]*)(\{)
beginCaptures:
"1":
patterns:
Expand Down
2 changes: 1 addition & 1 deletion syntaxes/hcl.tmGrammar.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

100 changes: 81 additions & 19 deletions tests/snapshot/hcl/block_labels.hcl.snap
Original file line number Diff line number Diff line change
Expand Up @@ -268,28 +268,90 @@
>
>path "secrets/data/users/{{identity.entity.name}}/*" {
#^^^^ source.hcl meta.block.hcl entity.name.type.hcl
# ^^ source.hcl meta.block.hcl
# ^^^^^^^ source.hcl meta.block.hcl variable.other.enummember.hcl
# ^ source.hcl meta.block.hcl
# ^^^^ source.hcl meta.block.hcl variable.other.enummember.hcl
# ^ source.hcl meta.block.hcl
# ^^^^^ source.hcl meta.block.hcl variable.other.enummember.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl punctuation.section.block.begin.hcl
# ^ source.hcl meta.block.hcl meta.braces.hcl punctuation.section.braces.begin.hcl
# ^^^^^^^^^^^^^^^^^^^^ source.hcl meta.block.hcl meta.braces.hcl
# ^ source.hcl meta.block.hcl meta.braces.hcl punctuation.section.braces.end.hcl
# ^ source.hcl meta.block.hcl punctuation.section.block.end.hcl
# ^^ source.hcl comment.block.hcl punctuation.definition.comment.hcl
# ^^^^ source.hcl comment.block.hcl
# ^ source.hcl meta.block.hcl
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl meta.block.hcl variable.other.enummember.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl punctuation.section.block.begin.hcl
> capabilities = ["create", "update", "patch", "read", "delete", "list"]
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl comment.block.hcl
#^^ source.hcl meta.block.hcl
# ^^^^^^^^^^^^ source.hcl meta.block.hcl variable.declaration.hcl variable.other.readwrite.hcl
# ^ source.hcl meta.block.hcl variable.declaration.hcl
# ^ source.hcl meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl meta.block.hcl variable.declaration.hcl
# ^ source.hcl meta.block.hcl punctuation.section.brackets.begin.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.section.brackets.end.hcl
>}
#^^ source.hcl comment.block.hcl
#^ source.hcl meta.block.hcl punctuation.section.block.end.hcl
>
>path "secrets/data/users/*" {
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl comment.block.hcl
#^^^^ source.hcl meta.block.hcl entity.name.type.hcl
# ^ source.hcl meta.block.hcl
# ^^^^^^^^^^^^^^^^^^^^^^ source.hcl meta.block.hcl variable.other.enummember.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl punctuation.section.block.begin.hcl
> capabilities = ["create", "update", "patch", "read", "delete", "list"]
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl comment.block.hcl
#^^ source.hcl meta.block.hcl
# ^^^^^^^^^^^^ source.hcl meta.block.hcl variable.declaration.hcl variable.other.readwrite.hcl
# ^ source.hcl meta.block.hcl variable.declaration.hcl
# ^ source.hcl meta.block.hcl variable.declaration.hcl keyword.operator.assignment.hcl
# ^ source.hcl meta.block.hcl variable.declaration.hcl
# ^ source.hcl meta.block.hcl punctuation.section.brackets.begin.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.separator.hcl
# ^ source.hcl meta.block.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.begin.hcl
# ^^^^ source.hcl meta.block.hcl string.quoted.double.hcl
# ^ source.hcl meta.block.hcl string.quoted.double.hcl punctuation.definition.string.end.hcl
# ^ source.hcl meta.block.hcl punctuation.section.brackets.end.hcl
>}
#^^ source.hcl comment.block.hcl
#^ source.hcl meta.block.hcl punctuation.section.block.end.hcl

0 comments on commit ab1d9da

Please sign in to comment.