mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-08 23:18:17 +08:00
73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
'use strict'
|
|
|
|
module.exports = hcl
|
|
hcl.displayName = 'hcl'
|
|
hcl.aliases = []
|
|
function hcl(Prism) {
|
|
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: /[=\[\]{}]/
|
|
}
|
|
}
|