@speed-highlight/core 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/.gitattributes +2 -0
  2. package/CODE_OF_CONDUCT.md +128 -0
  3. package/CONTRIBUTING.md +34 -0
  4. package/LICENSE +121 -0
  5. package/README.md +140 -0
  6. package/assets/screenshot.png +0 -0
  7. package/dist/common.js +1 -0
  8. package/dist/detect.js +1 -0
  9. package/dist/index.js +3 -0
  10. package/dist/languages/asm.js +1 -0
  11. package/dist/languages/bash.js +1 -0
  12. package/dist/languages/bf.js +1 -0
  13. package/dist/languages/c.js +1 -0
  14. package/dist/languages/css.js +1 -0
  15. package/dist/languages/csv.js +1 -0
  16. package/dist/languages/diff.js +1 -0
  17. package/dist/languages/docker.js +1 -0
  18. package/dist/languages/git.js +1 -0
  19. package/dist/languages/go.js +1 -0
  20. package/dist/languages/html.js +1 -0
  21. package/dist/languages/http.js +1 -0
  22. package/dist/languages/ini.js +1 -0
  23. package/dist/languages/java.js +1 -0
  24. package/dist/languages/js.js +1 -0
  25. package/dist/languages/js_template_literals.js +1 -0
  26. package/dist/languages/jsdoc.js +1 -0
  27. package/dist/languages/json.js +1 -0
  28. package/dist/languages/leanpub-md.js +2 -0
  29. package/dist/languages/log.js +1 -0
  30. package/dist/languages/lua.js +1 -0
  31. package/dist/languages/make.js +1 -0
  32. package/dist/languages/md.js +2 -0
  33. package/dist/languages/pl.js +1 -0
  34. package/dist/languages/plain.js +1 -0
  35. package/dist/languages/py.js +1 -0
  36. package/dist/languages/regex.js +1 -0
  37. package/dist/languages/rs.js +1 -0
  38. package/dist/languages/sql.js +1 -0
  39. package/dist/languages/todo.js +1 -0
  40. package/dist/languages/toml.js +1 -0
  41. package/dist/languages/ts.js +1 -0
  42. package/dist/languages/uri.js +1 -0
  43. package/dist/languages/xml.js +1 -0
  44. package/dist/languages/yaml.js +1 -0
  45. package/dist/node/common.js +1 -0
  46. package/dist/node/detect.js +1 -0
  47. package/dist/node/index.js +3 -0
  48. package/dist/node/languages/asm.js +1 -0
  49. package/dist/node/languages/bash.js +1 -0
  50. package/dist/node/languages/bf.js +1 -0
  51. package/dist/node/languages/c.js +1 -0
  52. package/dist/node/languages/css.js +1 -0
  53. package/dist/node/languages/csv.js +1 -0
  54. package/dist/node/languages/diff.js +1 -0
  55. package/dist/node/languages/docker.js +1 -0
  56. package/dist/node/languages/git.js +1 -0
  57. package/dist/node/languages/go.js +1 -0
  58. package/dist/node/languages/html.js +1 -0
  59. package/dist/node/languages/http.js +1 -0
  60. package/dist/node/languages/ini.js +1 -0
  61. package/dist/node/languages/java.js +1 -0
  62. package/dist/node/languages/js.js +1 -0
  63. package/dist/node/languages/js_template_literals.js +1 -0
  64. package/dist/node/languages/jsdoc.js +1 -0
  65. package/dist/node/languages/json.js +1 -0
  66. package/dist/node/languages/leanpub-md.js +2 -0
  67. package/dist/node/languages/log.js +1 -0
  68. package/dist/node/languages/lua.js +1 -0
  69. package/dist/node/languages/make.js +1 -0
  70. package/dist/node/languages/md.js +2 -0
  71. package/dist/node/languages/pl.js +1 -0
  72. package/dist/node/languages/plain.js +1 -0
  73. package/dist/node/languages/py.js +1 -0
  74. package/dist/node/languages/regex.js +1 -0
  75. package/dist/node/languages/rs.js +1 -0
  76. package/dist/node/languages/sql.js +1 -0
  77. package/dist/node/languages/todo.js +1 -0
  78. package/dist/node/languages/toml.js +1 -0
  79. package/dist/node/languages/ts.js +1 -0
  80. package/dist/node/languages/uri.js +1 -0
  81. package/dist/node/languages/xml.js +1 -0
  82. package/dist/node/languages/yaml.js +1 -0
  83. package/dist/node/term.js +1 -0
  84. package/dist/node/themes/default.js +1 -0
  85. package/dist/term.js +1 -0
  86. package/dist/themes/atom-dark.css +1 -0
  87. package/dist/themes/dark.css +1 -0
  88. package/dist/themes/default.css +1 -0
  89. package/dist/themes/default.js +1 -0
  90. package/dist/themes/github-dark.css +1 -0
  91. package/dist/themes/github-dim.css +1 -0
  92. package/dist/themes/github-light.css +1 -0
  93. package/dist/themes/visual-studio-dark.css +1 -0
  94. package/examples/deno.js +14 -0
  95. package/examples/dist.html +27 -0
  96. package/examples/helper/data.js +51 -0
  97. package/examples/helper/elm.js +58 -0
  98. package/examples/index.html +52 -0
  99. package/examples/languages/oneline.bash +1 -0
  100. package/examples/languages/oneline.http +1 -0
  101. package/examples/languages/screenshot.js +18 -0
  102. package/examples/languages/test.asm +17 -0
  103. package/examples/languages/test.bash +32 -0
  104. package/examples/languages/test.bf +21 -0
  105. package/examples/languages/test.c +57 -0
  106. package/examples/languages/test.css +20 -0
  107. package/examples/languages/test.csv +4 -0
  108. package/examples/languages/test.diff +27 -0
  109. package/examples/languages/test.docker +23 -0
  110. package/examples/languages/test.git +10 -0
  111. package/examples/languages/test.go +21 -0
  112. package/examples/languages/test.html +27 -0
  113. package/examples/languages/test.http +17 -0
  114. package/examples/languages/test.ini +6 -0
  115. package/examples/languages/test.java +52 -0
  116. package/examples/languages/test.js +34 -0
  117. package/examples/languages/test.jsdoc +2 -0
  118. package/examples/languages/test.json +24 -0
  119. package/examples/languages/test.leanpub-md +21 -0
  120. package/examples/languages/test.log +32 -0
  121. package/examples/languages/test.lua +62 -0
  122. package/examples/languages/test.make +51 -0
  123. package/examples/languages/test.md +62 -0
  124. package/examples/languages/test.pl +25 -0
  125. package/examples/languages/test.plain +3 -0
  126. package/examples/languages/test.py +38 -0
  127. package/examples/languages/test.regex +2 -0
  128. package/examples/languages/test.rs +38 -0
  129. package/examples/languages/test.sql +6 -0
  130. package/examples/languages/test.todo +18 -0
  131. package/examples/languages/test.toml +16 -0
  132. package/examples/languages/test.ts +43 -0
  133. package/examples/languages/test.uri +9 -0
  134. package/examples/languages/test.xml +44 -0
  135. package/examples/languages/test.yaml +18 -0
  136. package/examples/node.js +11 -0
  137. package/examples/style.css +28 -0
  138. package/examples/worker.html +19 -0
  139. package/examples/worker.js +6 -0
  140. package/package.json +40 -0
  141. package/src/common.js +18 -0
  142. package/src/detect.js +33 -0
  143. package/src/index.js +129 -0
  144. package/src/languages/asm.js +30 -0
  145. package/src/languages/bash.js +44 -0
  146. package/src/languages/bf.js +18 -0
  147. package/src/languages/c.js +52 -0
  148. package/src/languages/css.js +56 -0
  149. package/src/languages/csv.js +9 -0
  150. package/src/languages/diff.js +18 -0
  151. package/src/languages/docker.js +9 -0
  152. package/src/languages/git.js +20 -0
  153. package/src/languages/go.js +28 -0
  154. package/src/languages/html.js +51 -0
  155. package/src/languages/http.js +30 -0
  156. package/src/languages/ini.js +22 -0
  157. package/src/languages/java.js +28 -0
  158. package/src/languages/js.js +48 -0
  159. package/src/languages/js_template_literals.js +34 -0
  160. package/src/languages/jsdoc.js +18 -0
  161. package/src/languages/json.js +20 -0
  162. package/src/languages/leanpub-md.js +34 -0
  163. package/src/languages/log.js +28 -0
  164. package/src/languages/lua.js +28 -0
  165. package/src/languages/make.js +36 -0
  166. package/src/languages/md.js +48 -0
  167. package/src/languages/pl.js +25 -0
  168. package/src/languages/plain.js +5 -0
  169. package/src/languages/py.js +52 -0
  170. package/src/languages/regex.js +19 -0
  171. package/src/languages/rs.js +28 -0
  172. package/src/languages/sql.js +33 -0
  173. package/src/languages/todo.js +19 -0
  174. package/src/languages/toml.js +36 -0
  175. package/src/languages/ts.js +13 -0
  176. package/src/languages/uri.js +26 -0
  177. package/src/languages/xml.js +68 -0
  178. package/src/languages/yaml.js +32 -0
  179. package/src/term.js +19 -0
  180. package/src/themes/atom-dark.css +23 -0
  181. package/src/themes/dark.css +23 -0
  182. package/src/themes/default.css +87 -0
  183. package/src/themes/default.js +26 -0
  184. package/src/themes/github-dark.css +23 -0
  185. package/src/themes/github-dim.css +3 -0
  186. package/src/themes/github-light.css +21 -0
  187. package/src/themes/visual-studio-dark.css +23 -0
@@ -0,0 +1,9 @@
1
+ import bash from "./bash.js"
2
+
3
+ export default [
4
+ {
5
+ type: 'kwd',
6
+ match: /^(FROM|RUN|CMD|LABEL|MAINTAINER|EXPOSE|ENV|ADD|COPY|ENTRYPOINT|VOLUME|USER|WORKDIR|ARG|ONBUILD|STOPSIGNAL|HEALTHCHECK|SHELL)\b/gmi
7
+ },
8
+ ...bash
9
+ ]
@@ -0,0 +1,20 @@
1
+ import diff from './diff.js'
2
+
3
+ export default [
4
+ {
5
+ match: /^#.*/gm,
6
+ sub: 'todo'
7
+ },
8
+ {
9
+ expand: 'str'
10
+ },
11
+ ...diff,
12
+ {
13
+ type: 'func',
14
+ match: /^(\$ )?git(\s.*)?$/gm
15
+ },
16
+ {
17
+ type: 'kwd',
18
+ match: /^commit \w+$/gm
19
+ }
20
+ ]
@@ -0,0 +1,28 @@
1
+ export default [
2
+ {
3
+ match: /\/\/.*\n?|\/\*((?!\*\/)[^])*(\*\/)?/g,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ expand: 'str'
8
+ },
9
+ {
10
+ expand: 'num'
11
+ },
12
+ {
13
+ type: 'kwd',
14
+ match: /\*|&|\b(break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go|goto|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/g
15
+ },
16
+ {
17
+ type: 'func',
18
+ match: /[a-zA-Z_][\w_]*(?=\s*\()/g
19
+ },
20
+ {
21
+ type: 'class',
22
+ match: /[A-Z][\w_]*/g
23
+ },
24
+ {
25
+ type: 'oper',
26
+ match: /[+\-*\/%&|^~=!<>.^-]+/g
27
+ }
28
+ ]
@@ -0,0 +1,51 @@
1
+ import xml, { property, xmlElement } from './xml.js'
2
+
3
+ export default [
4
+ {
5
+ type: 'class',
6
+ match: /<!DOCTYPE("[^"]*"|'[^']*'|[^"'>])*>/gi,
7
+ sub: [
8
+ {
9
+ type: 'str',
10
+ match: /"[^"]*"|'[^']*'/g
11
+ },
12
+ {
13
+ type: 'oper',
14
+ match: /^<!|>$/g
15
+ },
16
+ {
17
+ type: 'var',
18
+ match: /DOCTYPE/gi
19
+ }
20
+ ]
21
+ },
22
+ {
23
+ match: RegExp(`<style${property}>((?!</style>)[^])*</style\\s*>`, 'g'),
24
+ sub: [
25
+ {
26
+ match: RegExp(`^<style${property}>`, 'g'),
27
+ sub: xmlElement.sub
28
+ },
29
+ {
30
+ match: RegExp(`${xmlElement.match}|[^]*(?=</style\\s*>$)`, 'g'),
31
+ sub: 'css'
32
+ },
33
+ xmlElement
34
+ ]
35
+ },
36
+ {
37
+ match: RegExp(`<script${property}>((?!</script>)[^])*</script\\s*>`, 'g'),
38
+ sub: [
39
+ {
40
+ match: RegExp(`^<script${property}>`, 'g'),
41
+ sub: xmlElement.sub
42
+ },
43
+ {
44
+ match: RegExp(`${xmlElement.match}|[^]*(?=</script\\s*>$)`, 'g'),
45
+ sub: 'js'
46
+ },
47
+ xmlElement
48
+ ]
49
+ },
50
+ ...xml
51
+ ]
@@ -0,0 +1,30 @@
1
+ import { detectLanguage } from '../detect.js'
2
+
3
+ export default [
4
+ {
5
+ type: 'kwd',
6
+ match: /^(GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|PRI|SEARCH)\b/gm
7
+ },
8
+ {
9
+ expand: 'str'
10
+ },
11
+ {
12
+ type: 'section',
13
+ match: /\bHTTP\/[\d.]+\b/g
14
+ },
15
+ {
16
+ expand: 'num'
17
+ },
18
+ {
19
+ type: 'oper',
20
+ match: /[,;:=]/g
21
+ },
22
+ {
23
+ type: 'var',
24
+ match: /[a-zA-Z][\w-]*(?=:)/g
25
+ },
26
+ {
27
+ match: /\n\n[^]*/g,
28
+ sub: detectLanguage
29
+ }
30
+ ]
@@ -0,0 +1,22 @@
1
+ export default [
2
+ {
3
+ match: /(^[ \f\t\v]*)[#;].*/gm,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ type: 'str',
8
+ match: /.*/g
9
+ },
10
+ {
11
+ type: 'var',
12
+ match: /.*(?==)/g
13
+ },
14
+ {
15
+ type: 'section',
16
+ match: /^\s*\[.+\]\s*$/gm
17
+ },
18
+ {
19
+ type: 'oper',
20
+ match: /=/g
21
+ }
22
+ ]
@@ -0,0 +1,28 @@
1
+ export default [
2
+ {
3
+ match: /\/\/.*\n?|\/\*((?!\*\/)[^])*(\*\/)?/g,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ expand: 'str'
8
+ },
9
+ {
10
+ expand: 'num'
11
+ },
12
+ {
13
+ type: 'kwd',
14
+ match: /\b(abstract|assert|boolean|break|byte|case|catch|char|class|continue|const|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|package|private|protected|public|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|transient|try|var|void|volatile|while)\b/g
15
+ },
16
+ {
17
+ type: 'oper',
18
+ match: /[/*+:?&|%^~=!,<>.^-]+/g
19
+ },
20
+ {
21
+ type: 'func',
22
+ match: /[a-zA-Z_][\w_]*(?=\s*\()/g
23
+ },
24
+ {
25
+ type: 'class',
26
+ match: /[A-Z][\w_]*/g
27
+ }
28
+ ]
@@ -0,0 +1,48 @@
1
+ export default [
2
+ {
3
+ match: /\/\*\*((?!\*\/)[^])*(\*\/)?/g,
4
+ sub: 'jsdoc'
5
+ },
6
+ {
7
+ match: /\/\/.*\n?|\/\*((?!\*\/)[^])*(\*\/)?/g,
8
+ sub: 'todo'
9
+ },
10
+ {
11
+ expand: 'str'
12
+ },
13
+ {
14
+ match: /`((?!`)[^]|\\[^])*`?/g,
15
+ sub: 'js_template_literals'
16
+ },
17
+ {
18
+ type: 'kwd',
19
+ match: /=>|\b(this|set|get|as|async|await|break|case|catch|class|const|constructor|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|if|implements|import|in|instanceof|interface|let|var|of|new|package|private|protected|public|return|static|super|switch|throw|throws|try|typeof|void|while|with|yield)\b/g
20
+ },
21
+ {
22
+ match: /\/((?!\/)[^\r\n\\]|\\.)+\/[dgimsuy]*/g,
23
+ sub: 'regex'
24
+ },
25
+ {
26
+ expand: 'num'
27
+ },
28
+ {
29
+ type: 'num',
30
+ match: /\b(NaN|null|undefined|[A-Z][A-Z_]*)\b/g
31
+ },
32
+ {
33
+ type: 'bool',
34
+ match: /\b(true|false)\b/g
35
+ },
36
+ {
37
+ type: 'oper',
38
+ match: /[/*+:?&|%^~=!,<>.^-]+/g
39
+ },
40
+ {
41
+ type: 'class',
42
+ match: /\b[A-Z]\w*\b/g
43
+ },
44
+ {
45
+ type: 'func',
46
+ match: /[a-zA-Z$_][\w$_]*(?=\s*((\?\.)?\s*\(|=\s*(\(?[\w,{}\[\])]+\)? =>|function\b)))/g
47
+ }
48
+ ]
@@ -0,0 +1,34 @@
1
+ export default [
2
+ {
3
+ match: new class {
4
+ exec(str) {
5
+ let i = this.lastIndex,
6
+ j,
7
+ f = _ => {
8
+ while (++i < str.length - 2)
9
+ if (str[i] == '{') f();
10
+ else if (str[i] == '}') return;
11
+ };
12
+ for (; i < str.length; i++)
13
+ if (str[i - 1] != '\\' && str[i] == '$' && str[i + 1] == '{') {
14
+ j = i++;
15
+ f(i);
16
+ this.lastIndex = i + 1;
17
+ return { index: j, 0: str.slice(j, i + 1) };
18
+ }
19
+ return null;
20
+ }
21
+ }(),
22
+ sub: [
23
+ {
24
+ type: 'kwd',
25
+ match: /^\${|}$/g
26
+ },
27
+ {
28
+ match: /(?!^\$|{)[^]+(?=}$)/g,
29
+ sub: 'js'
30
+ },
31
+ ],
32
+ },
33
+ ];
34
+ export let type = 'str';
@@ -0,0 +1,18 @@
1
+ import todo from './todo.js';
2
+
3
+ export default [
4
+ {
5
+ type: 'kwd',
6
+ match: /@\w+/g
7
+ },
8
+ {
9
+ type: 'class',
10
+ match: /{[\w\s|<>,.@\[\]]+}/g
11
+ },
12
+ {
13
+ type: 'var',
14
+ match: /\[[\w\s="']+\]/g
15
+ },
16
+ ...todo
17
+ ];
18
+ export let type = 'cmnt';
@@ -0,0 +1,20 @@
1
+ export default [
2
+ {
3
+ type: 'var',
4
+ match: /("|')?[a-zA-Z]\w*\1(?=\s*:)/g
5
+ },
6
+ {
7
+ expand: 'str'
8
+ },
9
+ {
10
+ expand: 'num'
11
+ },
12
+ {
13
+ type: 'num',
14
+ match: /\bnull\b/g
15
+ },
16
+ {
17
+ type: 'bool',
18
+ match: /\b(true|false)\b/g
19
+ }
20
+ ]
@@ -0,0 +1,34 @@
1
+ import md from './md.js'
2
+ import { detectLanguage } from '../detect.js'
3
+
4
+ export default [
5
+ {
6
+ type: 'insert',
7
+ match: /(leanpub-start-insert)((?!leanpub-end-insert)[^])*(leanpub-end-insert)?/g,
8
+ sub: [
9
+ {
10
+ type: 'insert',
11
+ match: /leanpub-(start|end)-insert/g
12
+ },
13
+ {
14
+ match: /(?!leanpub-start-insert)((?!leanpub-end-insert)[^])*/g,
15
+ sub: detectLanguage
16
+ }
17
+ ]
18
+ },
19
+ {
20
+ type: 'deleted',
21
+ match: /(leanpub-start-delete)((?!leanpub-end-delete)[^])*(leanpub-end-delete)?/g,
22
+ sub: [
23
+ {
24
+ type: 'deleted',
25
+ match: /leanpub-(start|end)-delete/g
26
+ },
27
+ {
28
+ match: /(?!leanpub-start-delete)((?!leanpub-end-delete)[^])*/g,
29
+ sub: detectLanguage
30
+ }
31
+ ]
32
+ },
33
+ ...md
34
+ ]
@@ -0,0 +1,28 @@
1
+ export default [
2
+ {
3
+ type: 'cmnt',
4
+ match: /^#.*/gm
5
+ },
6
+ {
7
+ expand: 'strDouble'
8
+ },
9
+ {
10
+ expand: 'num'
11
+ },
12
+ {
13
+ type: 'err',
14
+ match: /\b(err(or)?|[a-z_-]*exception|warn|warning|failed|ko|invalid|not ?found|alert|fatal)\b/gi
15
+ },
16
+ {
17
+ type: 'num',
18
+ match: /\b(null|undefined)\b/gi
19
+ },
20
+ {
21
+ type: 'bool',
22
+ match: /\b(false|true|yes|no)\b/gi
23
+ },
24
+ {
25
+ type: 'oper',
26
+ match: /\.|,/g
27
+ }
28
+ ]
@@ -0,0 +1,28 @@
1
+ export default [
2
+ {
3
+ match: /^#!.*|--(\[(=*)\[((?!--\]\2\])[^])*--\]\2\]|.*)/g,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ expand: 'str'
8
+ },
9
+ {
10
+ type: 'kwd',
11
+ match: /\b(and|break|do|else|elseif|end|for|function|if|in|local|not|or|repeat|return|then|until|while)\b/g
12
+ },
13
+ {
14
+ type: 'bool',
15
+ match: /\b(true|false|nil)\b/g
16
+ },
17
+ {
18
+ type: 'oper',
19
+ match: /[+*/%^#=~<>:,.-]+/g
20
+ },
21
+ {
22
+ expand: 'num'
23
+ },
24
+ {
25
+ type: 'func',
26
+ match: /[a-z_]+(?=\s*[({])/g
27
+ }
28
+ ]
@@ -0,0 +1,36 @@
1
+ export default [
2
+ {
3
+ match: /^\s*#.*/gm,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ expand: 'str'
8
+ },
9
+ {
10
+ type: 'oper',
11
+ match: /[${}()]+/g
12
+ },
13
+ {
14
+ type: 'class',
15
+ match: /.PHONY:/gm
16
+ },
17
+ {
18
+ type: 'section',
19
+ match: /^[\w.]+:/gm
20
+ },
21
+ {
22
+ type: 'kwd',
23
+ match: /\b(ifneq|endif)\b/g
24
+ },
25
+ {
26
+ expand: 'num'
27
+ },
28
+ {
29
+ type: 'var',
30
+ match: /[A-Z_]+(?=\s*=)/g
31
+ },
32
+ {
33
+ match: /^.*$/gm,
34
+ sub: 'bash'
35
+ }
36
+ ]
@@ -0,0 +1,48 @@
1
+ import { detectLanguage } from '../detect.js'
2
+
3
+ export default [
4
+ {
5
+ type: 'cmnt',
6
+ match: /^>.*|(=|-)\1+/gm
7
+ },
8
+ {
9
+ type: 'class',
10
+ match: /\*\*((?!\*\*).)*\*\*/g
11
+ },
12
+ {
13
+ match: /```((?!```)[^])*\n```/g,
14
+ sub: code => ({
15
+ type: 'kwd',
16
+ sub: [
17
+ {
18
+ match: /\n[^]*(?=```)/g,
19
+ sub: code.split('\n')[0].slice(3) || detectLanguage(code)
20
+ }
21
+ ]
22
+ })
23
+ },
24
+ {
25
+ type: 'str',
26
+ match: /`[^`]*`/g
27
+ },
28
+ {
29
+ type: 'var',
30
+ match: /~~((?!~~).)*~~/g
31
+ },
32
+ {
33
+ type: 'kwd',
34
+ match: /_[^_]*_|\*[^*]*\*/g
35
+ },
36
+ {
37
+ type: 'kwd',
38
+ match: /^\s*(\*|\d+\.)\s/gm
39
+ },
40
+ {
41
+ type: 'oper',
42
+ match: /\[[^\]]*]/g
43
+ },
44
+ {
45
+ type: 'func',
46
+ match: /\([^)]*\)/g
47
+ }
48
+ ]
@@ -0,0 +1,25 @@
1
+ export default [
2
+ {
3
+ match: /#.*/g,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ type: 'str',
8
+ match: /(["'])(\\[^]|(?!\1)[^])*\1?/g
9
+ },
10
+ {
11
+ expand: 'num'
12
+ },
13
+ {
14
+ type: 'kwd',
15
+ match: /\b(any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while|not|and|or|xor)\b/g
16
+ },
17
+ {
18
+ type: 'oper',
19
+ match: /[-+*/%~!&<>|=?,]+/g
20
+ },
21
+ {
22
+ type: 'func',
23
+ match: /[a-z_]+(?=\s*\()/g
24
+ }
25
+ ]
@@ -0,0 +1,5 @@
1
+ export default [
2
+ {
3
+ expand: 'strDouble'
4
+ }
5
+ ]
@@ -0,0 +1,52 @@
1
+ export default [
2
+ {
3
+ match: /#.*/g,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ match: /("""|''')(\\[^]|(?!\1)[^])*\1?/g,
8
+ sub: 'todo'
9
+ },
10
+ {
11
+ type: 'str',
12
+ match: /f("|')(\\[^]|(?!\1).)*\1?|f((["'])\4\4)(\\[^]|(?!\3)[^])*\3?/gi,
13
+ sub: [
14
+ {
15
+ type: 'var',
16
+ match: /{[^{}]*}/g,
17
+ sub: [
18
+ {
19
+ match: /(?!^{)[^]*(?=}$)/g,
20
+ sub: 'py'
21
+ }
22
+ ]
23
+ }
24
+ ]
25
+ },
26
+ {
27
+ expand: 'str'
28
+ },
29
+ {
30
+ type: 'kwd',
31
+ match: /\b(and|as|assert|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|raise|return|try|while|with|yield)\b/g
32
+ },
33
+ {
34
+ type: 'bool',
35
+ match: /\b(False|True|None)\b/g
36
+ },
37
+ {
38
+ expand: 'num'
39
+ },
40
+ {
41
+ type: 'func',
42
+ match: /[a-z_]+(?=\s*\()/g
43
+ },
44
+ {
45
+ type: 'oper',
46
+ match: /[-/*+<>,=!&|^%]+/g
47
+ },
48
+ {
49
+ type: 'class',
50
+ match: /\b[A-Z]\w*\b/g
51
+ }
52
+ ]
@@ -0,0 +1,19 @@
1
+ export default [
2
+ {
3
+ match: /^(?!\/).*/gm,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ type: 'num',
8
+ match: /\[((?!\])[^\\]|\\.)*\]/g
9
+ },
10
+ {
11
+ type: 'kwd',
12
+ match: /\||\^|\$|\\.|\w+($|\r|\n)/g
13
+ },
14
+ {
15
+ type: 'var',
16
+ match: /\*|\+|\{\d+,\d+\}/g
17
+ }
18
+ ];
19
+ export let type = 'oper';
@@ -0,0 +1,28 @@
1
+ export default [
2
+ {
3
+ match: /\/\/.*\n?|\/\*((?!\*\/)[^])*(\*\/)?/g,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ expand: 'str'
8
+ },
9
+ {
10
+ expand: 'num'
11
+ },
12
+ {
13
+ type: 'kwd',
14
+ match: /\b(as|break|const|continue|crate|else|enum|extern|false|fn|for|if|impl|in|let|loop|match|mod|move|mut|pub|ref|return|self|Self|static|struct|super|trait|true|type|unsafe|use|where|while|async|await|dyn|abstract|become|box|do|final|macro|override|priv|typeof|unsized|virtual|yield|try)\b/g
15
+ },
16
+ {
17
+ type: 'oper',
18
+ match: /[/*+:?&|%^~=!,<>.^-]+/g
19
+ },
20
+ {
21
+ type: 'class',
22
+ match: /\b[A-Z]\w*\b/g
23
+ },
24
+ {
25
+ type: 'func',
26
+ match: /[a-zA-Z_][\w_]*(?=\s*!?\s*\()/g
27
+ }
28
+ ]
@@ -0,0 +1,33 @@
1
+ export default [
2
+ {
3
+ match: /--.*\n?|\/\*((?!\*\/)[^])*(\*\/)?/g,
4
+ sub: 'todo'
5
+ },
6
+ {
7
+ expand: 'str'
8
+ },
9
+ {
10
+ type: 'func',
11
+ match: /\b(AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/g
12
+ },
13
+ {
14
+ type: 'kwd',
15
+ match: /\b(ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|kwdS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/g
16
+ },
17
+ {
18
+ type: 'num',
19
+ match: /\.?\d[\d.oxa-fA-F-]*|\bNULL\b/g
20
+ },
21
+ {
22
+ type: 'bool',
23
+ match: /\b(TRUE|FALSE)\b/g
24
+ },
25
+ {
26
+ type: 'oper',
27
+ match: /[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|IN|ILIKE|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/g
28
+ },
29
+ {
30
+ type: 'var',
31
+ match: /@\S+/g
32
+ }
33
+ ]
@@ -0,0 +1,19 @@
1
+ export default [
2
+ {
3
+ type: 'err',
4
+ match: /\b(TODO|FIXME|DEBUG|OPTIMIZE|WARNING|XXX|BUG)\b/g
5
+ },
6
+ {
7
+ type: 'class',
8
+ match: /\bIDEA\b/g
9
+ },
10
+ {
11
+ type: 'insert',
12
+ match: /\b(CHANGED|FIX|CHANGE)\b/g
13
+ },
14
+ {
15
+ type: 'oper',
16
+ match: /\bQUESTION\b/g
17
+ }
18
+ ];
19
+ export let type = 'cmnt';