From 5e31456d258bfa7f9db808f4f67cf3e91dad809d Mon Sep 17 00:00:00 2001 From: Christian Mesh Date: Fri, 29 Aug 2025 08:43:05 -0400 Subject: [PATCH] Add support for ephemeral block in OpenTofu and Terraform --- components/prism-hcl.js | 4 ++-- tests/languages/hcl/keyword_feature.test | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/components/prism-hcl.js b/components/prism-hcl.js index bd12c84666..5ad4563e88 100644 --- a/components/prism-hcl.js +++ b/components/prism-hcl.js @@ -7,10 +7,10 @@ Prism.languages.hcl = { }, 'keyword': [ { - pattern: /(?:data|resource)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i, + pattern: /(?:data|resource|ephemeral)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i, inside: { 'type': { - pattern: /(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i, + pattern: /(resource|data|ephemeral|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i, lookbehind: true, alias: 'variable' } diff --git a/tests/languages/hcl/keyword_feature.test b/tests/languages/hcl/keyword_feature.test index 11d083bd37..ca21f9575b 100644 --- a/tests/languages/hcl/keyword_feature.test +++ b/tests/languages/hcl/keyword_feature.test @@ -1,5 +1,6 @@ resource "aws_db_instance" "main" { data "terraform_remote_state" "main" { +ephemeral "provider_type" "main" { output "dev_vpc_id" { config { terraform { @@ -16,6 +17,11 @@ terraform { ["data ", ["type", "\"terraform_remote_state\""]]], ["string", ["\"main\""]], + ["punctuation", "{"], + ["keyword", + ["ephemeral ", + ["type", "\"provider_type\""]]], + ["string", ["\"main\""]], ["punctuation", "{"], ["keyword", ["output", @@ -29,4 +35,4 @@ terraform { ---------------------------------------------------- -Checks for all keywords. \ No newline at end of file +Checks for all keywords.