You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
63 lines
1.7 KiB
Prism.languages.hcl = { |
|
'comment': /(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/, |
|
'heredoc': { |
|
pattern: /<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m, |
|
greedy: true, |
|
alias: 'string' |
|
}, |
|
'keyword': [ |
|
{ |
|
pattern: /(?:data|resource)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i, |
|
inside: { |
|
'type': { |
|
pattern: /(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i, |
|
lookbehind: true, |
|
alias: 'variable' |
|
} |
|
} |
|
}, |
|
{ |
|
pattern: /(?:backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i, |
|
inside: { |
|
'type': { |
|
pattern: /(backend|module|output|provider|provisioner|variable)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i, |
|
lookbehind: true, |
|
alias: 'variable' |
|
} |
|
} |
|
}, |
|
/[\w-]+(?=\s+\{)/ |
|
], |
|
'property': [ |
|
/[-\w\.]+(?=\s*=(?!=))/, |
|
/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/, |
|
], |
|
'string': { |
|
pattern: /"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/, |
|
greedy: true, |
|
inside: { |
|
'interpolation': { |
|
pattern: /(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/, |
|
lookbehind: true, |
|
inside: { |
|
'type': { |
|
pattern: /(\b(?:count|data|local|module|path|self|terraform|var)\b\.)[\w\*]+/i, |
|
lookbehind: true, |
|
alias: 'variable' |
|
}, |
|
'keyword': /\b(?:count|data|local|module|path|self|terraform|var)\b/i, |
|
'function': /\w+(?=\()/, |
|
'string': { |
|
pattern: /"(?:\\[\s\S]|[^\\"])*"/, |
|
greedy: true, |
|
}, |
|
'number': /\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i, |
|
'punctuation': /[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/, |
|
} |
|
}, |
|
} |
|
}, |
|
'number': /\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i, |
|
'boolean': /\b(?:false|true)\b/i, |
|
'punctuation': /[=\[\]{}]/, |
|
};
|
|
|