From 38fa1f98e58fe5954e43a47bdaed5c968aa78ae4 Mon Sep 17 00:00:00 2001 From: Daniel Banck Date: Fri, 4 Feb 2022 16:12:17 +0100 Subject: [PATCH] Update list/map syntax highlighting (#918) * Remove the red highlighting of `map` and `list` While Terraform v0.15.0 removed the list and map functions, they are still valid types for variables and should not be highlighted as red. * Add map and list to build-in function calls As we don't know which Terraform version a user uses, the grammar should provide good coverage for all versions. `list` and `map` were valid function calls for Terraform < v0.15.0, so we'll keep them as highlighted as one. --- syntaxes/terraform.tmGrammar.json | 6 +----- tests/snapshot/terraform/variables_input.tf.snap | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/syntaxes/terraform.tmGrammar.json b/syntaxes/terraform.tmGrammar.json index 2ac96b615..f44a8f947 100644 --- a/syntaxes/terraform.tmGrammar.json +++ b/syntaxes/terraform.tmGrammar.json @@ -747,13 +747,9 @@ "1": { "patterns": [ { - "match": "abspath|abs|ceil|floor|log|max|min|pow|signum|chomp|formatlist|indent|join|lower|regexall|regex|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalescelist|coalesce|compact|concat|contains|distinct|element|flatten|index|keys|length|lookup|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|dirname|pathexpand|basename|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuidv5|uuid|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring|file|format", + "match": "abspath|abs|ceil|floor|log|max|min|pow|signum|chomp|formatlist|indent|join|lower|regexall|regex|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalescelist|coalesce|compact|concat|contains|distinct|element|flatten|index|keys|length|lookup|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|dirname|pathexpand|basename|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuidv5|uuid|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring|file|format|map|list", "name": "support.function.builtin.terraform" }, - { - "match": "list|map", - "name": "invalid.deprecated.terraform" - }, { "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b", "name": "variable.function.terraform" diff --git a/tests/snapshot/terraform/variables_input.tf.snap b/tests/snapshot/terraform/variables_input.tf.snap index 96f262557..db54ee34a 100644 --- a/tests/snapshot/terraform/variables_input.tf.snap +++ b/tests/snapshot/terraform/variables_input.tf.snap @@ -34,7 +34,7 @@ # ^^^^ scope.terraform meta.block.terraform variable.declaration.terraform # ^ scope.terraform meta.block.terraform variable.declaration.terraform keyword.operator.assignment.terraform # ^ scope.terraform meta.block.terraform variable.declaration.terraform -# ^^^^ scope.terraform meta.block.terraform meta.function-call.terraform invalid.deprecated.terraform +# ^^^^ scope.terraform meta.block.terraform meta.function-call.terraform support.function.builtin.terraform # ^ scope.terraform meta.block.terraform meta.function-call.terraform punctuation.section.parens.begin.terraform # ^^^^^^ scope.terraform meta.block.terraform meta.function-call.terraform storage.type.terraform # ^ scope.terraform meta.block.terraform meta.function-call.terraform punctuation.section.parens.end.terraform @@ -66,7 +66,7 @@ # ^ scope.terraform meta.block.terraform variable.declaration.terraform # ^ scope.terraform meta.block.terraform variable.declaration.terraform keyword.operator.assignment.terraform # ^ scope.terraform meta.block.terraform variable.declaration.terraform -# ^^^^ scope.terraform meta.block.terraform meta.function-call.terraform invalid.deprecated.terraform +# ^^^^ scope.terraform meta.block.terraform meta.function-call.terraform support.function.builtin.terraform # ^ scope.terraform meta.block.terraform meta.function-call.terraform punctuation.section.parens.begin.terraform # ^^^^^^ scope.terraform meta.block.terraform meta.function-call.terraform meta.function-call.terraform support.function.builtin.terraform # ^ scope.terraform meta.block.terraform meta.function-call.terraform meta.function-call.terraform punctuation.section.parens.begin.terraform