diff --git a/syntaxes/hcl.tmGrammar.json b/syntaxes/hcl.tmGrammar.json index 48488b3..feed305 100644 --- a/syntaxes/hcl.tmGrammar.json +++ b/syntaxes/hcl.tmGrammar.json @@ -819,10 +819,10 @@ }, "patterns": [ { - "include": "#expressions" + "include": "#comments" }, { - "include": "#local_identifiers" + "include": "#expressions" } ] } diff --git a/tests/snapshot/hcl/issue941.hcl b/tests/snapshot/hcl/issue941.hcl new file mode 100644 index 0000000..8fed364 --- /dev/null +++ b/tests/snapshot/hcl/issue941.hcl @@ -0,0 +1,17 @@ +instance_size = ( #Comment + length(var.instance_size) > 0 ? ( #Comment + var.instance_size #If instance size is provided, use it. + ) #Comment + : #Comment + (var.insane_mode ? + lookup(local.insane_mode_instance_size_map, local.cloud, null) #If instance size is not provided and var.insane_mode is true, lookup in this table. + : # + lookup(local.instance_size_map, local.cloud, null) #If instance size is not provided and var.insane_mode is false, lookup in this table. + ) +) + +# Comment + +variable "test" { + default = "test" +} diff --git a/tests/snapshot/hcl/issue941.hcl.snap b/tests/snapshot/hcl/issue941.hcl.snap new file mode 100644 index 0000000..6dc1405 --- /dev/null +++ b/tests/snapshot/hcl/issue941.hcl.snap @@ -0,0 +1,124 @@ +>instance_size = ( #Comment +#^^^^^^^^^^^^^ source.hcl variable.declaration.hcl variable.other.readwrite.hcl +# ^ source.hcl variable.declaration.hcl +# ^ source.hcl variable.declaration.hcl keyword.operator.assignment.hcl +# ^ source.hcl variable.declaration.hcl +# ^ source.hcl punctuation.section.parens.begin.hcl +# ^^^^^^^^^^^^^^^^^^^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^ source.hcl comment.line.number-sign.hcl +> length(var.instance_size) > 0 ? ( #Comment +#^^ source.hcl +# ^^^^^^ source.hcl meta.function-call.hcl variable.function.hcl +# ^ source.hcl meta.function-call.hcl punctuation.section.parens.begin.hcl +# ^^^ source.hcl meta.function-call.hcl +# ^ source.hcl meta.function-call.hcl keyword.operator.accessor.hcl +# ^^^^^^^^^^^^^ source.hcl meta.function-call.hcl variable.other.member.hcl +# ^ source.hcl meta.function-call.hcl punctuation.section.parens.end.hcl +# ^ source.hcl +# ^ source.hcl keyword.operator.hcl +# ^ source.hcl +# ^ source.hcl constant.numeric.integer.hcl +# ^ source.hcl +# ^ source.hcl keyword.operator.hcl +# ^ source.hcl +# ^ source.hcl punctuation.section.parens.begin.hcl +# ^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^ source.hcl comment.line.number-sign.hcl +> var.instance_size #If instance size is provided, use it. +#^^^^^^^ source.hcl +# ^ source.hcl keyword.operator.accessor.hcl +# ^^^^^^^^^^^^^ source.hcl variable.other.member.hcl +# ^^^^^^^^^^^^^^^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl comment.line.number-sign.hcl +> ) #Comment +#^^ source.hcl +# ^ source.hcl punctuation.section.parens.end.hcl +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^ source.hcl comment.line.number-sign.hcl +> : #Comment +#^^ source.hcl +# ^ source.hcl +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^ source.hcl comment.line.number-sign.hcl +> (var.insane_mode ? +#^^ source.hcl +# ^ source.hcl punctuation.section.parens.begin.hcl +# ^^^ source.hcl +# ^ source.hcl keyword.operator.accessor.hcl +# ^^^^^^^^^^^ source.hcl variable.other.member.hcl +# ^ source.hcl +# ^ source.hcl keyword.operator.hcl +> lookup(local.insane_mode_instance_size_map, local.cloud, null) #If instance size is not provided and var.insane_mode is true, lookup in this table. +#^^^^ source.hcl +# ^^^^^^ source.hcl meta.function-call.hcl variable.function.hcl +# ^ source.hcl meta.function-call.hcl punctuation.section.parens.begin.hcl +# ^^^^^ source.hcl meta.function-call.hcl +# ^ source.hcl meta.function-call.hcl keyword.operator.accessor.hcl +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl meta.function-call.hcl variable.other.member.hcl +# ^ source.hcl meta.function-call.hcl punctuation.separator.hcl +# ^^^^^^ source.hcl meta.function-call.hcl +# ^ source.hcl meta.function-call.hcl keyword.operator.accessor.hcl +# ^^^^^ source.hcl meta.function-call.hcl variable.other.member.hcl +# ^ source.hcl meta.function-call.hcl punctuation.separator.hcl +# ^ source.hcl meta.function-call.hcl +# ^^^^ source.hcl meta.function-call.hcl constant.language.hcl +# ^ source.hcl meta.function-call.hcl punctuation.section.parens.end.hcl +# ^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl comment.line.number-sign.hcl +> : # +#^^^^ source.hcl +# ^ source.hcl +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +> lookup(local.instance_size_map, local.cloud, null) #If instance size is not provided and var.insane_mode is false, lookup in this table. +#^^^^ source.hcl +# ^^^^^^ source.hcl meta.function-call.hcl variable.function.hcl +# ^ source.hcl meta.function-call.hcl punctuation.section.parens.begin.hcl +# ^^^^^ source.hcl meta.function-call.hcl +# ^ source.hcl meta.function-call.hcl keyword.operator.accessor.hcl +# ^^^^^^^^^^^^^^^^^ source.hcl meta.function-call.hcl variable.other.member.hcl +# ^ source.hcl meta.function-call.hcl punctuation.separator.hcl +# ^^^^^^ source.hcl meta.function-call.hcl +# ^ source.hcl meta.function-call.hcl keyword.operator.accessor.hcl +# ^^^^^ source.hcl meta.function-call.hcl variable.other.member.hcl +# ^ source.hcl meta.function-call.hcl punctuation.separator.hcl +# ^ source.hcl meta.function-call.hcl +# ^^^^ source.hcl meta.function-call.hcl constant.language.hcl +# ^ source.hcl meta.function-call.hcl punctuation.section.parens.end.hcl +# ^^^^^^^^^^^^^ source.hcl +# ^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.hcl comment.line.number-sign.hcl +> ) +#^^ source.hcl +# ^ source.hcl punctuation.section.parens.end.hcl +>) +#^ source.hcl punctuation.section.parens.end.hcl +> +># Comment +#^ source.hcl comment.line.number-sign.hcl punctuation.definition.comment.hcl +# ^^^^^^^^ source.hcl comment.line.number-sign.hcl +> +>variable "test" { +#^^^^^^^^ 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 +> default = "test" +#^^ 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 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.block.end.hcl +> \ No newline at end of file