aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-hcl.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/prism/prism-hcl.js')
-rw-r--r--public/prism/prism-hcl.js65
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: /[=\[\]{}]/,
+};