diff --git a/extensions/terraform/languages/hcl/outline.scm b/extensions/terraform/languages/hcl/outline.scm new file mode 100644 index 0000000000000000000000000000000000000000..b50e239afca857959a9908bf681771cd0c899b00 --- /dev/null +++ b/extensions/terraform/languages/hcl/outline.scm @@ -0,0 +1,76 @@ +; HCL Outline Scheme +; Comments +(comment) @annotation + +; Block with and without string_lit +; Example: +; terraform { ... } +; module "vpc" { ... } +; resource "resource" "name" { ... } +(config_file + (body + (block + (identifier) @context + (string_lit)? @name + (string_lit)? @name + ) @item + ) +) + +; Inside block with identifier +(config_file + (body + (block + (identifier) + (body + (attribute + (identifier) @context + ) @item + ) + ) + ) +) + +; Inside block with identifier and string_lit +(config_file + (body + (block + (identifier) + (body + (block + (identifier) @context + (string_lit)? @name + ) @item + ) + ) + ) +) + +; Root Attribute block +; Example: +; inputs = { ... } +(config_file + (body + (attribute + (identifier) @context + ) @item + ) +) + +; Inside Root Attribute block +(config_file + (body + (attribute + (identifier) + (expression + (collection_value + (object + (object_elem + key: (expression (variable_expr (identifier) @context)) + ) @item + ) + ) + ) + ) + ) +) diff --git a/extensions/terraform/languages/terraform/outline.scm b/extensions/terraform/languages/terraform/outline.scm new file mode 100644 index 0000000000000000000000000000000000000000..b50e239afca857959a9908bf681771cd0c899b00 --- /dev/null +++ b/extensions/terraform/languages/terraform/outline.scm @@ -0,0 +1,76 @@ +; HCL Outline Scheme +; Comments +(comment) @annotation + +; Block with and without string_lit +; Example: +; terraform { ... } +; module "vpc" { ... } +; resource "resource" "name" { ... } +(config_file + (body + (block + (identifier) @context + (string_lit)? @name + (string_lit)? @name + ) @item + ) +) + +; Inside block with identifier +(config_file + (body + (block + (identifier) + (body + (attribute + (identifier) @context + ) @item + ) + ) + ) +) + +; Inside block with identifier and string_lit +(config_file + (body + (block + (identifier) + (body + (block + (identifier) @context + (string_lit)? @name + ) @item + ) + ) + ) +) + +; Root Attribute block +; Example: +; inputs = { ... } +(config_file + (body + (attribute + (identifier) @context + ) @item + ) +) + +; Inside Root Attribute block +(config_file + (body + (attribute + (identifier) + (expression + (collection_value + (object + (object_elem + key: (expression (variable_expr (identifier) @context)) + ) @item + ) + ) + ) + ) + ) +)