PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.7
Code Block Pro – Beautiful Syntax Highlighting v1.27.7
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / clojure.tmLanguage.json

clojure.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.27.7, at build/shiki/languages/clojure.tmLanguage.json

432 lines 10.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "information_for_contributors": [
3 "This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson",
4 "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5 "Once accepted there, we are happy to receive an update request."
6 ],
7 "version": "https://github.com/atom/language-clojure/commit/45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03",
8 "name": "clojure",
9 "scopeName": "source.clojure",
10 "patterns": [
11 {
12 "include": "#comment"
13 },
14 {
15 "include": "#shebang-comment"
16 },
17 {
18 "include": "#quoted-sexp"
19 },
20 {
21 "include": "#sexp"
22 },
23 {
24 "include": "#keyfn"
25 },
26 {
27 "include": "#string"
28 },
29 {
30 "include": "#vector"
31 },
32 {
33 "include": "#set"
34 },
35 {
36 "include": "#map"
37 },
38 {
39 "include": "#regexp"
40 },
41 {
42 "include": "#var"
43 },
44 {
45 "include": "#constants"
46 },
47 {
48 "include": "#dynamic-variables"
49 },
50 {
51 "include": "#metadata"
52 },
53 {
54 "include": "#namespace-symbol"
55 },
56 {
57 "include": "#symbol"
58 }
59 ],
60 "repository": {
61 "comment": {
62 "begin": "(?<!\\\\);",
63 "beginCaptures": {
64 "0": {
65 "name": "punctuation.definition.comment.clojure"
66 }
67 },
68 "end": "$",
69 "name": "comment.line.semicolon.clojure"
70 },
71 "constants": {
72 "patterns": [
73 {
74 "match": "(nil)(?=(\\s|\\)|\\]|\\}))",
75 "name": "constant.language.nil.clojure"
76 },
77 {
78 "match": "(true|false)",
79 "name": "constant.language.boolean.clojure"
80 },
81 {
82 "match": "(##(?:Inf|-Inf|NaN))",
83 "name": "constant.numeric.symbol.clojure"
84 },
85 {
86 "match": "([-+]?\\d+/\\d+)",
87 "name": "constant.numeric.ratio.clojure"
88 },
89 {
90 "match": "([-+]?(?:(?:3[0-6])|(?:[12]\\d)|[2-9])[rR][0-9A-Za-z]+N?)",
91 "name": "constant.numeric.arbitrary-radix.clojure"
92 },
93 {
94 "match": "([-+]?0[xX][0-9a-fA-F]+N?)",
95 "name": "constant.numeric.hexadecimal.clojure"
96 },
97 {
98 "match": "([-+]?0[0-7]+N?)",
99 "name": "constant.numeric.octal.clojure"
100 },
101 {
102 "match": "([-+]?[0-9]+(?:(\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)",
103 "name": "constant.numeric.double.clojure"
104 },
105 {
106 "match": "([-+]?\\d+N?)",
107 "name": "constant.numeric.long.clojure"
108 },
109 {
110 "include": "#keyword"
111 }
112 ]
113 },
114 "keyword": {
115 "match": "(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))",
116 "name": "constant.keyword.clojure"
117 },
118 "keyfn": {
119 "patterns": [
120 {
121 "match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))",
122 "name": "storage.control.clojure"
123 },
124 {
125 "match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))",
126 "name": "keyword.control.clojure"
127 }
128 ]
129 },
130 "dynamic-variables": {
131 "match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*",
132 "name": "meta.symbol.dynamic.clojure"
133 },
134 "map": {
135 "begin": "(\\{)",
136 "beginCaptures": {
137 "1": {
138 "name": "punctuation.section.map.begin.clojure"
139 }
140 },
141 "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
142 "endCaptures": {
143 "1": {
144 "name": "punctuation.section.map.end.trailing.clojure"
145 },
146 "2": {
147 "name": "punctuation.section.map.end.clojure"
148 }
149 },
150 "name": "meta.map.clojure",
151 "patterns": [
152 {
153 "include": "$self"
154 }
155 ]
156 },
157 "metadata": {
158 "patterns": [
159 {
160 "begin": "(\\^\\{)",
161 "beginCaptures": {
162 "1": {
163 "name": "punctuation.section.metadata.map.begin.clojure"
164 }
165 },
166 "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
167 "endCaptures": {
168 "1": {
169 "name": "punctuation.section.metadata.map.end.trailing.clojure"
170 },
171 "2": {
172 "name": "punctuation.section.metadata.map.end.clojure"
173 }
174 },
175 "name": "meta.metadata.map.clojure",
176 "patterns": [
177 {
178 "include": "$self"
179 }
180 ]
181 },
182 {
183 "begin": "(\\^)",
184 "end": "(\\s)",
185 "name": "meta.metadata.simple.clojure",
186 "patterns": [
187 {
188 "include": "#keyword"
189 },
190 {
191 "include": "$self"
192 }
193 ]
194 }
195 ]
196 },
197 "quoted-sexp": {
198 "begin": "(['``]\\()",
199 "beginCaptures": {
200 "1": {
201 "name": "punctuation.section.expression.begin.clojure"
202 }
203 },
204 "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
205 "endCaptures": {
206 "1": {
207 "name": "punctuation.section.expression.end.trailing.clojure"
208 },
209 "2": {
210 "name": "punctuation.section.expression.end.trailing.clojure"
211 },
212 "3": {
213 "name": "punctuation.section.expression.end.clojure"
214 }
215 },
216 "name": "meta.quoted-expression.clojure",
217 "patterns": [
218 {
219 "include": "$self"
220 }
221 ]
222 },
223 "regexp": {
224 "begin": "#\"",
225 "beginCaptures": {
226 "0": {
227 "name": "punctuation.definition.regexp.begin.clojure"
228 }
229 },
230 "end": "\"",
231 "endCaptures": {
232 "0": {
233 "name": "punctuation.definition.regexp.end.clojure"
234 }
235 },
236 "name": "string.regexp.clojure",
237 "patterns": [
238 {
239 "include": "#regexp_escaped_char"
240 }
241 ]
242 },
243 "regexp_escaped_char": {
244 "match": "\\\\.",
245 "name": "constant.character.escape.clojure"
246 },
247 "set": {
248 "begin": "(\\#\\{)",
249 "beginCaptures": {
250 "1": {
251 "name": "punctuation.section.set.begin.clojure"
252 }
253 },
254 "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
255 "endCaptures": {
256 "1": {
257 "name": "punctuation.section.set.end.trailing.clojure"
258 },
259 "2": {
260 "name": "punctuation.section.set.end.clojure"
261 }
262 },
263 "name": "meta.set.clojure",
264 "patterns": [
265 {
266 "include": "$self"
267 }
268 ]
269 },
270 "sexp": {
271 "begin": "(\\()",
272 "beginCaptures": {
273 "1": {
274 "name": "punctuation.section.expression.begin.clojure"
275 }
276 },
277 "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
278 "endCaptures": {
279 "1": {
280 "name": "punctuation.section.expression.end.trailing.clojure"
281 },
282 "2": {
283 "name": "punctuation.section.expression.end.trailing.clojure"
284 },
285 "3": {
286 "name": "punctuation.section.expression.end.clojure"
287 }
288 },
289 "name": "meta.expression.clojure",
290 "patterns": [
291 {
292 "begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=><!?*-]*|[\\w._:+=><!?*-][\\w\\d._:+=><!?*-]*/def[\\w\\d._:+=><!?*-]*)\\s+",
293 "beginCaptures": {
294 "1": {
295 "name": "keyword.control.clojure"
296 }
297 },
298 "end": "(?=\\))",
299 "name": "meta.definition.global.clojure",
300 "patterns": [
301 {
302 "include": "#metadata"
303 },
304 {
305 "include": "#dynamic-variables"
306 },
307 {
308 "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",
309 "name": "entity.global.clojure"
310 },
311 {
312 "include": "$self"
313 }
314 ]
315 },
316 {
317 "include": "#keyfn"
318 },
319 {
320 "include": "#constants"
321 },
322 {
323 "include": "#vector"
324 },
325 {
326 "include": "#map"
327 },
328 {
329 "include": "#set"
330 },
331 {
332 "include": "#sexp"
333 },
334 {
335 "match": "(?<=\\()(.+?)(?=\\s|\\))",
336 "captures": {
337 "1": {
338 "name": "entity.name.function.clojure"
339 }
340 },
341 "patterns": [
342 {
343 "include": "$self"
344 }
345 ]
346 },
347 {
348 "include": "$self"
349 }
350 ]
351 },
352 "shebang-comment": {
353 "begin": "^(#!)",
354 "beginCaptures": {
355 "1": {
356 "name": "punctuation.definition.comment.shebang.clojure"
357 }
358 },
359 "end": "$",
360 "name": "comment.line.shebang.clojure"
361 },
362 "string": {
363 "begin": "(?<!\\\\)(\")",
364 "beginCaptures": {
365 "1": {
366 "name": "punctuation.definition.string.begin.clojure"
367 }
368 },
369 "end": "(\")",
370 "endCaptures": {
371 "1": {
372 "name": "punctuation.definition.string.end.clojure"
373 }
374 },
375 "name": "string.quoted.double.clojure",
376 "patterns": [
377 {
378 "match": "\\\\.",
379 "name": "constant.character.escape.clojure"
380 }
381 ]
382 },
383 "namespace-symbol": {
384 "patterns": [
385 {
386 "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/",
387 "captures": {
388 "1": {
389 "name": "meta.symbol.namespace.clojure"
390 }
391 }
392 }
393 ]
394 },
395 "symbol": {
396 "patterns": [
397 {
398 "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",
399 "name": "meta.symbol.clojure"
400 }
401 ]
402 },
403 "var": {
404 "match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))",
405 "name": "meta.var.clojure"
406 },
407 "vector": {
408 "begin": "(\\[)",
409 "beginCaptures": {
410 "1": {
411 "name": "punctuation.section.vector.begin.clojure"
412 }
413 },
414 "end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])",
415 "endCaptures": {
416 "1": {
417 "name": "punctuation.section.vector.end.trailing.clojure"
418 },
419 "2": {
420 "name": "punctuation.section.vector.end.clojure"
421 }
422 },
423 "name": "meta.vector.clojure",
424 "patterns": [
425 {
426 "include": "$self"
427 }
428 ]
429 }
430 }
431 }
432