Prism.languages.rip = { comment: { pattern: /#.*/, greedy: !0 }, char: { pattern: /\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/, greedy: !0 }, string: { pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, greedy: !0 }, regex: { pattern: /(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/, lookbehind: !0, greedy: !0, }, keyword: /(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/, builtin: /@|\bSystem\b/, boolean: /\b(?:false|true)\b/, date: /\b\d{4}-\d{2}-\d{2}\b/, time: /\b\d{2}:\d{2}:\d{2}\b/, datetime: /\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/, symbol: /:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/, number: /[+-]?\b(?:\d+\.\d+|\d+)\b/, punctuation: /(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/, reference: /[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/, }; ww.armandphilippot.com/'>www.armandphilippot.com
The frontend of my personal website.Armand Philippot
summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-firestore-security-rules.js
blob: 79c9e3bdab61c5a5628ebf2a4de8032c7ecb4f6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Prism.languages['firestore-security-rules'] = Prism.languages.extend('clike', {
  comment: /\/\/.*/,
  keyword: /\b(?:allow|function|if|match|null|return|rules_version|service)\b/,
  operator: /&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/,
});

delete Prism.languages['firestore-security-rules']['class-name'];

Prism.languages.insertBefore('firestore-security-rules', 'keyword', {
  path: {
    pattern:
      /(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,
    lookbehind: true,
    greedy: true,
    inside: {
      variable: {
        pattern: /\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,
        inside: {
          operator: /=/,
          keyword: /\*\*/,
          punctuation: /[.$(){}]/,
        },
      },
      punctuation: /\//,
    },
  },
  method: {
    // to make the pattern shorter, the actual method names are omitted
    pattern: /(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,
    lookbehind: true,
    alias: 'builtin',
    inside: {
      punctuation: /,/,
    },
  },
});