annotate third_party/highlight/es/languages/javascript.js @ 207:58d9b64d8dca

Updated deployment script to include sqlite3
author MrJuneJune <me@mrjunejune.com>
date Sun, 15 Feb 2026 12:25:50 -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 var hljsGrammar = (function () {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
3 'use strict';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
4
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
5 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
6 const KEYWORDS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
7 "as", // for exports
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
8 "in",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
9 "of",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
10 "if",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
11 "for",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
12 "while",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
13 "finally",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
14 "var",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
15 "new",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
16 "function",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
17 "do",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
18 "return",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
19 "void",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
20 "else",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
21 "break",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
22 "catch",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
23 "instanceof",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
24 "with",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
25 "throw",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
26 "case",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
27 "default",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
28 "try",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
29 "switch",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
30 "continue",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
31 "typeof",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
32 "delete",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
33 "let",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
34 "yield",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
35 "const",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
36 "class",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
37 // 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
38 // "get",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
39 // "set",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
40 "debugger",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
41 "async",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
42 "await",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
43 "static",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
44 "import",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
45 "from",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
46 "export",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
47 "extends",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
48 // 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
49 "using"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
50 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
51 const LITERALS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
52 "true",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
53 "false",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
54 "null",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
55 "undefined",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
56 "NaN",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
57 "Infinity"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
58 ];
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 // 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
61 const TYPES = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
62 // Fundamental objects
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
63 "Object",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
64 "Function",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
65 "Boolean",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
66 "Symbol",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
67 // numbers and dates
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
68 "Math",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
69 "Date",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
70 "Number",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
71 "BigInt",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
72 // text
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
73 "String",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
74 "RegExp",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
75 // Indexed collections
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
76 "Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
77 "Float32Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
78 "Float64Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
79 "Int8Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
80 "Uint8Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
81 "Uint8ClampedArray",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
82 "Int16Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
83 "Int32Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
84 "Uint16Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
85 "Uint32Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
86 "BigInt64Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
87 "BigUint64Array",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
88 // Keyed collections
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
89 "Set",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
90 "Map",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
91 "WeakSet",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
92 "WeakMap",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
93 // Structured data
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
94 "ArrayBuffer",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
95 "SharedArrayBuffer",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
96 "Atomics",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
97 "DataView",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
98 "JSON",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
99 // Control abstraction objects
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
100 "Promise",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
101 "Generator",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
102 "GeneratorFunction",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
103 "AsyncFunction",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
104 // Reflection
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
105 "Reflect",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
106 "Proxy",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
107 // Internationalization
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
108 "Intl",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
109 // WebAssembly
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 ];
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 const ERROR_TYPES = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
114 "Error",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
115 "EvalError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
116 "InternalError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
117 "RangeError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
118 "ReferenceError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
119 "SyntaxError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
120 "TypeError",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
121 "URIError"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
122 ];
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 const BUILT_IN_GLOBALS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
125 "setInterval",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
126 "setTimeout",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
127 "clearInterval",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
128 "clearTimeout",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
129
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
130 "require",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
131 "exports",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
132
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
133 "eval",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
134 "isFinite",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
135 "isNaN",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
136 "parseFloat",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
137 "parseInt",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
138 "decodeURI",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
139 "decodeURIComponent",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
140 "encodeURI",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
141 "encodeURIComponent",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
142 "escape",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
143 "unescape"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
144 ];
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 const BUILT_IN_VARIABLES = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
147 "arguments",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
148 "this",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
149 "super",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
150 "console",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
151 "window",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
152 "document",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
153 "localStorage",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
154 "sessionStorage",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
155 "module",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
156 "global" // Node.js
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
157 ];
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 const BUILT_INS = [].concat(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
160 BUILT_IN_GLOBALS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
161 TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
162 ERROR_TYPES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
163 );
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 Language: JavaScript
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
167 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
168 Category: common, scripting, web
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
169 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
170 */
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 /** @type LanguageFn */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
174 function javascript(hljs) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
175 const regex = hljs.regex;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
176 /**
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
177 * 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
178 * 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
179 * content.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
180 * @param {RegExpMatchArray} match
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
181 * @param {{after:number}} param1
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
182 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
183 const hasClosingTag = (match, { after }) => {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
184 const tag = "</" + match[0].slice(1);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
185 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
186 return pos !== -1;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
187 };
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 const IDENT_RE$1 = IDENT_RE;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
190 const FRAGMENT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
191 begin: '<>',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
192 end: '</>'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
193 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
194 // 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
195 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
196 const XML_TAG = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
197 begin: /<[A-Za-z0-9\\._:-]+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
198 end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
199 /**
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
200 * @param {RegExpMatchArray} match
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
201 * @param {CallbackResponse} response
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
202 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
203 isTrulyOpeningTag: (match, response) => {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
204 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
205 const nextChar = match.input[afterMatchIndex];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
206 if (
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
207 // 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
208 // nested type?
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
209 // `<Array<Array<number>>`, etc.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
210 nextChar === "<" ||
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
211 // 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
212 // `<T, A extends keyof T, V>`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
213 nextChar === ","
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
214 ) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
215 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
216 return;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
217 }
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 // `<something>`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
220 // 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
221 if (nextChar === ">") {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
222 // 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
223 // will ignore it
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
224 if (!hasClosingTag(match, { after: afterMatchIndex })) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
225 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
226 }
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 // `<blah />` (self-closing)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
230 // handled by simpleSelfClosing rule
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
231
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
232 let m;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
233 const afterMatch = match.input.substring(afterMatchIndex);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
234
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
235 // some more template typing stuff
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
236 // <T = any>(key?: string) => Modify<
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
237 if ((m = afterMatch.match(/^\s*=/))) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
238 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
239 return;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
240 }
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 // `<From extends string>`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
243 // 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
244 // 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
245 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
246 if (m.index === 0) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
247 response.ignoreMatch();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
248 // 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
249 return;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
250 }
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 const KEYWORDS$1 = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
255 $pattern: IDENT_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
256 keyword: KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
257 literal: LITERALS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
258 built_in: BUILT_INS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
259 "variable.language": BUILT_IN_VARIABLES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
260 };
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 // 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
263 const decimalDigits = '[0-9](_?[0-9])*';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
264 const frac = `\\.(${decimalDigits})`;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
265 // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
266 // 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
267 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
268 const NUMBER = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
269 className: 'number',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
270 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
271 // DecimalLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
272 { begin: `(\\b(${decimalInteger})((${frac})|\\.)?|(${frac}))` +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
273 `[eE][+-]?(${decimalDigits})\\b` },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
274 { 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
275
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
276 // DecimalBigIntegerLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
277 { 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
278
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
279 // NonDecimalIntegerLiteral
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
280 { 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
281 { 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
282 { 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
283
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
284 // LegacyOctalIntegerLiteral (does not include underscore separators)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
285 // 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
286 { begin: "\\b0[0-7]+n?\\b" },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
287 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
288 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
289 };
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 const SUBST = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
292 className: 'subst',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
293 begin: '\\$\\{',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
294 end: '\\}',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
295 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
296 contains: [] // defined later
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
297 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
298 const HTML_TEMPLATE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
299 begin: '\.?html`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
300 end: '',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
301 starts: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
302 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
303 returnEnd: false,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
304 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
305 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
306 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
307 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
308 subLanguage: 'xml'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
309 }
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 const CSS_TEMPLATE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
312 begin: '\.?css`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
313 end: '',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
314 starts: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
315 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
316 returnEnd: false,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
317 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
318 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
319 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
320 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
321 subLanguage: 'css'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
322 }
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 const GRAPHQL_TEMPLATE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
325 begin: '\.?gql`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
326 end: '',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
327 starts: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
328 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
329 returnEnd: false,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
330 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
331 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
332 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
333 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
334 subLanguage: 'graphql'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
335 }
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 const TEMPLATE_STRING = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
338 className: 'string',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
339 begin: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
340 end: '`',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
341 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
342 hljs.BACKSLASH_ESCAPE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
343 SUBST
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
344 ]
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 const JSDOC_COMMENT = hljs.COMMENT(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
347 /\/\*\*(?!\/)/,
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 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
351 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
352 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
353 begin: '(?=@[A-Za-z]+)',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
354 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
355 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
356 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
357 className: 'doctag',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
358 begin: '@[A-Za-z]+'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
359 },
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 className: 'type',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
362 begin: '\\{',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
363 end: '\\}',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
364 excludeEnd: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
365 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
366 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
367 },
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 className: 'variable',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
370 begin: IDENT_RE$1 + '(?=\\s*(-)|$)',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
371 endsParent: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
372 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
373 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
374 // 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
375 // types or variables
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
376 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
377 begin: /(?=[^\n])\s/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
378 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
379 }
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 const COMMENT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
386 className: "comment",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
387 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
388 JSDOC_COMMENT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
389 hljs.C_BLOCK_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
390 hljs.C_LINE_COMMENT_MODE
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
391 ]
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 const SUBST_INTERNALS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
394 hljs.APOS_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
395 hljs.QUOTE_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
396 HTML_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
397 CSS_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
398 GRAPHQL_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
399 TEMPLATE_STRING,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
400 // 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
401 { match: /\$\d+/ },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
402 NUMBER,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
403 // This is intentional:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
404 // 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
405 // hljs.REGEXP_MODE
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
406 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
407 SUBST.contains = SUBST_INTERNALS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
408 .concat({
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
409 // 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
410 // 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
411 begin: /\{/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
412 end: /\}/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
413 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
414 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
415 "self"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
416 ].concat(SUBST_INTERNALS)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
417 });
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
418 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
419 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
420 // eat recursive parens in sub expressions
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
421 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
422 begin: /(\s*)\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
423 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
424 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
425 contains: ["self"].concat(SUBST_AND_COMMENTS)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
426 }
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 const PARAMS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
429 className: 'params',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
430 // 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
431 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
432 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
433 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
434 excludeEnd: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
435 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
436 contains: PARAMS_CONTAINS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
437 };
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 // ES6 classes
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
440 const CLASS_OR_EXTENDS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
441 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
442 // class Car extends vehicle
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
443 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
444 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
445 /class/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
446 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
447 IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
448 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
449 /extends/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
450 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
451 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
452 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
453 scope: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
454 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
455 3: "title.class",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
456 5: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
457 7: "title.class.inherited"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
458 }
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 // class Car
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
461 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
462 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
463 /class/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
464 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
465 IDENT_RE$1
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
466 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
467 scope: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
468 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
469 3: "title.class"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
470 }
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 const CLASS_REFERENCE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
477 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
478 match:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
479 regex.either(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
480 // Hard coded exceptions
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
481 /\bJSON/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
482 // Float32Array, OutT
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
483 /\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
484 // CSSFactory, CSSFactoryT
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
485 /\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
486 // FPs, FPsT
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
487 /\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
488 // P
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
489 // single letters are not highlighted
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
490 // BLAH
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
491 // 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
492 ),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
493 className: "title.class",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
494 keywords: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
495 _: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
496 // 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
497 ...TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
498 ...ERROR_TYPES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
499 ]
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 const USE_STRICT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
504 label: "use_strict",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
505 className: 'meta',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
506 relevance: 10,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
507 begin: /^\s*['"]use (strict|asm)['"]/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
508 };
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 const FUNCTION_DEFINITION = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
511 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
512 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
513 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
514 /function/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
515 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
516 IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
517 /(?=\s*\()/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
518 ]
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 // anonymous function
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
521 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
522 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
523 /function/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
524 /\s*(?=\()/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
525 ]
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 className: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
529 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
530 3: "title.function"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
531 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
532 label: "func.def",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
533 contains: [ PARAMS ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
534 illegal: /%/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
535 };
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 const UPPER_CASE_CONSTANT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
538 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
539 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
540 className: "variable.constant"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
541 };
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 function noneOf(list) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
544 return regex.concat("(?!", list.join("|"), ")");
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
545 }
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 const FUNCTION_CALL = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
548 match: regex.concat(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
549 /\b/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
550 noneOf([
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
551 ...BUILT_IN_GLOBALS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
552 "super",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
553 "import"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
554 ].map(x => `${x}\\s*\\(`)),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
555 IDENT_RE$1, regex.lookahead(/\s*\(/)),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
556 className: "title.function",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
557 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
558 };
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 const PROPERTY_ACCESS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
561 begin: regex.concat(/\./, regex.lookahead(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
562 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
563 )),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
564 end: IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
565 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
566 keywords: "prototype",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
567 className: "property",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
568 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
569 };
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 const GETTER_OR_SETTER = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
572 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
573 /get|set/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
574 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
575 IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
576 /(?=\()/
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 className: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
579 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
580 3: "title.function"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
581 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
582 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
583 { // eat to avoid empty params
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
584 begin: /\(\)/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
585 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
586 PARAMS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
587 ]
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 const FUNC_LEAD_IN_RE = '(\\(' +
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
591 '[^()]*(\\(' +
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 '\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\s*=>';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
597
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
598 const FUNCTION_VARIABLE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
599 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
600 /const|var|let/, /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
601 IDENT_RE$1, /\s*/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
602 /=\s*/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
603 /(async\s*)?/, // async is optional
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
604 regex.lookahead(FUNC_LEAD_IN_RE)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
605 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
606 keywords: "async",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
607 className: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
608 1: "keyword",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
609 3: "title.function"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
610 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
611 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
612 PARAMS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
613 ]
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 return {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
617 name: 'JavaScript',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
618 aliases: ['js', 'jsx', 'mjs', 'cjs'],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
619 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
620 // this will be extended by TypeScript
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
621 exports: { PARAMS_CONTAINS, CLASS_REFERENCE },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
622 illegal: /#(?![$_A-z])/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
623 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
624 hljs.SHEBANG({
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
625 label: "shebang",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
626 binary: "node",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
627 relevance: 5
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
628 }),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
629 USE_STRICT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
630 hljs.APOS_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
631 hljs.QUOTE_STRING_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
632 HTML_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
633 CSS_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
634 GRAPHQL_TEMPLATE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
635 TEMPLATE_STRING,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
636 COMMENT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
637 // 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
638 { match: /\$\d+/ },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
639 NUMBER,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
640 CLASS_REFERENCE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
641 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
642 scope: 'attr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
643 match: IDENT_RE$1 + regex.lookahead(':'),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
644 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
645 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
646 FUNCTION_VARIABLE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
647 { // "value" container
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
648 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
649 keywords: 'return throw case',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
650 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
651 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
652 COMMENT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
653 hljs.REGEXP_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
654 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
655 className: 'function',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
656 // 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
657 // 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
658 // 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
659 begin: FUNC_LEAD_IN_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
660 returnBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
661 end: '\\s*=>',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
662 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
663 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
664 className: 'params',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
665 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
666 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
667 begin: hljs.UNDERSCORE_IDENT_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
668 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
669 },
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 className: null,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
672 begin: /\(\s*\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
673 skip: true
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
674 },
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 begin: /(\s*)\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
677 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
678 excludeBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
679 excludeEnd: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
680 keywords: KEYWORDS$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
681 contains: PARAMS_CONTAINS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
682 }
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 { // 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
688 begin: /,/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
689 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
690 },
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 match: /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
693 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
694 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
695 { // JSX
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
696 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
697 { begin: FRAGMENT.begin, end: FRAGMENT.end },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
698 { match: XML_SELF_CLOSING },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
699 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
700 begin: XML_TAG.begin,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
701 // 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
702 // 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
703 'on:begin': XML_TAG.isTrulyOpeningTag,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
704 end: XML_TAG.end
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
705 }
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 subLanguage: 'xml',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
708 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
709 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
710 begin: XML_TAG.begin,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
711 end: XML_TAG.end,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
712 skip: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
713 contains: ['self']
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
714 }
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 FUNCTION_DEFINITION,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
720 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
721 // 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
722 // since they appear "function like"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
723 beginKeywords: "while if switch catch for"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
724 },
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 // 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
727 // 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
728 // also surrounded by parens.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
729 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
730 '\\(' + // first parens
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
731 '[^()]*(\\(' +
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 '\\)\\s*\\{', // end parens
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
737 returnBegin:true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
738 label: "func.def",
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
739 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
740 PARAMS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
741 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
742 ]
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 // 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
745 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
746 match: /\.\.\./,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
747 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
748 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
749 PROPERTY_ACCESS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
750 // 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
751 // .keyword()
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
752 // $keyword = x
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
753 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
754 match: '\\$' + IDENT_RE$1,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
755 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
756 },
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 match: [ /\bconstructor(?=\s*\()/ ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
759 className: { 1: "title.function" },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
760 contains: [ PARAMS ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
761 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
762 FUNCTION_CALL,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
763 UPPER_CASE_CONSTANT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
764 CLASS_OR_EXTENDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
765 GETTER_OR_SETTER,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
766 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
767 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
768 }
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 return javascript;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
774
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 export default hljsGrammar;