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