@@ -1,149 +1,149 @@
1−"use strict";
2−Object.defineProperty(exports, "__esModule", { value: true });
3−var react_syntax_highlighter_1 = require("react-syntax-highlighter");
1+"use strict"
2+import { Light } from "react-syntax-highlighter"
43var purescript = function (hljs) {
5− var COMMENT = {
6− variants: [
7− hljs.COMMENT("--", "$"),
8− hljs.COMMENT("{-", "-}", {
9− contains: ["self"],
10− }),
11− ],
12− };
13− var ESCAPED_KEY = {
14− className: "attribute",
15− begin: '"',
16− illegal: '"',
17− end: '"',
18− relevance: 0,
19− };
20− // var KEY = {
21− // className: "attribute",
22− // begin: "[a-z]",
23− // illegal: ""
24− // end: "(::|∷)",
25− // excludeEnd: true,
26− // relevance: 0,
27− // };
28− var CONSTRUCTOR = {
29− className: "type",
30− begin: "\\b[A-Z][\\w']*",
31− relevance: 0,
32− };
33− var LIST = {
34− begin: "\\(",
35− end: "\\)",
36− illegal: '"',
37− contains: [
38− { className: "type", begin: "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?" },
39− hljs.inherit(hljs.TITLE_MODE, { begin: "[_a-z][\\w']*" }),
40− COMMENT,
41− ],
42− };
43− var VALUE = {};
44− var KEY_VALUE = {
45− className: "attribute",
46− begin: "\\w+",
47− end: ",|}",
48− contains: [VALUE],
49− };
50− var RECORD = {
51− begin: "{",
52− end: "}",
53− contains: [KEY_VALUE],
54− };
55− return {
56− name: "PureScript",
57− aliases: ["purs", "purescript"],
58− keywords: {
59− keyword: "case " +
60− "class " +
61− "data " +
62− "derive " +
63− "ado " +
64− "do " +
65− "else " +
66− "if " +
67− "import " +
68− "in " +
69− "infix " +
70− "infixl " +
71− "infixr " +
72− "instance " +
73− "let " +
74− "module " +
75− "newtype " +
76− "of " +
77− "then " +
78− "type " +
79− "where " +
80− ": " +
81− "foreign " +
82− "forall " +
83− "∀",
84− },
85− contains: [
86− // Top-level constructions.
87− {
88− beginKeywords: "module",
89− end: "where",
90− keywords: "module where",
91− contains: [LIST, COMMENT],
92− illegal: "\\W\\.|;",
93− },
94− {
95− begin: "\\bimport\\b",
96− end: "$",
97− keywords: "import as hiding",
98− contains: [LIST, COMMENT],
99− illegal: "\\W\\.|;",
100− },
101− {
102− className: "class",
103− begin: "^(\\s*)?(class|instance)\\b",
104− end: "where",
105− keywords: "class instance where",
106− contains: [CONSTRUCTOR, LIST, COMMENT],
107− },
108− {
109− className: "class",
110− begin: "\\b(data|(new)?type)\\b",
111− end: "$",
112− keywords: "data family type newtype derive",
113− contains: [CONSTRUCTOR, LIST, RECORD, COMMENT],
114− },
115− {
116− className: "symbol",
117− begin: "=|<-|->|\\:\\:|\\\\|=>|<=|forall|∀|\\:|∷|{|}|\\(|\\)|\\[|\\]|,",
118− invalid: "/",
119− },
120− {
121− beginKeywords: "default",
122− end: "$",
123− contains: [CONSTRUCTOR, LIST, COMMENT],
124− },
125− {
126− beginKeywords: "infix infixl infixr",
127− end: "$",
128− contains: [hljs.C_NUMBER_MODE, COMMENT],
129− },
130− {
131− begin: "\\bforeign\\b",
132− end: "$",
133− keywords: "foreign import",
134− contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT],
135− },
136− // "Whitespaces".
137− // Literals and names.
138− // TODO: characters.
139− hljs.QUOTE_STRING_MODE,
140− hljs.C_NUMBER_MODE,
141− CONSTRUCTOR,
142− hljs.inherit(hljs.TITLE_MODE, { begin: "^[_a-z][\\w']*" }),
143− COMMENT,
144− { begin: "->|<-" },
145− ],
146− };
147−};
148−react_syntax_highlighter_1.Light.registerLanguage("puresscript", purescript);
149−exports.syntaxHighlighter = react_syntax_highlighter_1.Light;
4+ var COMMENT = {
5+ variants: [
6+ hljs.COMMENT("--", "$"),
7+ hljs.COMMENT("{-", "-}", {
8+ contains: ["self"]
9+ })
10+ ]
11+ }
12+ var ESCAPED_KEY = {
13+ className: "attribute",
14+ begin: '"',
15+ illegal: '"',
16+ end: '"',
17+ relevance: 0
18+ }
19+ // var KEY = {
20+ // className: "attribute",
21+ // begin: "[a-z]",
22+ // illegal: ""
23+ // end: "(::|∷)",
24+ // excludeEnd: true,
25+ // relevance: 0,
26+ // };
27+ var CONSTRUCTOR = {
28+ className: "type",
29+ begin: "\\b[A-Z][\\w']*",
30+ relevance: 0
31+ }
32+ var LIST = {
33+ begin: "\\(",
34+ end: "\\)",
35+ illegal: '"',
36+ contains: [
37+ { className: "type", begin: "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?" },
38+ hljs.inherit(hljs.TITLE_MODE, { begin: "[_a-z][\\w']*" }),
39+ COMMENT
40+ ]
41+ }
42+ var VALUE = {}
43+ var KEY_VALUE = {
44+ className: "attribute",
45+ begin: "\\w+",
46+ end: ",|}",
47+ contains: [VALUE]
48+ }
49+ var RECORD = {
50+ begin: "{",
51+ end: "}",
52+ contains: [KEY_VALUE]
53+ }
54+ return {
55+ name: "PureScript",
56+ aliases: ["purs", "purescript"],
57+ keywords: {
58+ keyword:
59+ "case " +
60+ "class " +
61+ "data " +
62+ "derive " +
63+ "ado " +
64+ "do " +
65+ "else " +
66+ "if " +
67+ "import " +
68+ "in " +
69+ "infix " +
70+ "infixl " +
71+ "infixr " +
72+ "instance " +
73+ "let " +
74+ "module " +
75+ "newtype " +
76+ "of " +
77+ "then " +
78+ "type " +
79+ "where " +
80+ ": " +
81+ "foreign " +
82+ "forall " +
83+ "∀"
84+ },
85+ contains: [
86+ // Top-level constructions.
87+ {
88+ beginKeywords: "module",
89+ end: "where",
90+ keywords: "module where",
91+ contains: [LIST, COMMENT],
92+ illegal: "\\W\\.|;"
93+ },
94+ {
95+ begin: "\\bimport\\b",
96+ end: "$",
97+ keywords: "import as hiding",
98+ contains: [LIST, COMMENT],
99+ illegal: "\\W\\.|;"
100+ },
101+ {
102+ className: "class",
103+ begin: "^(\\s*)?(class|instance)\\b",
104+ end: "where",
105+ keywords: "class instance where",
106+ contains: [CONSTRUCTOR, LIST, COMMENT]
107+ },
108+ {
109+ className: "class",
110+ begin: "\\b(data|(new)?type)\\b",
111+ end: "$",
112+ keywords: "data family type newtype derive",
113+ contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
114+ },
115+ {
116+ className: "symbol",
117+ begin: "=|<-|->|\\:\\:|\\\\|=>|<=|forall|∀|\\:|∷|{|}|\\(|\\)|\\[|\\]|,",
118+ invalid: "/"
119+ },
120+ {
121+ beginKeywords: "default",
122+ end: "$",
123+ contains: [CONSTRUCTOR, LIST, COMMENT]
124+ },
125+ {
126+ beginKeywords: "infix infixl infixr",
127+ end: "$",
128+ contains: [hljs.C_NUMBER_MODE, COMMENT]
129+ },
130+ {
131+ begin: "\\bforeign\\b",
132+ end: "$",
133+ keywords: "foreign import",
134+ contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
135+ },
136+ // "Whitespaces".
137+ // Literals and names.
138+ // TODO: characters.
139+ hljs.QUOTE_STRING_MODE,
140+ hljs.C_NUMBER_MODE,
141+ CONSTRUCTOR,
142+ hljs.inherit(hljs.TITLE_MODE, { begin: "^[_a-z][\\w']*" }),
143+ COMMENT,
144+ { begin: "->|<-" }
145+ ]
146+ }
147+}
148+Light.registerLanguage("puresscript", purescript)
149+export const syntaxHighlighter = Light