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 |