annotate third_party/highlight/languages/javascript.js @ 164:ce05514681c6

[MrJuneJune] Resume links aren't broken due to previous resume.pdf links.
author June Park <parkjune1995@gmail.com>
date Mon, 19 Jan 2026 05:40:22 -0800
parents 2db6253f355d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
157
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
1 /*! `javascript` grammar compiled for Highlight.js 11.11.1 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
2 (function(){
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
3 var hljsGrammar = (function () {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
4 'use strict';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
5
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
6 const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
7 const KEYWORDS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
8 "as", // for exports
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
9 "in",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
10 "of",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
11 "if",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
12 "for",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
13 "while",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
14 "finally",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
15 "var",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
16 "new",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
17 "function",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
18 "do",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
19 "return",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
20 "void",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
21 "else",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
22 "break",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
23 "catch",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
24 "instanceof",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
25 "with",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
26 "throw",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
27 "case",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
28 "default",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
29 "try",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
30 "switch",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
31 "continue",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
32 "typeof",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
33 "delete",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
34 "let",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
35 "yield",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
36 "const",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
37 "class",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
38 // JS handles these with a special rule
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
39 // "get",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
40 // "set",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
41 "debugger",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
42 "async",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
43 "await",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
44 "static",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
45 "import",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
46 "from",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
47 "export",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
48 "extends",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
49 // It's reached stage 3, which is "recommended for implementation":
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
50 "using"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
51 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
52 const LITERALS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
53 "true",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
54 "false",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
55 "null",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
56 "undefined",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
57 "NaN",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
58 "Infinity"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
59 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
60
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
61 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
62 const TYPES = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
63 // Fundamental objects
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
64 "Object",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
65 "Function",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
66 "Boolean",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
67 "Symbol",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
68 // numbers and dates
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
69 "Math",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
70 "Date",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
71 "Number",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
72 "BigInt",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
73 // text
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
74 "String",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
75 "RegExp",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
76 // Indexed collections
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
77 "Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
78 "Float32Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
79 "Float64Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
80 "Int8Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
81 "Uint8Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
82 "Uint8ClampedArray",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
83 "Int16Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
84 "Int32Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
85 "Uint16Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
86 "Uint32Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
87 "BigInt64Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
88 "BigUint64Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
89 // Keyed collections
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
90 "Set",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
91 "Map",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
92 "WeakSet",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
93 "WeakMap",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
94 // Structured data
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
95 "ArrayBuffer",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
96 "SharedArrayBuffer",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
97 "Atomics",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
98 "DataView",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
99 "JSON",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
100 // Control abstraction objects
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
101 "Promise",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
102 "Generator",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
103 "GeneratorFunction",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
104 "AsyncFunction",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
105 // Reflection
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
106 "Reflect",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
107 "Proxy",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
108 // Internationalization
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
109 "Intl",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
110 // WebAssembly
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
111 "WebAssembly"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
112 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
113
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
114 const ERROR_TYPES = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
115 "Error",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
116 "EvalError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
117 "InternalError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
118 "RangeError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
119 "ReferenceError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
120 "SyntaxError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
121 "TypeError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
122 "URIError"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
123 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
124
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
125 const BUILT_IN_GLOBALS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
126 "setInterval",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
127 "setTimeout",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
128 "clearInterval",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
129 "clearTimeout",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
130
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
131 "require",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
132 "exports",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
133
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
134 "eval",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
135 "isFinite",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
136 "isNaN",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
137 "parseFloat",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
138 "parseInt",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
139 "decodeURI",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
140 "decodeURIComponent",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
141 "encodeURI",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
142 "encodeURIComponent",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
143 "escape",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
144 "unescape"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
145 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
146
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
147 const BUILT_IN_VARIABLES = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
148 "arguments",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
149 "this",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
150 "super",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
151 "console",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
152 "window",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
153 "document",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
154 "localStorage",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
155 "sessionStorage",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
156 "module",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
157 "global" // Node.js
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
158 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
159
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
160 const BUILT_INS = [].concat(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
161 BUILT_IN_GLOBALS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
162 TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
163 ERROR_TYPES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
164 );
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
165
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
166 /*
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
167 Language: JavaScript
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
168 Description: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
169 Category: common, scripting, web
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
170 Website: https://developer.mozilla.org/en-US/docs/Web/JavaScript
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
171 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
172
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
173
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
174 /** @type LanguageFn */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
175 function javascript(hljs) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
176 const regex = hljs.regex;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
177 /**
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
178 * Takes a string like "<Booger" and checks to see
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
179 * if we can find a matching "</Booger" later in the
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
180 * content.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
181 * @param {RegExpMatchArray} match
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
182 * @param {{after:number}} param1
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
183 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
184 const hasClosingTag = (match, { after }) => {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
185 const tag = "</" + match[0].slice(1);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
186 const pos = match.input.indexOf(tag, after);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
187 return pos !== -1;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
188 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
189
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
190 const IDENT_RE$1 = IDENT_RE;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
191 const FRAGMENT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
192 begin: '<>',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
193 end: '</>'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
194 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
195 // to avoid some special cases inside isTrulyOpeningTag
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
196 const XML_SELF_CLOSING = /<[A-Za-z0-9\\._:-]+\s*\/>/;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
197 const XML_TAG = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
198 begin: /<[A-Za-z0-9\\._:-]+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
199 end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
200 /**
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
201 * @param {RegExpMatchArray} match
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
202 * @param {CallbackResponse} response
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
203 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
204 isTrulyOpeningTag: (match, response) => {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
205 const afterMatchIndex = match[0].length + match.index;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
206 const nextChar = match.input[afterMatchIndex];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
207 if (
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
208 // HTML should not include another raw `<` inside a tag
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
209 // nested type?
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
210 // `<Array<Array<number>>`, etc.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
211 nextChar === "<" ||
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
212 // the , gives away that this is not HTML
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
213 // `<T, A extends keyof T, V>`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
214 nextChar === ","
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
215 ) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
216 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
217 return;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
218 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
219
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
220 // `<something>`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
221 // Quite possibly a tag, lets look for a matching closing tag...
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
222 if (nextChar === ">") {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
223 // if we cannot find a matching closing tag, then we
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
224 // will ignore it
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
225 if (!hasClosingTag(match, { after: afterMatchIndex })) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
226 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
227 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
228 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
229
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
230 // `<blah />` (self-closing)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
231 // handled by simpleSelfClosing rule
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
232
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
233 let m;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
234 const afterMatch = match.input.substring(afterMatchIndex);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
235
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
236 // some more template typing stuff
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
237 // <T = any>(key?: string) => Modify<
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
238 if ((m = afterMatch.match(/^\s*=/))) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
239 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
240 return;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
241 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
242
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
243 // `<From extends string>`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
244 // technically this could be HTML, but it smells like a type
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
245 // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
246 if ((m = afterMatch.match(/^\s+extends\s+/))) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
247 if (m.index === 0) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
248 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
249 // eslint-disable-next-line no-useless-return
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
250 return;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
251 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
252 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
253 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
254 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
255 const KEYWORDS$1 = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
256 $pattern: IDENT_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
257 keyword: KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
258 literal: LITERALS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
259 built_in: BUILT_INS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
260 "variable.language": BUILT_IN_VARIABLES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
261 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
262
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
263 // https://tc39.es/ecma262/#sec-literals-numeric-literals
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
264 const decimalDigits = '[0-9](_?[0-9])*';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
265 const frac = `\\.(${decimalDigits})`;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
266 // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
267 // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
268 const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
269 const NUMBER = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
270 className: 'number',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
271 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
272 // DecimalLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
273 { begin: `(\\b(${decimalInteger})((${frac})|\\.)?|(${frac}))` +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
274 `[eE][+-]?(${decimalDigits})\\b` },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
275 { begin: `\\b(${decimalInteger})\\b((${frac})\\b|\\.)?|(${frac})\\b` },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
276
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
277 // DecimalBigIntegerLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
278 { begin: `\\b(0|[1-9](_?[0-9])*)n\\b` },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
279
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
280 // NonDecimalIntegerLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
281 { begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b" },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
282 { begin: "\\b0[bB][0-1](_?[0-1])*n?\\b" },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
283 { begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
284
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
285 // LegacyOctalIntegerLiteral (does not include underscore separators)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
286 // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
287 { begin: "\\b0[0-7]+n?\\b" },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
288 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
289 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
290 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
291
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
292 const SUBST = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
293 className: 'subst',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
294 begin: '\\$\\{',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
295 end: '\\}',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
296 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
297 contains: [] // defined later
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
298 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
299 const HTML_TEMPLATE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
300 begin: '\.?html`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
301 end: '',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
302 starts: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
303 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
304 returnEnd: false,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
305 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
306 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
307 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
308 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
309 subLanguage: 'xml'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
310 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
311 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
312 const CSS_TEMPLATE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
313 begin: '\.?css`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
314 end: '',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
315 starts: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
316 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
317 returnEnd: false,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
318 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
319 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
320 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
321 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
322 subLanguage: 'css'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
323 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
324 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
325 const GRAPHQL_TEMPLATE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
326 begin: '\.?gql`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
327 end: '',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
328 starts: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
329 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
330 returnEnd: false,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
331 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
332 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
333 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
334 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
335 subLanguage: 'graphql'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
336 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
337 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
338 const TEMPLATE_STRING = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
339 className: 'string',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
340 begin: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
341 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
342 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
343 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
344 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
345 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
346 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
347 const JSDOC_COMMENT = hljs.COMMENT(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
348 /\/\*\*(?!\/)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
349 '\\*/',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
350 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
351 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
352 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
353 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
354 begin: '(?=@[A-Za-z]+)',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
355 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
356 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
357 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
358 className: 'doctag',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
359 begin: '@[A-Za-z]+'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
360 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
361 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
362 className: 'type',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
363 begin: '\\{',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
364 end: '\\}',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
365 excludeEnd: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
366 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
367 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
368 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
369 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
370 className: 'variable',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
371 begin: IDENT_RE$1 + '(?=\\s*(-)|$)',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
372 endsParent: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
373 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
374 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
375 // eat spaces (not newlines) so we can find
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
376 // types or variables
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
377 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
378 begin: /(?=[^\n])\s/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
379 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
380 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
381 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
382 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
383 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
384 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
385 );
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
386 const COMMENT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
387 className: "comment",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
388 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
389 JSDOC_COMMENT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
390 hljs.C_BLOCK_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
391 hljs.C_LINE_COMMENT_MODE
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
392 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
393 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
394 const SUBST_INTERNALS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
395 hljs.APOS_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
396 hljs.QUOTE_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
397 HTML_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
398 CSS_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
399 GRAPHQL_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
400 TEMPLATE_STRING,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
401 // Skip numbers when they are part of a variable name
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
402 { match: /\$\d+/ },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
403 NUMBER,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
404 // This is intentional:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
405 // See https://github.com/highlightjs/highlight.js/issues/3288
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
406 // hljs.REGEXP_MODE
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
407 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
408 SUBST.contains = SUBST_INTERNALS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
409 .concat({
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
410 // we need to pair up {} inside our subst to prevent
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
411 // it from ending too early by matching another }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
412 begin: /\{/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
413 end: /\}/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
414 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
415 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
416 "self"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
417 ].concat(SUBST_INTERNALS)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
418 });
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
419 const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
420 const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
421 // eat recursive parens in sub expressions
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
422 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
423 begin: /(\s*)\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
424 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
425 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
426 contains: ["self"].concat(SUBST_AND_COMMENTS)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
427 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
428 ]);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
429 const PARAMS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
430 className: 'params',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
431 // convert this to negative lookbehind in v12
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
432 begin: /(\s*)\(/, // to match the parms with
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
433 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
434 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
435 excludeEnd: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
436 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
437 contains: PARAMS_CONTAINS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
438 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
439
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
440 // ES6 classes
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
441 const CLASS_OR_EXTENDS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
442 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
443 // class Car extends vehicle
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
444 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
445 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
446 /class/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
447 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
448 IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
449 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
450 /extends/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
451 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
452 regex.concat(IDENT_RE$1, "(", regex.concat(/\./, IDENT_RE$1), ")*")
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
453 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
454 scope: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
455 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
456 3: "title.class",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
457 5: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
458 7: "title.class.inherited"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
459 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
460 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
461 // class Car
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
462 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
463 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
464 /class/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
465 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
466 IDENT_RE$1
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
467 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
468 scope: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
469 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
470 3: "title.class"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
471 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
472 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
473
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
474 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
475 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
476
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
477 const CLASS_REFERENCE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
478 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
479 match:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
480 regex.either(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
481 // Hard coded exceptions
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
482 /\bJSON/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
483 // Float32Array, OutT
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
484 /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
485 // CSSFactory, CSSFactoryT
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
486 /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
487 // FPs, FPsT
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
488 /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
489 // P
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
490 // single letters are not highlighted
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
491 // BLAH
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
492 // this will be flagged as a UPPER_CASE_CONSTANT instead
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
493 ),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
494 className: "title.class",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
495 keywords: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
496 _: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
497 // se we still get relevance credit for JS library classes
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
498 ...TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
499 ...ERROR_TYPES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
500 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
501 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
502 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
503
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
504 const USE_STRICT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
505 label: "use_strict",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
506 className: 'meta',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
507 relevance: 10,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
508 begin: /^\s*['"]use (strict|asm)['"]/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
509 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
510
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
511 const FUNCTION_DEFINITION = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
512 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
513 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
514 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
515 /function/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
516 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
517 IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
518 /(?=\s*\()/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
519 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
520 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
521 // anonymous function
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
522 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
523 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
524 /function/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
525 /\s*(?=\()/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
526 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
527 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
528 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
529 className: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
530 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
531 3: "title.function"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
532 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
533 label: "func.def",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
534 contains: [ PARAMS ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
535 illegal: /%/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
536 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
537
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
538 const UPPER_CASE_CONSTANT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
539 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
540 match: /\b[A-Z][A-Z_0-9]+\b/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
541 className: "variable.constant"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
542 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
543
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
544 function noneOf(list) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
545 return regex.concat("(?!", list.join("|"), ")");
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
546 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
547
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
548 const FUNCTION_CALL = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
549 match: regex.concat(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
550 /\b/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
551 noneOf([
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
552 ...BUILT_IN_GLOBALS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
553 "super",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
554 "import"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
555 ].map(x => `${x}\\s*\\(`)),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
556 IDENT_RE$1, regex.lookahead(/\s*\(/)),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
557 className: "title.function",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
558 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
559 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
560
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
561 const PROPERTY_ACCESS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
562 begin: regex.concat(/\./, regex.lookahead(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
563 regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
564 )),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
565 end: IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
566 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
567 keywords: "prototype",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
568 className: "property",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
569 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
570 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
571
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
572 const GETTER_OR_SETTER = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
573 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
574 /get|set/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
575 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
576 IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
577 /(?=\()/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
578 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
579 className: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
580 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
581 3: "title.function"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
582 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
583 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
584 { // eat to avoid empty params
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
585 begin: /\(\)/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
586 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
587 PARAMS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
588 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
589 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
590
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
591 const FUNC_LEAD_IN_RE = '(\\(' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
592 '[^()]*(\\(' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
593 '[^()]*(\\(' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
594 '[^()]*' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
595 '\\)[^()]*)*' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
596 '\\)[^()]*)*' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
597 '\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\s*=>';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
598
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
599 const FUNCTION_VARIABLE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
600 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
601 /const|var|let/, /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
602 IDENT_RE$1, /\s*/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
603 /=\s*/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
604 /(async\s*)?/, // async is optional
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
605 regex.lookahead(FUNC_LEAD_IN_RE)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
606 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
607 keywords: "async",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
608 className: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
609 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
610 3: "title.function"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
611 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
612 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
613 PARAMS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
614 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
615 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
616
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
617 return {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
618 name: 'JavaScript',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
619 aliases: ['js', 'jsx', 'mjs', 'cjs'],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
620 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
621 // this will be extended by TypeScript
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
622 exports: { PARAMS_CONTAINS, CLASS_REFERENCE },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
623 illegal: /#(?![$_A-z])/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
624 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
625 hljs.SHEBANG({
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
626 label: "shebang",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
627 binary: "node",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
628 relevance: 5
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
629 }),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
630 USE_STRICT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
631 hljs.APOS_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
632 hljs.QUOTE_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
633 HTML_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
634 CSS_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
635 GRAPHQL_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
636 TEMPLATE_STRING,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
637 COMMENT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
638 // Skip numbers when they are part of a variable name
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
639 { match: /\$\d+/ },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
640 NUMBER,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
641 CLASS_REFERENCE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
642 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
643 scope: 'attr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
644 match: IDENT_RE$1 + regex.lookahead(':'),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
645 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
646 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
647 FUNCTION_VARIABLE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
648 { // "value" container
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
649 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
650 keywords: 'return throw case',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
651 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
652 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
653 COMMENT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
654 hljs.REGEXP_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
655 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
656 className: 'function',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
657 // we have to count the parens to make sure we actually have the
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
658 // correct bounding ( ) before the =>. There could be any number of
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
659 // sub-expressions inside also surrounded by parens.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
660 begin: FUNC_LEAD_IN_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
661 returnBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
662 end: '\\s*=>',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
663 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
664 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
665 className: 'params',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
666 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
667 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
668 begin: hljs.UNDERSCORE_IDENT_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
669 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
670 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
671 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
672 className: null,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
673 begin: /\(\s*\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
674 skip: true
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
675 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
676 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
677 begin: /(\s*)\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
678 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
679 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
680 excludeEnd: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
681 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
682 contains: PARAMS_CONTAINS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
683 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
684 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
685 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
686 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
687 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
688 { // could be a comma delimited list of params to a function call
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
689 begin: /,/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
690 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
691 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
692 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
693 match: /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
694 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
695 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
696 { // JSX
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
697 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
698 { begin: FRAGMENT.begin, end: FRAGMENT.end },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
699 { match: XML_SELF_CLOSING },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
700 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
701 begin: XML_TAG.begin,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
702 // we carefully check the opening tag to see if it truly
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
703 // is a tag and not a false positive
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
704 'on:begin': XML_TAG.isTrulyOpeningTag,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
705 end: XML_TAG.end
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
706 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
707 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
708 subLanguage: 'xml',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
709 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
710 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
711 begin: XML_TAG.begin,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
712 end: XML_TAG.end,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
713 skip: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
714 contains: ['self']
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
715 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
716 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
717 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
718 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
719 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
720 FUNCTION_DEFINITION,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
721 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
722 // prevent this from getting swallowed up by function
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
723 // since they appear "function like"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
724 beginKeywords: "while if switch catch for"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
725 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
726 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
727 // we have to count the parens to make sure we actually have the correct
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
728 // bounding ( ). There could be any number of sub-expressions inside
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
729 // also surrounded by parens.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
730 begin: '\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
731 '\\(' + // first parens
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
732 '[^()]*(\\(' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
733 '[^()]*(\\(' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
734 '[^()]*' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
735 '\\)[^()]*)*' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
736 '\\)[^()]*)*' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
737 '\\)\\s*\\{', // end parens
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
738 returnBegin:true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
739 label: "func.def",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
740 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
741 PARAMS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
742 hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: "title.function" })
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
743 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
744 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
745 // catch ... so it won't trigger the property rule below
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
746 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
747 match: /\.\.\./,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
748 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
749 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
750 PROPERTY_ACCESS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
751 // hack: prevents detection of keywords in some circumstances
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
752 // .keyword()
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
753 // $keyword = x
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
754 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
755 match: '\\$' + IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
756 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
757 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
758 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
759 match: [ /\bconstructor(?=\s*\()/ ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
760 className: { 1: "title.function" },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
761 contains: [ PARAMS ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
762 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
763 FUNCTION_CALL,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
764 UPPER_CASE_CONSTANT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
765 CLASS_OR_EXTENDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
766 GETTER_OR_SETTER,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
767 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
768 match: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
769 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
770 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
771 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
772 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
773
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
774 return javascript;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
775
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
776 })();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
777
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
778 hljs.registerLanguage('javascript', hljsGrammar);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
779 })();