xref: /expo/docs/components/base/languages/json5.ts (revision 02fdff46)
1export function installJson5(Prism: any) {
2  const string = /("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;
3
4  Prism.languages.json5 = Prism.languages.extend('json', {
5    property: [
6      {
7        pattern: RegExp(string.source + '(?=\\s*:)'),
8        greedy: true,
9      },
10      {
11        pattern: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*:)/,
12        alias: 'unquoted',
13      },
14    ],
15    string: {
16      pattern: string,
17      greedy: true,
18    },
19    number: /[+-]?(?:NaN|Infinity|0x[a-fA-F\d]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)/,
20  });
21}
22