diff options
Diffstat (limited to 'public/prism/prism-hcl.js')
| -rw-r--r-- | public/prism/prism-hcl.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/public/prism/prism-hcl.js b/public/prism/prism-hcl.js new file mode 100644 index 0000000..b60f768 --- /dev/null +++ b/public/prism/prism-hcl.js @@ -0,0 +1,65 @@ +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: /[=\[\]{}]/, +}; |
