ISO-Share/node_modules/prismjs/components/prism-rego.js
2024-11-26 21:16:11 +01:00

30 lines
764 B
JavaScript

// https://www.openpolicyagent.org/docs/latest/policy-reference/
Prism.languages.rego = {
'comment': /#.*/,
'property': {
pattern: /(^|[^\\.])(?:"(?:\\.|[^\\"\r\n])*"|`[^`]*`|\b[a-z_]\w*\b)(?=\s*:(?!=))/i,
lookbehind: true,
greedy: true
},
'string': {
pattern: /(^|[^\\])"(?:\\.|[^\\"\r\n])*"|`[^`]*`/,
lookbehind: true,
greedy: true
},
'keyword': /\b(?:as|default|else|import|not|null|package|set(?=\s*\()|some|with)\b/,
'boolean': /\b(?:false|true)\b/,
'function': {
pattern: /\b[a-z_]\w*\b(?:\s*\.\s*\b[a-z_]\w*\b)*(?=\s*\()/i,
inside: {
'namespace': /\b\w+\b(?=\s*\.)/,
'punctuation': /\./
}
},
'number': /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,
'operator': /[-+*/%|&]|[<>:=]=?|!=|\b_\b/,
'punctuation': /[,;.\[\]{}()]/
};