aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-peoplecode.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
committerArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
commita98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch)
tree542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-peoplecode.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-peoplecode.js')
-rw-r--r--public/prism/prism-peoplecode.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/public/prism/prism-peoplecode.js b/public/prism/prism-peoplecode.js
new file mode 100644
index 0000000..ebc9eef
--- /dev/null
+++ b/public/prism/prism-peoplecode.js
@@ -0,0 +1,46 @@
+Prism.languages.peoplecode = {
+ comment: RegExp(
+ [
+ // C-style multiline comments
+ /\/\*[\s\S]*?\*\//.source,
+ // REM comments
+ /\bREM[^;]*;/.source,
+ // Nested <* *> comments
+ /<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,
+ // /+ +/ comments
+ /\/\+[\s\S]*?\+\//.source,
+ ].join('|')
+ ),
+ string: {
+ pattern: /'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,
+ greedy: true,
+ },
+ variable: /%\w+/,
+ 'function-definition': {
+ pattern: /((?:^|[^\w-])(?:function|method)\s+)\w+/i,
+ lookbehind: true,
+ alias: 'function',
+ },
+ 'class-name': {
+ pattern:
+ /((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,
+ lookbehind: true,
+ inside: {
+ punctuation: /:/,
+ },
+ },
+ keyword:
+ /\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,
+ 'operator-keyword': {
+ pattern: /\b(?:and|not|or)\b/i,
+ alias: 'operator',
+ },
+ function: /[_a-z]\w*(?=\s*\()/i,
+
+ boolean: /\b(?:false|true)\b/i,
+ number: /\b\d+(?:\.\d+)?\b/,
+ operator: /<>|[<>]=?|!=|\*\*|[-+*/|=@]/,
+ punctuation: /[:.;,()[\]]/,
+};
+
+Prism.languages.pcode = Prism.languages.peoplecode;