diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 |
| commit | a98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch) | |
| tree | 542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-hcl.js | |
| parent | ab355897a12b7bda1089a44de326d41455a0f7a3 (diff) | |
chore: add prismjs for syntax highlighting
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: /[=\[\]{}]/, +}; |
