summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-dataweave.js
blob: b1d5f55ce6941f9cc6dedd67cd6a41a28791b34b (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
37
38
39
40
41
(function (Prism) {
  Prism.languages.dataweave = {
    url: /\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,
    property: {
      pattern: /(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,
      greedy: true,
    },
    string: {
      pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,
      greedy: true,
    },
    'mime-type': /\b(?:application|audio|image|multipart|text|video)\/[\w+-]+/,
    date: {
      pattern: /\|[\w:+-]+\|/,
      greedy: true,
    },
    comment: [
      {
        pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
        lookbehind: true,
        greedy: true,
      },
      {
        pattern: /(^|[^\\:])\/\/.*/,
        lookbehind: true,
        greedy: true,
      },
    ],
    regex: {
      pattern: /\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,
      greedy: true,
    },
    keyword:
      /\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\b/,
    function: /\b[A-Z_]\w*(?=\s*\()/i,
    number: /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,
    punctuation: /[{}[\];(),.:@]/,
    operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,
    boolean: /\b(?:false|true)\b/,
  };
})(Prism);