name: HCL Template scopeName: source.hcltemplate fileTypes: [tmpl] uuid: ac6be18e-d44f-4a73-bd8f-b973fd26df05 patterns: - comment: Interpolation Sequences name: meta.interp.hcltemplate begin: '[^\$]?(\$\{~?)' beginCaptures: '1': {name: entity.tag.embedded.start.hcltemplate} end: '~?}' endCaptures: '0': {name: entity.tag.embedded.end.hcltemplate} patterns: - include: "source.hclexpr" - comment: Control Sequences name: meta.control.hcltemplate begin: '[^\%]?(\%\{~?)' beginCaptures: '1': {name: entity.tag.embedded.start.hcltemplate} end: '~?}' endCaptures: '0': {name: entity.tag.embedded.end.hcltemplate} patterns: - include: "#templateif" - include: "#templatefor" - include: "#templatesimplekw" repository: templateif: name: meta.templateif.hcltemplate begin: '(if)\s*' beginCaptures: '1': {name: keyword.control.hcltemplate} end: '(?=~?\})' patterns: - include: "source.hclexpr" templatefor: name: meta.templatefor.hcltemplate begin: '(for)\s*(\w+)\s*(,\s*(\w+)\s*)?(in)' beginCaptures: '1': {name: keyword.control.hcltemplate} '2': {name: variable.other.hcl} '4': {name: variable.other.hcl} '5': {name: keyword.control.hcltemplate} end: '(?=~?\})' patterns: - include: "source.hclexpr" templatesimplekw: match: (else|endif|endfor) captures: '0': {name: keyword.control.hcl}