mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-08 20:48:15 +08:00
36 lines
944 B
JavaScript
36 lines
944 B
JavaScript
'use strict'
|
|
|
|
module.exports = rego
|
|
rego.displayName = 'rego'
|
|
rego.aliases = []
|
|
function rego(Prism) {
|
|
// 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: /[,;.\[\]{}()]/
|
|
}
|
|
}
|