1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
| module.exports = function(hljs) {
| return {
| keywords: {
| literal : 'true false null',
| keyword:
| 'byte short char int long boolean float double void ' +
| // groovy specific keywords
| 'def as in assert trait ' +
| // common keywords with Java
| 'super this abstract static volatile transient public private protected synchronized final ' +
| 'class interface enum if else for while switch case break default continue ' +
| 'throw throws try catch finally implements extends new import package return instanceof'
| },
|
| contains: [
| hljs.COMMENT(
| '/\\*\\*',
| '\\*/',
| {
| relevance : 0,
| contains : [
| {
| // eat up @'s in emails to prevent them to be recognized as doctags
| begin: /\w+@/, relevance: 0
| },
| {
| className : 'doctag',
| begin : '@[A-Za-z]+'
| }
| ]
| }
| ),
| hljs.C_LINE_COMMENT_MODE,
| hljs.C_BLOCK_COMMENT_MODE,
| {
| className: 'string',
| begin: '"""', end: '"""'
| },
| {
| className: 'string',
| begin: "'''", end: "'''"
| },
| {
| className: 'string',
| begin: "\\$/", end: "/\\$",
| relevance: 10
| },
| hljs.APOS_STRING_MODE,
| {
| className: 'regexp',
| begin: /~?\/[^\/\n]+\//,
| contains: [
| hljs.BACKSLASH_ESCAPE
| ]
| },
| hljs.QUOTE_STRING_MODE,
| {
| className: 'meta',
| begin: "^#!/usr/bin/env", end: '$',
| illegal: '\n'
| },
| hljs.BINARY_NUMBER_MODE,
| {
| className: 'class',
| beginKeywords: 'class interface trait enum', end: '{',
| illegal: ':',
| contains: [
| {beginKeywords: 'extends implements'},
| hljs.UNDERSCORE_TITLE_MODE
| ]
| },
| hljs.C_NUMBER_MODE,
| {
| className: 'meta', begin: '@[A-Za-z]+'
| },
| {
| // highlight map keys and named parameters as strings
| className: 'string', begin: /[^\?]{0}[A-Za-z0-9_$]+ *:/
| },
| {
| // catch middle element of the ternary operator
| // to avoid highlight it as a label, named parameter, or map key
| begin: /\?/, end: /\:/
| },
| {
| // highlight labeled statements
| className: 'symbol', begin: '^\\s*[A-Za-z0-9_$]+:',
| relevance: 0
| }
| ],
| illegal: /#|<\//
| }
| };
|
|