{ "fileTypes": [], "name": "HCL Expression", "patterns": [ { "begin": "#|//", "captures": { "0": { "name": "punctuation.definition.comment.hcl" } }, "comment": "Comments", "end": "$\\n?", "name": "comment.line.hcl" }, { "begin": "/\\*", "captures": { "0": { "name": "punctuation.definition.comment.hcl" } }, "comment": "Block comments", "end": "\\*/", "name": "comment.block.hcl" }, { "comment": "Language constants (true, false, null)", "match": "\\b(true|false|null)\\b", "name": "constant.language.hcl" }, { "comment": "Numbers", "match": "\\b([0-9]+)(.[0-9]+)?([eE][0-9]+)?\\b", "name": "constant.numeric.hcl" }, { "begin": "([-\\w]+)(\\()", "beginCaptures": { "1": { "name": "keyword.other.function.inline.hcl" }, "2": { "name": "keyword.other.section.begin.hcl" } }, "comment": "Function Calls", "end": "(\\))", "endCaptures": { "1": { "name": "keyword.other.section.end.hcl" } }, "patterns": [ { "include": "$self" } ] }, { "captures": { "0": { "name": "variable.other.hcl" } }, "comment": "Variables and Attribute Names", "match": "[-\\w]+" }, { "begin": "(?\u003e\\s*\u003c\u003c(\\w+))", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.hcl" }, "1": { "name": "keyword.operator.heredoc.hcl" } }, "comment": "Heredoc Templates", "end": "^\\s*\\1$", "endCaptures": { "0": { "name": "punctuation.definition.string.end.hcl keyword.operator.heredoc.hcl" } }, "patterns": [ { "include": "source.hcltemplate" } ] }, { "begin": "\\\"", "beginCaptures": { "0": { "name": "string.hcl punctuation.definition.string.begin.hcl" } }, "comment": "String Templates", "end": "\\\"", "endCaptures": { "0": { "name": "string.hcl punctuation.definition.string.end.hcl" } }, "patterns": [ { "include": "source.hcltemplate" }, { "match": "(^\"|$\\{|%\\{)+", "name": "string.quoted.double.hcl" } ] }, { "captures": { "0": { "name": "keyword.operator.hcl" } }, "comment": "Operators", "match": "(!=|==|\u003e=|\u003c=|\u0026\u0026|\\|\\||[-+*/%\u003c\u003e!?:])" }, { "begin": "\\(", "beginCaptures": { "0": { "name": "meta.brace.round.hcl" } }, "comment": "Parentheses", "end": "\\)", "endCaptures": { "0": { "name": "meta.brace.round.hcl" } }, "patterns": [ { "include": "$self" } ] }, { "begin": "\\[", "beginCaptures": { "0": { "name": "meta.brace.square.hcl" } }, "comment": "Tuple Constructor", "end": "\\]", "endCaptures": { "0": { "name": "meta.brace.square.hcl" } }, "patterns": [ { "captures": { "0": { "name": "keyword.control.hcl" } }, "match": "(for|in)" }, { "include": "$self" } ] }, { "begin": "\\{", "beginCaptures": { "0": { "name": "meta.brace.curly.hcl" } }, "comment": "Object Constructor", "end": "\\}", "endCaptures": { "0": { "name": "meta.brace.curly.hcl" } }, "patterns": [ { "captures": { "0": { "name": "keyword.control.hcl" } }, "match": "(for|in)" }, { "captures": { "0": { "name": "keyword.operator.hcl" } }, "match": "(=\u003e|\\.\\.\\.)" }, { "include": "$self" } ] } ], "scopeName": "source.hclexpr", "uuid": "6c358551-0381-4128-9ea3-277b21943b5c" }