summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-nevod.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-nevod.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-nevod.js')
-rw-r--r--public/prism/prism-nevod.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/public/prism/prism-nevod.js b/public/prism/prism-nevod.js
new file mode 100644
index 0000000..f9eab8d
--- /dev/null
+++ b/public/prism/prism-nevod.js
@@ -0,0 +1,129 @@
+Prism.languages.nevod = {
+ comment: /\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,
+ string: {
+ pattern: /(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,
+ greedy: true,
+ inside: {
+ 'string-attrs': /!$|!\*$|\*$/,
+ },
+ },
+ namespace: {
+ pattern: /(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,
+ lookbehind: true,
+ },
+ pattern: {
+ pattern:
+ /(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,
+ lookbehind: true,
+ inside: {
+ 'pattern-name': {
+ pattern: /^#?[a-zA-Z0-9\-.]+/,
+ alias: 'class-name',
+ },
+ fields: {
+ pattern: /\(.*\)/,
+ inside: {
+ 'field-name': {
+ pattern: /[a-zA-Z0-9\-.]+/,
+ alias: 'variable',
+ },
+ punctuation: /[,()]/,
+ operator: {
+ pattern: /~/,
+ alias: 'field-hidden-mark',
+ },
+ },
+ },
+ },
+ },
+ search: {
+ pattern: /(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,
+ alias: 'function',
+ lookbehind: true,
+ },
+ keyword:
+ /@(?:having|inside|namespace|outside|pattern|require|search|where)\b/,
+ 'standard-pattern': {
+ pattern:
+ /\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\b(?:\([a-zA-Z0-9\-.,\s+]*\))?/,
+ inside: {
+ 'standard-pattern-name': {
+ pattern: /^[a-zA-Z0-9\-.]+/,
+ alias: 'builtin',
+ },
+ quantifier: {
+ pattern: /\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,
+ alias: 'number',
+ },
+ 'standard-pattern-attr': {
+ pattern: /[a-zA-Z0-9\-.]+/,
+ alias: 'builtin',
+ },
+ punctuation: /[,()]/,
+ },
+ },
+ quantifier: {
+ pattern: /\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,
+ alias: 'number',
+ },
+ operator: [
+ {
+ pattern: /=/,
+ alias: 'pattern-def',
+ },
+ {
+ pattern: /&/,
+ alias: 'conjunction',
+ },
+ {
+ pattern: /~/,
+ alias: 'exception',
+ },
+ {
+ pattern: /\?/,
+ alias: 'optionality',
+ },
+ {
+ pattern: /[[\]]/,
+ alias: 'repetition',
+ },
+ {
+ pattern: /[{}]/,
+ alias: 'variation',
+ },
+ {
+ pattern: /[+_]/,
+ alias: 'sequence',
+ },
+ {
+ pattern: /\.{2,3}/,
+ alias: 'span',
+ },
+ ],
+ 'field-capture': [
+ {
+ pattern:
+ /([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,
+ lookbehind: true,
+ inside: {
+ 'field-name': {
+ pattern: /[a-zA-Z0-9\-.]+/,
+ alias: 'variable',
+ },
+ colon: /:/,
+ },
+ },
+ {
+ pattern: /[a-zA-Z0-9\-.]+\s*:/,
+ inside: {
+ 'field-name': {
+ pattern: /[a-zA-Z0-9\-.]+/,
+ alias: 'variable',
+ },
+ colon: /:/,
+ },
+ },
+ ],
+ punctuation: /[:;,()]/,
+ name: /[a-zA-Z0-9\-.]+/,
+};