@lvce-editor/shared-process 0.18.7 → 0.18.9

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 (191) hide show
  1. package/package.json +4 -4
  2. package/src/parts/ExportStatic/ExportStatic.js +6 -6
  3. package/src/parts/ExtensionManagement/ExtensionManagementColorTheme.js +1 -6
  4. package/src/parts/ExtensionManagement/ExtensionManagementIconTheme.js +1 -6
  5. package/src/parts/Platform/Platform.js +3 -3
  6. package/src/parts/PlatformPaths/PlatformPaths.js +1 -1
  7. package/extensions/builtin.language-basics-bat/README.md +0 -14
  8. package/extensions/builtin.language-basics-bat/extension.json +0 -12
  9. package/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -33
  10. package/extensions/builtin.language-basics-c/README.md +0 -14
  11. package/extensions/builtin.language-basics-c/extension.json +0 -12
  12. package/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -211
  13. package/extensions/builtin.language-basics-coffeescript/README.md +0 -14
  14. package/extensions/builtin.language-basics-coffeescript/extension.json +0 -12
  15. package/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -257
  16. package/extensions/builtin.language-basics-cpp/README.md +0 -14
  17. package/extensions/builtin.language-basics-cpp/extension.json +0 -32
  18. package/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -5
  19. package/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -317
  20. package/extensions/builtin.language-basics-cson/README.md +0 -16
  21. package/extensions/builtin.language-basics-cson/extension.json +0 -13
  22. package/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -21
  23. package/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -207
  24. package/extensions/builtin.language-basics-css/README.md +0 -16
  25. package/extensions/builtin.language-basics-css/extension.json +0 -13
  26. package/extensions/builtin.language-basics-css/languageConfiguration.json +0 -21
  27. package/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -659
  28. package/extensions/builtin.language-basics-dart/README.md +0 -14
  29. package/extensions/builtin.language-basics-dart/extension.json +0 -12
  30. package/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -133
  31. package/extensions/builtin.language-basics-desktop/README.md +0 -14
  32. package/extensions/builtin.language-basics-desktop/extension.json +0 -12
  33. package/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -166
  34. package/extensions/builtin.language-basics-docker/README.md +0 -14
  35. package/extensions/builtin.language-basics-docker/extension.json +0 -24
  36. package/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -131
  37. package/extensions/builtin.language-basics-dotenv/README.md +0 -14
  38. package/extensions/builtin.language-basics-dotenv/extension.json +0 -26
  39. package/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -301
  40. package/extensions/builtin.language-basics-editorconfig/README.md +0 -14
  41. package/extensions/builtin.language-basics-editorconfig/extension.json +0 -12
  42. package/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -173
  43. package/extensions/builtin.language-basics-elixir/README.md +0 -14
  44. package/extensions/builtin.language-basics-elixir/extension.json +0 -12
  45. package/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -150
  46. package/extensions/builtin.language-basics-elm/README.md +0 -14
  47. package/extensions/builtin.language-basics-elm/extension.json +0 -12
  48. package/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -298
  49. package/extensions/builtin.language-basics-gitattributes/README.md +0 -14
  50. package/extensions/builtin.language-basics-gitattributes/extension.json +0 -12
  51. package/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -159
  52. package/extensions/builtin.language-basics-gn/README.md +0 -14
  53. package/extensions/builtin.language-basics-gn/extension.json +0 -12
  54. package/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -178
  55. package/extensions/builtin.language-basics-go/README.md +0 -14
  56. package/extensions/builtin.language-basics-go/extension.json +0 -13
  57. package/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -295
  58. package/extensions/builtin.language-basics-graphql/README.md +0 -14
  59. package/extensions/builtin.language-basics-graphql/extension.json +0 -12
  60. package/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -432
  61. package/extensions/builtin.language-basics-html/README.md +0 -14
  62. package/extensions/builtin.language-basics-html/extension.json +0 -13
  63. package/extensions/builtin.language-basics-html/languageConfiguration.json +0 -66
  64. package/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -551
  65. package/extensions/builtin.language-basics-java/README.md +0 -14
  66. package/extensions/builtin.language-basics-java/extension.json +0 -13
  67. package/extensions/builtin.language-basics-java/languageConfiguration.json +0 -31
  68. package/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -253
  69. package/extensions/builtin.language-basics-javascript/README.md +0 -14
  70. package/extensions/builtin.language-basics-javascript/extension.json +0 -14
  71. package/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -40
  72. package/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -614
  73. package/extensions/builtin.language-basics-json/README.md +0 -14
  74. package/extensions/builtin.language-basics-json/extension.json +0 -60
  75. package/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -356
  76. package/extensions/builtin.language-basics-jsx/README.md +0 -14
  77. package/extensions/builtin.language-basics-jsx/extension.json +0 -13
  78. package/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -661
  79. package/extensions/builtin.language-basics-julia/README.md +0 -18
  80. package/extensions/builtin.language-basics-julia/extension.json +0 -12
  81. package/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -181
  82. package/extensions/builtin.language-basics-kotlin/README.md +0 -14
  83. package/extensions/builtin.language-basics-kotlin/extension.json +0 -12
  84. package/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -274
  85. package/extensions/builtin.language-basics-less/LICENSE +0 -21
  86. package/extensions/builtin.language-basics-less/README.md +0 -14
  87. package/extensions/builtin.language-basics-less/extension.json +0 -12
  88. package/extensions/builtin.language-basics-less/languageConfiguration.json +0 -17
  89. package/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -609
  90. package/extensions/builtin.language-basics-markdown/README.md +0 -14
  91. package/extensions/builtin.language-basics-markdown/extension.json +0 -12
  92. package/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -441
  93. package/extensions/builtin.language-basics-mdx/README.md +0 -14
  94. package/extensions/builtin.language-basics-mdx/extension.json +0 -12
  95. package/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -395
  96. package/extensions/builtin.language-basics-nvmrc/README.md +0 -14
  97. package/extensions/builtin.language-basics-nvmrc/extension.json +0 -12
  98. package/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -30
  99. package/extensions/builtin.language-basics-perl/README.md +0 -14
  100. package/extensions/builtin.language-basics-perl/extension.json +0 -13
  101. package/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -200
  102. package/extensions/builtin.language-basics-plaintext/README.md +0 -14
  103. package/extensions/builtin.language-basics-plaintext/extension.json +0 -12
  104. package/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -28
  105. package/extensions/builtin.language-basics-powershell/README.md +0 -14
  106. package/extensions/builtin.language-basics-powershell/extension.json +0 -12
  107. package/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -141
  108. package/extensions/builtin.language-basics-python/README.md +0 -14
  109. package/extensions/builtin.language-basics-python/extension.json +0 -15
  110. package/extensions/builtin.language-basics-python/languageConfiguration.json +0 -5
  111. package/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -304
  112. package/extensions/builtin.language-basics-r/README.md +0 -14
  113. package/extensions/builtin.language-basics-r/extension.json +0 -12
  114. package/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -71
  115. package/extensions/builtin.language-basics-ruby/README.md +0 -14
  116. package/extensions/builtin.language-basics-ruby/extension.json +0 -48
  117. package/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -248
  118. package/extensions/builtin.language-basics-rust/LICENSE +0 -21
  119. package/extensions/builtin.language-basics-rust/README.md +0 -14
  120. package/extensions/builtin.language-basics-rust/extension.json +0 -12
  121. package/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -17
  122. package/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -158
  123. package/extensions/builtin.language-basics-scss/README.md +0 -14
  124. package/extensions/builtin.language-basics-scss/extension.json +0 -12
  125. package/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -28
  126. package/extensions/builtin.language-basics-shellscript/README.md +0 -14
  127. package/extensions/builtin.language-basics-shellscript/extension.json +0 -56
  128. package/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -569
  129. package/extensions/builtin.language-basics-svelte/README.md +0 -14
  130. package/extensions/builtin.language-basics-svelte/extension.json +0 -13
  131. package/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -428
  132. package/extensions/builtin.language-basics-toml/README.md +0 -14
  133. package/extensions/builtin.language-basics-toml/extension.json +0 -14
  134. package/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -299
  135. package/extensions/builtin.language-basics-typescript/README.md +0 -14
  136. package/extensions/builtin.language-basics-typescript/extension.json +0 -17
  137. package/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -1602
  138. package/extensions/builtin.language-basics-vue/README.md +0 -14
  139. package/extensions/builtin.language-basics-vue/extension.json +0 -13
  140. package/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -327
  141. package/extensions/builtin.language-basics-wgsl/README.md +0 -16
  142. package/extensions/builtin.language-basics-wgsl/extension.json +0 -13
  143. package/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -21
  144. package/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -226
  145. package/extensions/builtin.language-basics-xml/README.md +0 -14
  146. package/extensions/builtin.language-basics-xml/extension.json +0 -85
  147. package/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -328
  148. package/extensions/builtin.language-basics-yaml/README.md +0 -14
  149. package/extensions/builtin.language-basics-yaml/extension.json +0 -13
  150. package/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -405
  151. package/extensions/builtin.theme-atom-one-dark/README.md +0 -11
  152. package/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -216
  153. package/extensions/builtin.theme-atom-one-dark/extension.json +0 -12
  154. package/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  155. package/extensions/builtin.theme-ayu/README.md +0 -11
  156. package/extensions/builtin.theme-ayu/color-theme.json +0 -217
  157. package/extensions/builtin.theme-ayu/extension.json +0 -12
  158. package/extensions/builtin.theme-cobalt2/README.md +0 -20
  159. package/extensions/builtin.theme-cobalt2/color-theme.json +0 -202
  160. package/extensions/builtin.theme-cobalt2/extension.json +0 -13
  161. package/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  162. package/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  163. package/extensions/builtin.theme-gruvbox/README.md +0 -20
  164. package/extensions/builtin.theme-gruvbox/color-theme.json +0 -217
  165. package/extensions/builtin.theme-gruvbox/extension.json +0 -12
  166. package/extensions/builtin.theme-high-contrast/README.md +0 -9
  167. package/extensions/builtin.theme-high-contrast/color-theme.json +0 -86
  168. package/extensions/builtin.theme-high-contrast/extension.json +0 -11
  169. package/extensions/builtin.theme-material/README.md +0 -9
  170. package/extensions/builtin.theme-material/color-theme.json +0 -183
  171. package/extensions/builtin.theme-material/extension.json +0 -12
  172. package/extensions/builtin.theme-monokai/README.md +0 -10
  173. package/extensions/builtin.theme-monokai/color-theme.json +0 -151
  174. package/extensions/builtin.theme-monokai/extension.json +0 -11
  175. package/extensions/builtin.theme-noctis-uva/README.md +0 -11
  176. package/extensions/builtin.theme-noctis-uva/color-theme.json +0 -204
  177. package/extensions/builtin.theme-noctis-uva/extension.json +0 -12
  178. package/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  179. package/extensions/builtin.theme-palenight/README.md +0 -11
  180. package/extensions/builtin.theme-palenight/color-theme.json +0 -209
  181. package/extensions/builtin.theme-palenight/extension.json +0 -12
  182. package/extensions/builtin.theme-palenight/images/demo.png +0 -0
  183. package/extensions/builtin.theme-slime/README.md +0 -5
  184. package/extensions/builtin.theme-slime/color-theme.json +0 -290
  185. package/extensions/builtin.theme-slime/extension.json +0 -13
  186. package/extensions/builtin.theme-slime/icon.png +0 -0
  187. package/extensions/builtin.vscode-icons/README.md +0 -20
  188. package/extensions/builtin.vscode-icons/extension.json +0 -13
  189. package/extensions/builtin.vscode-icons/icon-theme.json +0 -3815
  190. package/extensions/builtin.vscode-icons/icon.png +0 -0
  191. package/src/parts/Error/Error.js +0 -30
@@ -1,614 +0,0 @@
1
- /**
2
- * @enum number
3
- */
4
- const State = {
5
- None: 0,
6
- TopLevelContent: 1,
7
- AfterOpeningAngleBracket: 2,
8
- InsideOpeningTag: 3,
9
- InsideOpeningTagAndHasSeenWhitespace: 4,
10
- AfterClosingTagAngleBrackets: 5,
11
- AfterClosingTagName: 6,
12
- AfterAttributeName: 7,
13
- AfterAttributeEqualSign: 8,
14
- InsideAttributeDoubleQuote: 9,
15
- InsideBlockComment: 10,
16
- InsideString: 11,
17
- AfterKeyword: 12,
18
- Keyword: 13,
19
- InsideLineComment: 14,
20
- InsideSingleQuoteString: 15,
21
- InsideDoubleQuoteString: 16,
22
- InsideBacktickString: 17,
23
- AfterPropertyDot: 18,
24
- AfterKeywordClass: 19,
25
- AfterKeywordVariableDeclaration: 20,
26
- }
27
-
28
- /**
29
- * @enum number
30
- */
31
- export const TokenType = {
32
- None: 99999999,
33
- Numeric: 30,
34
- String: 50,
35
- Whitespace: 777,
36
- Comment: 60,
37
- Text: 117,
38
- PunctuationTag: 228,
39
- TagName: 118,
40
- AttributeName: 119,
41
- Punctuation: 10,
42
- Error: 141,
43
- PunctuationString: 11,
44
- NewLine: 771,
45
- Keyword: 951,
46
- VariableName: 952,
47
- LanguageConstant: 13,
48
- Regex: 14,
49
- KeywordImport: 215,
50
- KeywordControl: 881,
51
- KeywordModifier: 882,
52
- KeywordReturn: 883,
53
- KeywordNew: 884,
54
- FunctionName: 885,
55
- KeywordThis: 886,
56
- KeywordOperator: 887,
57
- KeywordFunction: 889,
58
- Class: 890,
59
- KeywordVoid: 891,
60
- }
61
-
62
- export const TokenMap = {
63
- [TokenType.None]: 'None',
64
- [TokenType.Numeric]: 'Numeric',
65
- [TokenType.String]: 'String',
66
- [TokenType.Whitespace]: 'Whitespace',
67
- [TokenType.Comment]: 'Comment',
68
- [TokenType.Text]: 'Text',
69
- [TokenType.PunctuationTag]: 'PunctuationTag',
70
- [TokenType.TagName]: 'TagName',
71
- [TokenType.AttributeName]: 'AttributeName',
72
- [TokenType.Punctuation]: 'Punctuation',
73
- [TokenType.Error]: 'Error',
74
- [TokenType.PunctuationString]: 'PunctuationString',
75
- [TokenType.NewLine]: 'NewLine',
76
- [TokenType.Keyword]: 'Keyword',
77
- [TokenType.VariableName]: 'VariableName',
78
- [TokenType.LanguageConstant]: 'LanguageConstant',
79
- [TokenType.Regex]: 'Regex',
80
- [TokenType.KeywordImport]: 'KeywordImport',
81
- [TokenType.KeywordControl]: 'KeywordControl',
82
- [TokenType.KeywordModifier]: 'KeywordModifier',
83
- [TokenType.KeywordReturn]: 'KeywordReturn',
84
- [TokenType.KeywordNew]: 'KeywordNew',
85
- [TokenType.FunctionName]: 'Function',
86
- [TokenType.KeywordThis]: 'KeywordThis',
87
- [TokenType.KeywordOperator]: 'KeywordOperator',
88
- [TokenType.KeywordFunction]: 'KeywordFunction',
89
- [TokenType.KeywordVoid]: 'KeywordVoid',
90
- [TokenType.Class]: 'Class',
91
- }
92
-
93
- const RE_KEYWORD =
94
- /^(?:as|assert|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|if|implements|import|in|Infinity|instanceof|interface|let|new|null|of|package|private|protected|public|return|super|switch|static|this|throw|try|true|typeof|undefined|var|void|while|with|yield)\b/
95
-
96
- const RE_CURLY_OPEN = /^\{/
97
- const RE_CURLY_CLOSE = /^\}/
98
- const RE_SQUARE_OPEN = /^\[/
99
- const RE_SQUARE_CLOSE = /^\]/
100
- const RE_COMMA = /^,/
101
- const RE_COLON = /^:/
102
- const RE_NUMERIC =
103
- /^((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b/
104
-
105
- const RE_NUMERIC_OCTAL = /0(?:o|O)?[0-7][0-7_]*(n)?\b/
106
- const RE_LINE_COMMENT_START = /^\/\//
107
- const RE_LINE_COMMENT_CONTENT = /^[^\n]+/
108
- const RE_NEWLINE_WHITESPACE = /^\n\s*/
109
- const RE_BLOCK_COMMENT_START = /^\/\*/
110
- const RE_BLOCK_COMMENT_CONTENT = /^.+?(?=\*\/)/
111
- const RE_BLOCK_COMMENT_END = /^\*\//
112
- const RE_UNKNOWN_VALUE = /^[^\}\{\s,"]+/
113
- const RE_IMPORT = /^[a-zA-Z\.]+/
114
- const RE_SEMICOLON = /^;/
115
- const RE_VARIABLE_NAME = /^[a-zA-Z_$][a-zA-Z\d\_]*/
116
- const RE_LINE_COMMENT = /^\/\/[^\n]*/
117
- const RE_ROUND_OPEN = /^\(/
118
- const RE_ROUND_CLOSE = /^\)/
119
- const RE_DOT = /^\./
120
- const RE_EQUAL_SIGN = /^=/
121
- const RE_SINGLE_QUOTE = /^'/
122
- const RE_PUNCTUATION = /^[\(\)=\+\-><\.:;\{\}\[\]!,&\|\^\?\*%~]/
123
- const RE_SLASH = /^\//
124
- const RE_ANYTHING_UNTIL_END = /^.+/s
125
- const RE_WHITESPACE = /^\s+/
126
- const RE_QUOTE_SINGLE = /^'/
127
- const RE_QUOTE_DOUBLE = /^"/
128
- const RE_QUOTE_BACKTICK = /^`/
129
- const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^'\\]+/
130
- const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"\\]+/
131
- const RE_STRING_BACKTICK_QUOTE_CONTENT = /^[^`\\\$]+/
132
- const RE_STRING_ESCAPE = /^\\./
133
- const RE_SHEBANG = /^#!.*/
134
- const RE_FUNCTION_CALL_NAME =
135
- /^[\w\$]+(?=\s*(\(|\=\s*(?:async\s*)?function|\=\s*(?:async\s*)?\())/
136
-
137
- const RE_DECORATOR = /^@\w+/
138
- const RE_BACKSLASH = /^\\/
139
- const RE_DOLLAR_CURLY_OPEN = /^\$\{/
140
- const RE_DOLLAR = /^\$/
141
- const RE_ANYTHING = /^.+/u
142
-
143
- // copied from https://github.com/PrismJS/prism/blob/master/components/prism-javascript.js#L57
144
- const RE_REGEX =
145
- /^((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/
146
-
147
- const RE_VARIABLE_NAME_SPECIAL = /\p{L}/u
148
- const RE_VARIABLE_NAME_SPECIAL_2 = /./u
149
- const RE_BUILTIN_CLASS =
150
- /^(?:Array|Object|Promise|ArrayBuffer|URL|URLSearchParams|WebSocket|FileSystemHandle|Function|StorageEvent|MessageEvent|MessageChannel|Int32Array|Boolean|String|Error|Set|RegExp|Map|WeakMap|RangeError|Date|Headers|Response|Request|Buffer|MessagePort|FileHandle|X509Certificate|Blob|HTMLElement|HTMLFormElement|Symbol|WeakSet|DataView)\b/
151
-
152
- const RE_PROPERTY_NAME = /^[a-z]\w*(?=\s*\:)/
153
- const RE_PROPERTY_NAME_FUNCTION = /^[a-z]\w*(?=\s*\()/
154
-
155
- export const initialLineState = {
156
- state: State.TopLevelContent,
157
- /**
158
- * @type {any[]}
159
- */
160
- stack: [],
161
- }
162
-
163
- export const hasArrayReturn = true
164
-
165
- /**
166
- *
167
- * @param {string} line
168
- * @param {*} lineState
169
- * @returns
170
- */
171
- export const tokenizeLine = (line, lineState) => {
172
- let next = null
173
- let index = 0
174
- let tokens = []
175
- let token = TokenType.None
176
- let state = lineState.state
177
- let stack = [...lineState.stack]
178
- while (index < line.length) {
179
- const part = line.slice(index)
180
- switch (state) {
181
- case State.TopLevelContent:
182
- if ((next = part.match(RE_WHITESPACE))) {
183
- token = TokenType.Whitespace
184
- state = State.TopLevelContent
185
- } else if ((next = part.match(RE_PROPERTY_NAME_FUNCTION))) {
186
- switch (next[0]) {
187
- case 'function':
188
- token = TokenType.KeywordFunction
189
- state = State.TopLevelContent
190
- break
191
- case 'async':
192
- token = TokenType.KeywordModifier
193
- state = State.TopLevelContent
194
- break
195
- case 'await':
196
- token = TokenType.KeywordModifier
197
- state = State.TopLevelContent
198
- break
199
- case 'as':
200
- case 'switch':
201
- case 'default':
202
- case 'case':
203
- case 'else':
204
- case 'if':
205
- case 'break':
206
- case 'throw':
207
- case 'for':
208
- case 'try':
209
- case 'catch':
210
- case 'finally':
211
- case 'continue':
212
- case 'while':
213
- token = TokenType.KeywordControl
214
- state = State.TopLevelContent
215
- break
216
- case 'return':
217
- token = TokenType.KeywordReturn
218
- state = State.TopLevelContent
219
- break
220
- case 'new':
221
- token = TokenType.KeywordNew
222
- state = State.TopLevelContent
223
- break
224
- case 'this':
225
- token = TokenType.KeywordThis
226
- state = State.TopLevelContent
227
- break
228
- case 'import':
229
- case 'export':
230
- case 'from':
231
- token = TokenType.KeywordImport
232
- state = State.TopLevelContent
233
- break
234
- case 'constructor':
235
- case 'super':
236
- token = TokenType.Keyword
237
- state = State.TopLevelContent
238
- break
239
- default:
240
- token = TokenType.FunctionName
241
- state = State.TopLevelContent
242
- break
243
- }
244
- } else if ((next = part.match(RE_PROPERTY_NAME))) {
245
- token = TokenType.VariableName
246
- state = State.TopLevelContent
247
- if (part === 'default:') {
248
- token = TokenType.KeywordControl
249
- }
250
- } else if ((next = part.match(RE_KEYWORD))) {
251
- switch (next[0]) {
252
- case 'true':
253
- case 'false':
254
- case 'null':
255
- case 'undefined':
256
- token = TokenType.LanguageConstant
257
- state = State.TopLevelContent
258
- break
259
- case 'import':
260
- case 'export':
261
- case 'from':
262
- token = TokenType.KeywordImport
263
- state = State.TopLevelContent
264
- break
265
- case 'as':
266
- case 'switch':
267
- case 'default':
268
- case 'case':
269
- case 'else':
270
- case 'if':
271
- case 'break':
272
- case 'throw':
273
- case 'for':
274
- case 'try':
275
- case 'catch':
276
- case 'finally':
277
- case 'continue':
278
- case 'while':
279
- token = TokenType.KeywordControl
280
- state = State.TopLevelContent
281
- break
282
- case 'assert':
283
- if (line.includes('import')) {
284
- token = TokenType.KeywordControl
285
- } else {
286
- token = TokenType.FunctionName
287
- }
288
- state = State.TopLevelContent
289
- break
290
- case 'async':
291
- case 'await':
292
- token = TokenType.KeywordModifier
293
- state = State.TopLevelContent
294
- break
295
- case 'return':
296
- token = TokenType.KeywordReturn
297
- state = State.TopLevelContent
298
- break
299
- case 'new':
300
- token = TokenType.KeywordNew
301
- state = State.TopLevelContent
302
- break
303
- case 'this':
304
- token = TokenType.KeywordThis
305
- state = State.TopLevelContent
306
- break
307
- case 'delete':
308
- case 'typeof':
309
- case 'in':
310
- case 'instanceof':
311
- token = TokenType.KeywordOperator
312
- state = State.TopLevelContent
313
- break
314
- case 'function':
315
- token = TokenType.KeywordFunction
316
- state = State.TopLevelContent
317
- break
318
- case 'Infinity':
319
- token = TokenType.Numeric
320
- state = State.TopLevelContent
321
- break
322
- case 'of':
323
- token = TokenType.KeywordOperator
324
- state = State.TopLevelContent
325
- break
326
- case 'class':
327
- case 'extends':
328
- token = TokenType.Keyword
329
- state = State.AfterKeywordClass
330
- break
331
- case 'var':
332
- case 'let':
333
- case 'const':
334
- token = TokenType.Keyword
335
- state = State.AfterKeywordVariableDeclaration
336
- break
337
- case 'void':
338
- token = TokenType.KeywordVoid
339
- state = State.TopLevelContent
340
- break
341
- default:
342
- token = TokenType.Keyword
343
- state = State.TopLevelContent
344
- break
345
- }
346
- } else if ((next = part.match(RE_FUNCTION_CALL_NAME))) {
347
- token = TokenType.FunctionName
348
- state = State.TopLevelContent
349
- } else if ((next = part.match(RE_BUILTIN_CLASS))) {
350
- token = TokenType.Class
351
- state = State.TopLevelContent
352
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
353
- token = TokenType.VariableName
354
- state = State.TopLevelContent
355
- } else if ((next = part.match(RE_NUMERIC))) {
356
- token = TokenType.Numeric
357
- state = State.TopLevelContent
358
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
359
- token = TokenType.Punctuation
360
- state = stack.pop() || State.TopLevelContent
361
- } else if ((next = part.match(RE_CURLY_OPEN))) {
362
- token = TokenType.Punctuation
363
- stack.push(State.TopLevelContent)
364
- state = State.TopLevelContent
365
- } else if ((next = part.match(RE_PUNCTUATION))) {
366
- token = TokenType.Punctuation
367
- if (next[0] === '.') {
368
- state = State.AfterPropertyDot
369
- } else if (next[0] === '}') {
370
- state = stack.pop() || State.TopLevelContent
371
- } else {
372
- state = State.TopLevelContent
373
- }
374
- } else if ((next = part.match(RE_SLASH))) {
375
- if ((next = part.match(RE_BLOCK_COMMENT_START))) {
376
- token = TokenType.Comment
377
- state = State.InsideBlockComment
378
- } else if ((next = part.match(RE_LINE_COMMENT_START))) {
379
- token = TokenType.Comment
380
- state = State.InsideLineComment
381
- } else if ((next = part.match(RE_REGEX))) {
382
- token = TokenType.Regex
383
- state = State.TopLevelContent
384
- } else {
385
- next = part.match(RE_SLASH)
386
- token = TokenType.Punctuation
387
- state = State.TopLevelContent
388
- }
389
- } else if ((next = part.match(RE_QUOTE_SINGLE))) {
390
- token = TokenType.Punctuation
391
- state = State.InsideSingleQuoteString
392
- } else if ((next = part.match(RE_QUOTE_DOUBLE))) {
393
- token = TokenType.Punctuation
394
- state = State.InsideDoubleQuoteString
395
- } else if ((next = part.match(RE_QUOTE_BACKTICK))) {
396
- token = TokenType.Punctuation
397
- state = State.InsideBacktickString
398
- } else if ((next = part.match(RE_NUMERIC_OCTAL))) {
399
- token = TokenType.Numeric
400
- state = State.TopLevelContent
401
- } else if ((next = part.match(RE_SHEBANG))) {
402
- token = TokenType.Comment
403
- state = State.TopLevelContent
404
- } else if ((next = part.match(RE_DECORATOR))) {
405
- token = TokenType.VariableName
406
- state = State.TopLevelContent
407
- } else if ((next = part.match(RE_VARIABLE_NAME_SPECIAL))) {
408
- token = TokenType.VariableName
409
- state = State.TopLevelContent
410
- } else if ((next = part.match(RE_ANYTHING))) {
411
- token = TokenType.Text
412
- state = State.TopLevelContent
413
- } else {
414
- throw new Error('no')
415
- }
416
- break
417
- case State.Keyword:
418
- const keyword = next[0]
419
- switch (keyword) {
420
- case 'true':
421
- case 'false':
422
- break
423
- default:
424
- token = TokenType.Keyword
425
- state = State.TopLevelContent
426
- break
427
- }
428
- break
429
- case State.InsideLineComment:
430
- if ((next = part.match(RE_ANYTHING_UNTIL_END))) {
431
- token = TokenType.Comment
432
- state = State.TopLevelContent
433
- } else {
434
- throw new Error('no')
435
- }
436
- break
437
- case State.InsideBlockComment:
438
- if ((next = part.match(RE_BLOCK_COMMENT_END))) {
439
- token = TokenType.Comment
440
- state = State.TopLevelContent
441
- } else if ((next = part.match(RE_BLOCK_COMMENT_CONTENT))) {
442
- token = TokenType.Comment
443
- state = State.InsideBlockComment
444
- } else if ((next = part.match(RE_ANYTHING_UNTIL_END))) {
445
- token = TokenType.Comment
446
- state = State.InsideBlockComment
447
- } else {
448
- throw new Error('no')
449
- }
450
- break
451
- case State.InsideSingleQuoteString:
452
- if ((next = part.match(RE_QUOTE_SINGLE))) {
453
- token = TokenType.Punctuation
454
- state = State.TopLevelContent
455
- } else if ((next = part.match(RE_STRING_SINGLE_QUOTE_CONTENT))) {
456
- token = TokenType.String
457
- state = State.InsideSingleQuoteString
458
- } else if ((next = part.match(RE_STRING_ESCAPE))) {
459
- token = TokenType.String
460
- state = State.InsideSingleQuoteString
461
- } else if ((next = part.match(RE_BACKSLASH))) {
462
- token = TokenType.String
463
- state = State.InsideSingleQuoteString
464
- } else {
465
- part
466
- throw new Error('no')
467
- }
468
- break
469
- case State.InsideDoubleQuoteString:
470
- if ((next = part.match(RE_QUOTE_DOUBLE))) {
471
- token = TokenType.Punctuation
472
- state = State.TopLevelContent
473
- } else if ((next = part.match(RE_STRING_DOUBLE_QUOTE_CONTENT))) {
474
- token = TokenType.String
475
- state = State.InsideDoubleQuoteString
476
- } else if ((next = part.match(RE_STRING_ESCAPE))) {
477
- token = TokenType.String
478
- state = State.InsideDoubleQuoteString
479
- } else if ((next = part.match(RE_BACKSLASH))) {
480
- token = TokenType.String
481
- state = State.InsideDoubleQuoteString
482
- } else {
483
- throw new Error('no')
484
- }
485
- break
486
- case State.InsideBacktickString:
487
- if ((next = part.match(RE_QUOTE_BACKTICK))) {
488
- token = TokenType.Punctuation
489
- state = State.TopLevelContent
490
- } else if ((next = part.match(RE_STRING_BACKTICK_QUOTE_CONTENT))) {
491
- token = TokenType.String
492
- state = State.InsideBacktickString
493
- } else if ((next = part.match(RE_DOLLAR_CURLY_OPEN))) {
494
- token = TokenType.Punctuation
495
- state = State.TopLevelContent
496
- stack.push(State.InsideBacktickString)
497
- } else if ((next = part.match(RE_STRING_ESCAPE))) {
498
- token = TokenType.String
499
- state = State.InsideBacktickString
500
- } else if ((next = part.match(RE_BACKSLASH))) {
501
- token = TokenType.String
502
- state = State.InsideBacktickString
503
- } else if ((next = part.match(RE_DOLLAR))) {
504
- token = TokenType.String
505
- state = State.InsideBacktickString
506
- } else {
507
- throw new Error('no')
508
- }
509
- break
510
- case State.AfterPropertyDot:
511
- if ((next = part.match(RE_WHITESPACE))) {
512
- token = TokenType.Whitespace
513
- state = State.AfterPropertyDot
514
- } else if ((next = part.match(RE_FUNCTION_CALL_NAME))) {
515
- token = TokenType.FunctionName
516
- state = State.TopLevelContent
517
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
518
- token = TokenType.VariableName
519
- state = State.TopLevelContent
520
- } else if ((next = part.match(RE_LINE_COMMENT))) {
521
- token = TokenType.Comment
522
- state = State.InsideLineComment
523
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
524
- token = TokenType.Comment
525
- state = State.InsideBlockComment
526
- } else if ((next = part.match(RE_PUNCTUATION))) {
527
- token = TokenType.Punctuation
528
- state = State.TopLevelContent
529
- } else if ((next = part.match(RE_VARIABLE_NAME_SPECIAL_2))) {
530
- token = TokenType.VariableName
531
- state = State.TopLevelContent
532
- } else {
533
- throw new Error('no')
534
- }
535
- break
536
- case State.AfterKeywordClass:
537
- if ((next = part.match(RE_WHITESPACE))) {
538
- token = TokenType.Whitespace
539
- state = State.AfterKeywordClass
540
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
541
- token = TokenType.Class
542
- state = State.TopLevelContent
543
- } else if ((next = part.match(RE_LINE_COMMENT))) {
544
- token = TokenType.Comment
545
- state = State.TopLevelContent
546
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
547
- token = TokenType.Comment
548
- state = State.InsideBlockComment
549
- } else if ((next = part.match(RE_CURLY_OPEN))) {
550
- token = TokenType.Punctuation
551
- state = State.TopLevelContent
552
- } else if ((next = part.match(RE_PUNCTUATION))) {
553
- token = TokenType.Punctuation
554
- state = State.TopLevelContent
555
- } else if ((next = part.match(RE_ANYTHING))) {
556
- token = TokenType.Text
557
- state = State.TopLevelContent
558
- } else {
559
- throw new Error('no')
560
- }
561
- break
562
- case State.AfterKeywordVariableDeclaration:
563
- if ((next = part.match(RE_WHITESPACE))) {
564
- token = TokenType.Whitespace
565
- state = State.AfterKeywordVariableDeclaration
566
- } else if ((next = part.match(RE_FUNCTION_CALL_NAME))) {
567
- token = TokenType.FunctionName
568
- state = State.TopLevelContent
569
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
570
- token = TokenType.VariableName
571
- state = State.TopLevelContent
572
- } else if ((next = part.match(RE_CURLY_OPEN))) {
573
- token = TokenType.Punctuation
574
- state = State.TopLevelContent
575
- } else if ((next = part.match(RE_LINE_COMMENT))) {
576
- token = TokenType.Comment
577
- state = State.AfterKeywordVariableDeclaration
578
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
579
- stack.push(state)
580
- token = TokenType.Comment
581
- state = State.InsideBlockComment
582
- } else if ((next = part.match(RE_PUNCTUATION))) {
583
- token = TokenType.Punctuation
584
- state = State.TopLevelContent
585
- } else if ((next = part.match(RE_VARIABLE_NAME_SPECIAL))) {
586
- token = TokenType.VariableName
587
- state = State.TopLevelContent
588
- } else if ((next = part.match(RE_VARIABLE_NAME_SPECIAL_2))) {
589
- token = TokenType.VariableName
590
- state = State.TopLevelContent
591
- } else {
592
- throw new Error(`no`)
593
- }
594
- break
595
- default:
596
- state
597
- throw new Error('no')
598
- }
599
- const tokenLength = next[0].length
600
- index += tokenLength
601
- tokens.push(token, tokenLength)
602
- }
603
- if (state === State.InsideLineComment) {
604
- state = State.TopLevelContent
605
- }
606
- if (state === State.InsideSingleQuoteString && !line.endsWith('\\')) {
607
- state = State.TopLevelContent
608
- }
609
- return {
610
- state,
611
- tokens,
612
- stack,
613
- }
614
- }
@@ -1,14 +0,0 @@
1
- # Language Basics JSON
2
-
3
- ## Contributing
4
-
5
- ```sh
6
- git clone git@github.com:lvce-editor/language-basics-json.git &&
7
- cd language-basics-json &&
8
- npm ci &&
9
- npm test
10
- ```
11
-
12
- ## Gitpod
13
-
14
- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/lvce-editor/language-basics-json)
@@ -1,60 +0,0 @@
1
- {
2
- "id": "builtin.language-basics-json",
3
- "name": "Language Basics JSON",
4
- "description": "Provides syntax highlighting and bracket matching in JSON files.",
5
- "languages": [
6
- {
7
- "id": "json",
8
- "extensions": [
9
- ".json",
10
- ".bowerrc",
11
- ".jscsrc",
12
- ".webmanifest",
13
- ".js.map",
14
- ".css.map",
15
- ".ts.map",
16
- ".har",
17
- ".jslintrc",
18
- ".jsonld",
19
- ".geojson",
20
- ".ipynb",
21
- ".jsonc",
22
- ".eslintrc",
23
- ".eslintrc.json",
24
- ".jsfmtrc",
25
- ".jshintrc",
26
- ".swcrc",
27
- ".hintrc",
28
- ".babelrc",
29
- ".prettierrc",
30
- ".sublime-project",
31
- ".code-snippets",
32
- ".tour",
33
- ".heapsnapshot",
34
- ".code-workspace",
35
- ".code-profile",
36
- ".github-issues"
37
- ],
38
- "fileNames": [
39
- "composer.lock",
40
- ".watchmanconfig",
41
- ".all-contributorsrc",
42
- ".imgbotconfig",
43
- ".stylelintrc",
44
- ".parcelrc",
45
- ".publishrc",
46
- ".whitesource",
47
- ".mention-bot",
48
- "pdfjs.config",
49
- "tsconfig.tsbuildinfo",
50
- ".gdntsa",
51
- ".nycrc",
52
- "manifest.webapp",
53
- ".alexrc",
54
- ".yarn-integrity",
55
- ".tsbuildinfo"
56
- ],
57
- "tokenize": "src/tokenizeJson.js"
58
- }
59
- ]
60
- }