summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-cypher.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-cypher.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-cypher.js')
-rw-r--r--public/prism/prism-cypher.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/public/prism/prism-cypher.js b/public/prism/prism-cypher.js
new file mode 100644
index 0000000..72360bf
--- /dev/null
+++ b/public/prism/prism-cypher.js
@@ -0,0 +1,38 @@
+Prism.languages.cypher = {
+ // https://neo4j.com/docs/cypher-manual/current/syntax/comments/
+ comment: /\/\/.*/,
+ string: {
+ pattern: /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,
+ greedy: true,
+ },
+ 'class-name': {
+ pattern: /(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,
+ lookbehind: true,
+ greedy: true,
+ },
+ relationship: {
+ pattern:
+ /(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,
+ lookbehind: true,
+ greedy: true,
+ alias: 'property',
+ },
+ identifier: {
+ pattern: /`(?:[^`\\\r\n])*`/,
+ greedy: true,
+ },
+
+ variable: /\$\w+/,
+
+ // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/
+ keyword:
+ /\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,
+
+ function: /\b\w+\b(?=\s*\()/,
+
+ boolean: /\b(?:false|null|true)\b/i,
+ number: /\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,
+ // https://neo4j.com/docs/cypher-manual/current/syntax/operators/
+ operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,
+ punctuation: /[()[\]{},;.]/,
+};