UNPKG

1.02 kBJavaScriptView Raw
1(function (Prism) {
2 Prism.languages.flow = Prism.languages.extend('javascript', {});
3
4 Prism.languages.insertBefore('flow', 'keyword', {
5 'type': [
6 {
7 pattern: /\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,
8 alias: 'tag'
9 }
10 ]
11 });
12 Prism.languages.flow['function-variable'].pattern = /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i;
13
14 Prism.languages.insertBefore('flow', 'operator', {
15 'flow-punctuation': {
16 pattern: /\{\||\|\}/,
17 alias: 'punctuation'
18 }
19 });
20
21 if (Prism.util.type(Prism.languages.flow.keyword) !== 'Array') {
22 Prism.languages.flow.keyword = [Prism.languages.flow.keyword];
23 }
24 Prism.languages.flow.keyword.unshift(
25 {
26 pattern: /(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,
27 lookbehind: true
28 },
29 {
30 pattern: /(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,
31 lookbehind: true
32 }
33 );
34}(Prism));
\No newline at end of file