@@ -10,10 +10,10 @@ Category: lisp
10
10
*/
11
11
12
12
export default function ( hljs ) {
13
- var SCHEME_IDENT_RE = '[^\\(\\)\\[\\]\\{\\}",\'`;#|\\\\\\s]+' ;
14
- var SCHEME_SIMPLE_NUMBER_RE = '(-|\\+)?\\d+([./]\\d+)?' ;
15
- var SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i' ;
16
- var KEYWORDS = {
13
+ const SCHEME_IDENT_RE = '[^\\(\\)\\[\\]\\{\\}",\'`;#|\\\\\\s]+' ;
14
+ const SCHEME_SIMPLE_NUMBER_RE = '(-|\\+)?\\d+([./]\\d+)?' ;
15
+ const SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i' ;
16
+ const KEYWORDS = {
17
17
$pattern : SCHEME_IDENT_RE ,
18
18
'builtin-name' :
19
19
'case-lambda call/cc class define-class exit-handler field import ' +
@@ -51,31 +51,43 @@ export default function(hljs) {
51
51
'with-input-from-file with-output-to-file write write-char zero?'
52
52
} ;
53
53
54
- var LITERAL = {
54
+ const LITERAL = {
55
55
className : 'literal' ,
56
56
begin : '(#t|#f|#\\\\' + SCHEME_IDENT_RE + '|#\\\\.)'
57
57
} ;
58
58
59
- var NUMBER = {
59
+ const NUMBER = {
60
60
className : 'number' ,
61
61
variants : [
62
- { begin : SCHEME_SIMPLE_NUMBER_RE , relevance : 0 } ,
63
- { begin : SCHEME_COMPLEX_NUMBER_RE , relevance : 0 } ,
64
- { begin : '#b[0-1]+(/[0-1]+)?' } ,
65
- { begin : '#o[0-7]+(/[0-7]+)?' } ,
66
- { begin : '#x[0-9a-f]+(/[0-9a-f]+)?' }
62
+ {
63
+ begin : SCHEME_SIMPLE_NUMBER_RE ,
64
+ relevance : 0
65
+ } ,
66
+ {
67
+ begin : SCHEME_COMPLEX_NUMBER_RE ,
68
+ relevance : 0
69
+ } ,
70
+ {
71
+ begin : '#b[0-1]+(/[0-1]+)?'
72
+ } ,
73
+ {
74
+ begin : '#o[0-7]+(/[0-7]+)?'
75
+ } ,
76
+ {
77
+ begin : '#x[0-9a-f]+(/[0-9a-f]+)?'
78
+ }
67
79
]
68
80
} ;
69
81
70
- var STRING = hljs . QUOTE_STRING_MODE ;
82
+ const STRING = hljs . QUOTE_STRING_MODE ;
71
83
72
- var REGULAR_EXPRESSION = {
84
+ const REGULAR_EXPRESSION = {
73
85
className : 'regexp' ,
74
86
begin : '#[pr]x"' ,
75
87
end : '[^\\\\]"'
76
88
} ;
77
89
78
- var COMMENT_MODES = [
90
+ const COMMENT_MODES = [
79
91
hljs . COMMENT (
80
92
';' ,
81
93
'$' ,
@@ -86,65 +98,114 @@ export default function(hljs) {
86
98
hljs . COMMENT ( '#\\|' , '\\|#' )
87
99
] ;
88
100
89
- var IDENT = {
101
+ const IDENT = {
90
102
begin : SCHEME_IDENT_RE ,
91
103
relevance : 0
92
104
} ;
93
105
94
- var QUOTED_IDENT = {
106
+ const QUOTED_IDENT = {
95
107
className : 'symbol' ,
96
108
begin : '\'' + SCHEME_IDENT_RE
97
109
} ;
98
110
99
- var BODY = {
111
+ const BODY = {
100
112
endsWithParent : true ,
101
113
relevance : 0
102
114
} ;
103
115
104
- var QUOTED_LIST = {
116
+ const QUOTED_LIST = {
105
117
variants : [
106
- { begin : / ' / } ,
107
- { begin : '`' }
118
+ {
119
+ begin : / ' /
120
+ } ,
121
+ {
122
+ begin : '`'
123
+ }
108
124
] ,
109
125
contains : [
110
126
{
111
- begin : '\\(' , end : '\\)' ,
112
- contains : [ 'self' , LITERAL , STRING , NUMBER , IDENT , QUOTED_IDENT ]
127
+ begin : '\\(' ,
128
+ end : '\\)' ,
129
+ contains : [
130
+ 'self' ,
131
+ LITERAL ,
132
+ STRING ,
133
+ NUMBER ,
134
+ IDENT ,
135
+ QUOTED_IDENT
136
+ ]
113
137
}
114
138
]
115
139
} ;
116
140
117
- var NAME = {
141
+ const NAME = {
118
142
className : 'name' ,
119
143
relevance : 0 ,
120
144
begin : SCHEME_IDENT_RE ,
121
145
keywords : KEYWORDS
122
146
} ;
123
147
124
- var LAMBDA = {
125
- begin : / l a m b d a / , endsWithParent : true , returnBegin : true ,
148
+ const LAMBDA = {
149
+ begin : / l a m b d a / ,
150
+ endsWithParent : true ,
151
+ returnBegin : true ,
126
152
contains : [
127
153
NAME ,
128
154
{
129
- begin : / \( / , end : / \) / , endsParent : true ,
130
- contains : [ IDENT ] ,
155
+ endsParent : true ,
156
+ variants : [
157
+ {
158
+ begin : / \( / ,
159
+ end : / \) /
160
+ } ,
161
+ {
162
+ begin : / \[ / ,
163
+ end : / \] /
164
+ }
165
+ ] ,
166
+ contains : [ IDENT ]
131
167
}
132
168
]
133
169
} ;
134
170
135
- var LIST = {
171
+ const LIST = {
136
172
variants : [
137
- { begin : '\\(' , end : '\\)' } ,
138
- { begin : '\\[' , end : '\\]' }
173
+ {
174
+ begin : '\\(' ,
175
+ end : '\\)'
176
+ } ,
177
+ {
178
+ begin : '\\[' ,
179
+ end : '\\]'
180
+ }
139
181
] ,
140
- contains : [ LAMBDA , NAME , BODY ]
182
+ contains : [
183
+ LAMBDA ,
184
+ NAME ,
185
+ BODY
186
+ ]
141
187
} ;
142
188
143
- BODY . contains = [ LITERAL , NUMBER , STRING , IDENT , QUOTED_IDENT , QUOTED_LIST , LIST ] . concat ( COMMENT_MODES ) ;
189
+ BODY . contains = [
190
+ LITERAL ,
191
+ NUMBER ,
192
+ STRING ,
193
+ IDENT ,
194
+ QUOTED_IDENT ,
195
+ QUOTED_LIST ,
196
+ LIST
197
+ ] . concat ( COMMENT_MODES ) ;
144
198
145
199
return {
146
200
name : 'Scheme' ,
147
201
illegal : / \S / ,
148
- contains : [ hljs . SHEBANG ( ) , NUMBER , STRING , QUOTED_IDENT , QUOTED_LIST , LIST ] . concat ( COMMENT_MODES )
202
+ contains : [
203
+ hljs . SHEBANG ( ) ,
204
+ NUMBER ,
205
+ STRING ,
206
+ QUOTED_IDENT ,
207
+ QUOTED_LIST ,
208
+ LIST
209
+ ] . concat ( COMMENT_MODES )
149
210
} ;
150
211
}
0 commit comments