@lvce-editor/shared-process 0.12.0 → 0.12.1
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.
- package/config/defaultKeyBindings.json +5 -0
- package/config/defaultSettings.json +4 -0
- package/extensions/builtin.language-basics-graphql/extension.json +1 -1
- package/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +408 -4
- package/extensions/builtin.language-basics-html/src/tokenizeHtml.js +91 -3
- package/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +7 -0
- package/extensions/builtin.language-basics-json/extension.json +3 -1
- package/extensions/builtin.language-basics-jsx/README.md +14 -0
- package/extensions/builtin.language-basics-jsx/extension.json +13 -0
- package/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +648 -0
- package/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +52 -1
- package/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +82 -2
- package/extensions/builtin.language-basics-mdx/README.md +14 -0
- package/extensions/builtin.language-basics-mdx/extension.json +12 -0
- package/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +395 -0
- package/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +22 -1
- package/extensions/builtin.language-basics-toml/src/tokenizeToml.js +29 -1
- package/extensions/builtin.language-basics-typescript/extension.json +1 -1
- package/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +128 -12
- package/extensions/builtin.language-basics-xml/extension.json +3 -2
- package/extensions/builtin.language-basics-xml/src/tokenizeXml.js +26 -3
- package/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +7 -1
- package/extensions/builtin.theme-atom-one-dark/color-theme.json +4 -0
- package/extensions/builtin.theme-cobalt2/color-theme.json +4 -0
- package/extensions/builtin.theme-gruvbox/color-theme.json +4 -0
- package/extensions/builtin.vscode-icons/icon-theme.json +40 -2
- package/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +1 -1
- package/extensions/builtin.vscode-icons/icons/file_type_rome.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +91 -0
- package/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/file_type_tree.svg +1 -0
- package/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +1 -1
- package/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +1 -1
- package/package.json +7 -6
- package/src/parts/CleanStack/CleanStack.js +5 -0
- package/src/parts/Cli/Cli.js +5 -4
- package/src/parts/CliCommandType/CliCommandType.js +10 -0
- package/src/parts/CliInstall/CliInstall.js +3 -2
- package/src/parts/CliLink/CliLink.js +3 -2
- package/src/parts/CliList/CliList.js +3 -1
- package/src/parts/ClipBoard/ClipBoard.js +3 -2
- package/src/parts/ClipBoard/ClipBoardGnome.js +15 -31
- package/src/parts/CommandNotFoundError/CommandNotFoundError.js +9 -0
- package/src/parts/DesktopType/DesktopType.js +3 -0
- package/src/parts/Download/Download.js +1 -1
- package/src/parts/DownloadAndExtract/DownloadAndExtract.js +2 -2
- package/src/parts/Error/FileSystemError.js +1 -1
- package/src/parts/ErrorCodes/ErrorCodes.js +2 -0
- package/src/parts/ErrorHandling/ErrorHandling.js +4 -3
- package/src/parts/ExecCommand/ExecCommand.js +25 -0
- package/src/parts/ExecPromise/ExecPromise.js +4 -0
- package/src/parts/ExitCode/ExitCode.js +5 -0
- package/src/parts/ExportStatic/ExportStatic.js +2 -2
- package/src/parts/ExtensionHost/ExtensionHost.ipc.js +0 -1
- package/src/parts/ExtensionHost/ExtensionHost.js +1 -1
- package/src/parts/ExtensionHostIpc/ExtensionHostIpcWithChildProcess.js +3 -8
- package/src/parts/ExtensionHostIpc/ExtensionHostIpcWithWorker.js +3 -7
- package/src/parts/ExtensionInstallFromFile/ExtensionInstallFromFile.js +2 -5
- package/src/parts/ExtensionInstallFromGitHub/ExtensionInstallFromGitHub.js +1 -1
- package/src/parts/ExtensionInstallFromUrl/ExtensionInstallFromUrl.js +3 -3
- package/src/parts/ExtensionLink/ExtensionLink.js +19 -0
- package/src/parts/ExtensionManagement/ExtensionManagement.ipc.js +1 -1
- package/src/parts/ExtensionManagement/ExtensionManagementColorTheme.js +3 -2
- package/src/parts/ExtensionManagement/ExtensionManagementLanguages.js +7 -14
- package/src/parts/ExtensionManifest/ExtensionManifest.js +14 -4
- package/src/parts/ExtractZip/ExtractZip.js +1 -1
- package/src/parts/GetResponse/GetResponse.js +2 -1
- package/src/parts/GitLsFiles/GitLsFiles.ipc.js +2 -0
- package/src/parts/GitLsFiles/GitLsFiles.js +21 -5
- package/src/parts/Hash/Hash.js +7 -0
- package/src/parts/IpcChild/IpcChild.js +6 -0
- package/src/parts/IpcChildModule/IpcChildModule.js +12 -0
- package/src/parts/IpcChildType/IpcChildType.js +13 -0
- package/src/parts/IpcChildWithNodeForkedProcess/IpcChildWithNodeForkedProcess.js +19 -0
- package/src/parts/IpcChildWithNodeWorker/IpcChildWithNodeWorker.js +27 -0
- package/src/parts/MergeStacks/MergeStacks.js +19 -0
- package/src/parts/ModuleMap/ModuleMap.js +4 -1
- package/src/parts/NormalizeErrorLine/NormalizeErrorLine.js +9 -0
- package/src/parts/OutputChannel/OutputChannel.ipc.js +1 -1
- package/src/parts/ParentIpc/ParentIpc.js +6 -10
- package/src/parts/ParseInt/ParseInt.js +3 -0
- package/src/parts/Platform/Platform.js +16 -21
- package/src/parts/Preferences/Preferences.js +2 -1
- package/src/parts/PrettyError/PrettyError.js +12 -23
- package/src/parts/PrintPrettyError/PrintPrettyError.js +3 -0
- package/src/parts/Process/Process.js +2 -2
- package/src/parts/ProtocolType/ProtocolType.js +3 -0
- package/src/parts/RecentlyOpened/RecentlyOpened.js +1 -1
- package/src/parts/Stats/Stats.js +8 -11
- package/src/parts/SymLink/SymLink.js +2 -14
- package/src/parts/TextDocument/TextDocument.js +3 -1
- package/src/parts/VError/VError.js +5 -22
|
@@ -72,7 +72,7 @@ const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"\\]+/
|
|
|
72
72
|
const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^']+/
|
|
73
73
|
const RE_STRING_BACKTICK_QUOTE_CONTENT = /^[^`]+/
|
|
74
74
|
const RE_KEYWORD =
|
|
75
|
-
/^(?:7z|7za|7zr|alias|apk|apt-get|ar|asciidoctor|awk|basename|bash|bg|bind|blkid|break|brew|brotli|builtin|bunzip|bunzip2|caller|cargo|case|cat|catdoc|cd|chmod|chown|cmp|command|compgen|complete|continue|cp|cryptsetup|curl|curl|cut|cygstart|dde-open|defaults|diff|dirname|dirs|disown|do|docker|done|done|dpkg|du|echo|elif|else|emulate|enable|enlightenment_open|esac|eval|eval_gettext|exec|exit|expr|false|fc|fg|fi|find|for|free|function|fzf|g\+\+|gcc|gcloud|gdbus|getopts|gio|git|gnome-open|grep|grub-mount|gs|gulp|gvfs-open|gzip|hash|head|help|hexdump|history|identity|if|in|install|ip|jobs|kde-open|kfmclient|kill|killall|less|let|lha|ln|local|logout|ls|ls|lunzip|lzip|lzma|makepkg|miniunz|miniunzip|mkdir|mktemp|mount|mpicc|mv|node|npm|npx|open|pacman|pcmanfm|pdftotext|pkg|plutil|popd|prezip-bin|printf|println|ps|pushd|pwd|python3|rar|read|readlink|readonly|return|rm|rpm|rsync|sed|set|sha256sum|shift|shopt|sleep|snap|sort|source|stty|sudo|suspend|tail|tar|tee|test|texi2dvi|then|times|touch|trap|true|tty|tune2fs|type|ulimit|umask|umask|unalias|unarj|unmkinitramfs|unmount|unrar|unset|unwrapdiff|unzip|unzoo|update-alternatives|vim|wait|wc|wget|which|while|xargs|xprop|xz|yarn|yum|zip|zoo|zsh|zstd)\b/
|
|
75
|
+
/^(?:7z|7za|7zr|alias|anacron|apk|apt-get|ar|asciidoctor|awk|base64|basename|bash|bg|bind|blkid|break|brew|brotli|builtin|bunzip|bunzip2|caller|cargo|case|cat|catdoc|cd|chmod|chown|circleci|clear|cmp|command|compgen|complete|continue|cp|cryptsetup|curl|curl|cut|cygstart|dde-open|defaults|diff|dirname|dirs|disown|do|docker|done|done|dpkg-trigger|dpkg|du|echo|egrep|elif|else|emulate|enable|enlightenment_open|esac|eval|eval_gettext|exec|exit|expr|false|fc|fg|fi|find|for|free|function|fzf|g\+\+|gatsby|gcc|gcloud|gdbus|getopts|gio|git|gnome-open|grep|grub-mount|gs|gulp|gvfs-open|gzip|hash|head|help|hexdump|history|identity|if|ifconfig|in|install-plugin|install|ip|jobs|jq|kbd_mode|kde-open|kdialog|kfmclient|kill|killall|less|let|lha|ln|loadkeys|local|logout|ls|ls|lunzip|lzip|lzma|makepkg|miniunz|miniunzip|mkdir|mktemp|mount|mpicc|mv|node|npm|npx|open|pacman|pcmanfm|pdftotext|pkg|plutil|pnpm|popd|prezip-bin|printf|println|ps|pushd|pwd|python3|rar|read|readlink|readonly|return|rm|route|rpm|rsync|sed|set|setfont|sh|sha256sum|shift|shopt|sleep|snap|sort|source|sponge|start-stop-daemon|stty|sudo|suspend|tail|tar|tee|test|texi2dvi|then|times|touch|trap|true|tty|tune2fs|type|ulimit|umask|umask|unalias|unarj|unmkinitramfs|unmount|unrar|unset|unwrapdiff|unzip|unzoo|update-alternatives|vim|wait|wc|wget|which|while|wp|xargs|xprop|xz|yarn|yum|zenity|zip|zoo|zsh|zstd)\b/
|
|
76
76
|
const RE_VARIABLE_NAME = /^[a-zA-Z\_\/\-\$][a-zA-Z\_\/\-\$#\d\-]*/
|
|
77
77
|
const RE_PUNCTUATION = /^[:,;\{\}\[\]\.=\(\)<>\!\|\+\&\>\)]/
|
|
78
78
|
const RE_NUMERIC = /^\d+(?=\s|$)/
|
|
@@ -144,11 +144,13 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
144
144
|
case '7za':
|
|
145
145
|
case '7zr':
|
|
146
146
|
case 'alias':
|
|
147
|
+
case 'anacron':
|
|
147
148
|
case 'apk':
|
|
148
149
|
case 'apt-get':
|
|
149
150
|
case 'ar':
|
|
150
151
|
case 'asciidoctor':
|
|
151
152
|
case 'awk':
|
|
153
|
+
case 'base64':
|
|
152
154
|
case 'basename':
|
|
153
155
|
case 'bash':
|
|
154
156
|
case 'bg':
|
|
@@ -166,6 +168,8 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
166
168
|
case 'cd':
|
|
167
169
|
case 'chmod':
|
|
168
170
|
case 'chown':
|
|
171
|
+
case 'circleci':
|
|
172
|
+
case 'clear':
|
|
169
173
|
case 'cmp':
|
|
170
174
|
case 'command':
|
|
171
175
|
case 'compgen':
|
|
@@ -184,8 +188,10 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
184
188
|
case 'disown':
|
|
185
189
|
case 'docker':
|
|
186
190
|
case 'dpkg':
|
|
191
|
+
case 'dpkg-trigger':
|
|
187
192
|
case 'du':
|
|
188
193
|
case 'echo':
|
|
194
|
+
case 'egrep':
|
|
189
195
|
case 'emulate':
|
|
190
196
|
case 'enable':
|
|
191
197
|
case 'enlightenment_open':
|
|
@@ -200,6 +206,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
200
206
|
case 'free':
|
|
201
207
|
case 'fzf':
|
|
202
208
|
case 'g++':
|
|
209
|
+
case 'gatsby':
|
|
203
210
|
case 'gcc':
|
|
204
211
|
case 'gcloud':
|
|
205
212
|
case 'gdbus':
|
|
@@ -219,16 +226,21 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
219
226
|
case 'hexdump':
|
|
220
227
|
case 'history':
|
|
221
228
|
case 'identity':
|
|
229
|
+
case 'ifconfig':
|
|
222
230
|
case 'install':
|
|
231
|
+
case 'install-plugin':
|
|
223
232
|
case 'ip':
|
|
224
233
|
case 'jobs':
|
|
234
|
+
case 'kbd_mode':
|
|
225
235
|
case 'kde-open':
|
|
236
|
+
case 'kdialog':
|
|
226
237
|
case 'kfmclient':
|
|
227
238
|
case 'kill':
|
|
228
239
|
case 'killall':
|
|
229
240
|
case 'less':
|
|
230
241
|
case 'lha':
|
|
231
242
|
case 'ln':
|
|
243
|
+
case 'loadkeys':
|
|
232
244
|
case 'logout':
|
|
233
245
|
case 'ls':
|
|
234
246
|
case 'ls':
|
|
@@ -252,6 +264,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
252
264
|
case 'pdftotext':
|
|
253
265
|
case 'pkg':
|
|
254
266
|
case 'plutil':
|
|
267
|
+
case 'pnpm':
|
|
255
268
|
case 'popd':
|
|
256
269
|
case 'prezip-bin':
|
|
257
270
|
case 'printf':
|
|
@@ -264,10 +277,13 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
264
277
|
case 'read':
|
|
265
278
|
case 'readlink':
|
|
266
279
|
case 'rm':
|
|
280
|
+
case 'route':
|
|
267
281
|
case 'rpm':
|
|
268
282
|
case 'rsync':
|
|
269
283
|
case 'sed':
|
|
270
284
|
case 'set':
|
|
285
|
+
case 'setfont':
|
|
286
|
+
case 'sh':
|
|
271
287
|
case 'sha256sum':
|
|
272
288
|
case 'shift':
|
|
273
289
|
case 'shopt':
|
|
@@ -275,6 +291,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
275
291
|
case 'snap':
|
|
276
292
|
case 'sort':
|
|
277
293
|
case 'source':
|
|
294
|
+
case 'start-stop-daemon':
|
|
278
295
|
case 'stty':
|
|
279
296
|
case 'sudo':
|
|
280
297
|
case 'suspend':
|
|
@@ -307,15 +324,19 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
307
324
|
case 'wc':
|
|
308
325
|
case 'wget':
|
|
309
326
|
case 'which':
|
|
327
|
+
case 'wp':
|
|
310
328
|
case 'xargs':
|
|
311
329
|
case 'xprop':
|
|
312
330
|
case 'xz':
|
|
313
331
|
case 'yarn':
|
|
314
332
|
case 'yum':
|
|
333
|
+
case 'zenity':
|
|
315
334
|
case 'zip':
|
|
316
335
|
case 'zoo':
|
|
317
336
|
case 'zsh':
|
|
318
337
|
case 'zstd':
|
|
338
|
+
case 'jq':
|
|
339
|
+
case 'sponge':
|
|
319
340
|
token = TokenType.Function
|
|
320
341
|
break
|
|
321
342
|
case 'true':
|
|
@@ -9,6 +9,7 @@ export const State = {
|
|
|
9
9
|
InsideSingleQuoteString: 6,
|
|
10
10
|
InsideArray: 7,
|
|
11
11
|
InsideObject: 8,
|
|
12
|
+
InsideTripleDoubleQuoteString: 9,
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export const StateMap = {
|
|
@@ -58,7 +59,7 @@ const RE_LINE_COMMENT = /^#.*/s
|
|
|
58
59
|
const RE_WHITESPACE = /^ +/
|
|
59
60
|
const RE_CURLY_OPEN = /^\{/
|
|
60
61
|
const RE_CURLY_CLOSE = /^\}/
|
|
61
|
-
const RE_PROPERTY_NAME = /^[a-zA-Z\-\_\d]+\b(?=\s*=)/
|
|
62
|
+
const RE_PROPERTY_NAME = /^[a-zA-Z\-\_\d\.]+\b(?=\s*=)/
|
|
62
63
|
const RE_COLON = /^:/
|
|
63
64
|
const RE_PROPERTY_VALUE = /^[^;\}]+/
|
|
64
65
|
const RE_SEMICOLON = /^;/
|
|
@@ -90,6 +91,9 @@ const RE_QUOTE_DOUBLE = /^"/
|
|
|
90
91
|
const RE_QUOTE_SINGLE = /^'/
|
|
91
92
|
const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"]+/
|
|
92
93
|
const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^']+/
|
|
94
|
+
const RE_TRIPLE_DOUBLE_QUOTE = /^"{3}/
|
|
95
|
+
const RE_TRIPLE_QUOTED_STRING_CONTENT_DOUBLE_QUOTES = /.*(?=""")/s
|
|
96
|
+
const RE_TRIPLE_QUOTED_STRING_CONTENT_COMMON = /.*/s
|
|
93
97
|
|
|
94
98
|
export const initialLineState = {
|
|
95
99
|
state: State.TopLevelContent,
|
|
@@ -168,6 +172,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
168
172
|
} else if ((next = part.match(RE_INF))) {
|
|
169
173
|
token = TokenType.Numeric
|
|
170
174
|
state = stack.pop() || State.TopLevelContent
|
|
175
|
+
} else if ((next = part.match(RE_TRIPLE_DOUBLE_QUOTE))) {
|
|
176
|
+
token = TokenType.Punctuation
|
|
177
|
+
state = State.InsideTripleDoubleQuoteString
|
|
171
178
|
} else if ((next = part.match(RE_QUOTE_DOUBLE))) {
|
|
172
179
|
token = TokenType.Punctuation
|
|
173
180
|
state = State.InsideDoubleQuoteString
|
|
@@ -226,6 +233,13 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
226
233
|
} else if ((next = part.match(RE_NUMERIC_INTEGER))) {
|
|
227
234
|
token = TokenType.Numeric
|
|
228
235
|
state = State.InsideArray
|
|
236
|
+
} else if ((next = part.match(RE_SQUARE_OPEN))) {
|
|
237
|
+
token = TokenType.Punctuation
|
|
238
|
+
state = State.InsideArray
|
|
239
|
+
stack.push(State.InsideArray)
|
|
240
|
+
} else if ((next = part.match(RE_LINE_COMMENT))) {
|
|
241
|
+
token = TokenType.Comment
|
|
242
|
+
state = State.InsideArray
|
|
229
243
|
} else {
|
|
230
244
|
part
|
|
231
245
|
throw new Error('no')
|
|
@@ -256,6 +270,20 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
256
270
|
throw new Error('no')
|
|
257
271
|
}
|
|
258
272
|
break
|
|
273
|
+
case State.InsideTripleDoubleQuoteString:
|
|
274
|
+
if ((next = part.match(RE_TRIPLE_DOUBLE_QUOTE))) {
|
|
275
|
+
token = TokenType.Punctuation
|
|
276
|
+
state = State.TopLevelContent
|
|
277
|
+
} else if ((next = part.match(RE_TRIPLE_QUOTED_STRING_CONTENT_DOUBLE_QUOTES))) {
|
|
278
|
+
token = TokenType.String
|
|
279
|
+
state = State.InsideTripleDoubleQuoteString
|
|
280
|
+
} else if ((next = part.match(RE_TRIPLE_QUOTED_STRING_CONTENT_COMMON))) {
|
|
281
|
+
token = TokenType.String
|
|
282
|
+
state = State.InsideTripleDoubleQuoteString
|
|
283
|
+
} else {
|
|
284
|
+
throw new Error('no')
|
|
285
|
+
}
|
|
286
|
+
break
|
|
259
287
|
default:
|
|
260
288
|
throw new Error('no')
|
|
261
289
|
}
|
|
@@ -34,6 +34,9 @@ const State = {
|
|
|
34
34
|
InsideMethodParametersAfterVariableName: 31,
|
|
35
35
|
AfterMethodParameters: 32,
|
|
36
36
|
AfterPropertyDot: 33,
|
|
37
|
+
InsideBacktickString: 34,
|
|
38
|
+
AfterInterfaceName: 35,
|
|
39
|
+
AfterKeywordImport: 36,
|
|
37
40
|
// AfterKeywordImport: 27,
|
|
38
41
|
}
|
|
39
42
|
|
|
@@ -65,6 +68,7 @@ export const TokenType = {
|
|
|
65
68
|
KeywordVoid: 19,
|
|
66
69
|
Function: 20,
|
|
67
70
|
FunctionName: 21,
|
|
71
|
+
KeywordOperator: 22,
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
export const TokenMap = {
|
|
@@ -92,6 +96,7 @@ export const TokenMap = {
|
|
|
92
96
|
[TokenType.KeywordVoid]: 'KeywordVoid',
|
|
93
97
|
[TokenType.Function]: 'Function',
|
|
94
98
|
[TokenType.FunctionName]: 'Function',
|
|
99
|
+
[TokenType.KeywordOperator]: 'KeywordOperator',
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
export const initialLineState = {
|
|
@@ -106,14 +111,15 @@ const RE_LINE_COMMENT = /^\/\/[^\n]*/
|
|
|
106
111
|
const RE_KEYWORD =
|
|
107
112
|
/^(?:yield|with|while|void|var|typeof|type|true|try|throw|this|static|switch|super|readonly|return|public|protected|private|package|null|new|let|interface|instanceof|in|import|implements|if|function|for|finally|from|false|extends|export|enum|else|do|delete|default|debugger|declare|continue|const|constructor|class|catch|case|break|await|async|abstract)\b/
|
|
108
113
|
const RE_WHITESPACE = /^\s+/
|
|
109
|
-
const RE_VARIABLE_NAME = /^[
|
|
110
|
-
const RE_PUNCTUATION = /^[:,;\{\}\[\]\.=\(\)
|
|
114
|
+
const RE_VARIABLE_NAME = /^[\#\$a-zA-Z\_][\$a-zA-Z\_\d]*/
|
|
115
|
+
const RE_PUNCTUATION = /^[:,;\{\}\[\]\.=\(\)>\+\-]/
|
|
111
116
|
const RE_QUOTE_SINGLE = /^'/
|
|
112
117
|
const RE_QUOTE_DOUBLE = /^"/
|
|
113
118
|
const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^\\']+/
|
|
114
119
|
const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^\\"]+/
|
|
115
120
|
const RE_NUMERIC = /^\d+/
|
|
116
121
|
const RE_COLON = /^\:/
|
|
122
|
+
const RE_COLON_OPTIONAL = /^\??\:/
|
|
117
123
|
const RE_TYPE_PRIMITIVE = /^(?:string|boolean|number|bigint|symbol|void|any)\b/
|
|
118
124
|
const RE_EQUAL = /^=/
|
|
119
125
|
const RE_SEMICOLON = /^;/
|
|
@@ -161,9 +167,15 @@ const RE_NUMERIC_2 =
|
|
|
161
167
|
const RE_NUMERIC_HEX = /0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\b/
|
|
162
168
|
const RE_NUMERIC_BINARY = /0(?:b|B)[01][01_]*(n)?\b/
|
|
163
169
|
const RE_NUMERIC_OCTAL = /0(?:o|O)?[0-7][0-7_]*(n)?\b/
|
|
170
|
+
const RE_QUOTE_BACKTICK = /^`/
|
|
171
|
+
const RE_STRING_BACKTICK_QUOTE_CONTENT = /^[^`\\]+/
|
|
172
|
+
const RE_STRING_ESCAPE = /^\\./
|
|
173
|
+
const RE_KEYWORD_TYPE = /^type\b/
|
|
174
|
+
const RE_KEYWORD_IN = /^in\b/
|
|
175
|
+
const RE_KEYWORD_OF = /^of\b/
|
|
176
|
+
const RE_KEYWORD_EXTENDS = /^extends\b/
|
|
164
177
|
|
|
165
178
|
export const hasArrayReturn = true
|
|
166
|
-
|
|
167
179
|
/**
|
|
168
180
|
*
|
|
169
181
|
* @param {string} line
|
|
@@ -193,6 +205,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
193
205
|
state = State.TopLevelContent
|
|
194
206
|
break
|
|
195
207
|
case 'import':
|
|
208
|
+
token = TokenType.KeywordImport
|
|
209
|
+
state = State.AfterKeywordImport
|
|
210
|
+
break
|
|
196
211
|
case 'export':
|
|
197
212
|
case 'from':
|
|
198
213
|
token = TokenType.KeywordImport
|
|
@@ -210,6 +225,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
210
225
|
case 'try':
|
|
211
226
|
case 'catch':
|
|
212
227
|
case 'finally':
|
|
228
|
+
case 'for':
|
|
213
229
|
token = TokenType.KeywordControl
|
|
214
230
|
state = State.TopLevelContent
|
|
215
231
|
break
|
|
@@ -256,6 +272,13 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
256
272
|
token = TokenType.KeywordModifier
|
|
257
273
|
state = State.TopLevelContent
|
|
258
274
|
break
|
|
275
|
+
case 'in':
|
|
276
|
+
case 'of':
|
|
277
|
+
case 'typeof':
|
|
278
|
+
case 'instanceof':
|
|
279
|
+
token = TokenType.KeywordOperator
|
|
280
|
+
state = State.TopLevelContent
|
|
281
|
+
break
|
|
259
282
|
default:
|
|
260
283
|
token = TokenType.Keyword
|
|
261
284
|
state = State.TopLevelContent
|
|
@@ -274,17 +297,15 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
274
297
|
} else if ((next = part.match(RE_LINE_COMMENT_START))) {
|
|
275
298
|
token = TokenType.Comment
|
|
276
299
|
state = State.InsideLineComment
|
|
300
|
+
} else if ((next = part.match(RE_PUNCTUATION))) {
|
|
301
|
+
token = TokenType.Punctuation
|
|
302
|
+
state = State.TopLevelContent
|
|
277
303
|
} else {
|
|
278
|
-
next = part.match(
|
|
304
|
+
next = part.match(RE_SLASH)
|
|
279
305
|
token = TokenType.Punctuation
|
|
280
306
|
state = State.TopLevelContent
|
|
281
307
|
}
|
|
282
|
-
}
|
|
283
|
-
// else if ((next = part.match(RE_NUMERIC))) {
|
|
284
|
-
// token = TokenType.Numeric
|
|
285
|
-
// state = State.TopLevelContent
|
|
286
|
-
// }
|
|
287
|
-
else if ((next = part.match(RE_NUMERIC_2))) {
|
|
308
|
+
} else if ((next = part.match(RE_NUMERIC_2))) {
|
|
288
309
|
token = TokenType.Numeric
|
|
289
310
|
state = State.TopLevelContent
|
|
290
311
|
} else if ((next = part.match(RE_PUNCTUATION))) {
|
|
@@ -299,6 +320,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
299
320
|
} else if ((next = part.match(RE_QUOTE_DOUBLE))) {
|
|
300
321
|
token = TokenType.Punctuation
|
|
301
322
|
state = State.InsideDoubleQuoteString
|
|
323
|
+
} else if ((next = part.match(RE_QUOTE_BACKTICK))) {
|
|
324
|
+
token = TokenType.Punctuation
|
|
325
|
+
state = State.InsideBacktickString
|
|
302
326
|
} else if ((next = part.match(RE_OPERATOR))) {
|
|
303
327
|
token = TokenType.Punctuation
|
|
304
328
|
state = State.TopLevelContent
|
|
@@ -348,6 +372,12 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
348
372
|
} else if ((next = part.match(RE_KEYWORD_ENUM))) {
|
|
349
373
|
token = TokenType.Keyword
|
|
350
374
|
state = State.AfterKeywordEnum
|
|
375
|
+
} else if ((next = part.match(RE_KEYWORD_IN))) {
|
|
376
|
+
token = TokenType.KeywordOperator
|
|
377
|
+
state = State.TopLevelContent
|
|
378
|
+
} else if ((next = part.match(RE_KEYWORD_OF))) {
|
|
379
|
+
token = TokenType.KeywordOperator
|
|
380
|
+
state = State.TopLevelContent
|
|
351
381
|
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
352
382
|
token = TokenType.VariableName
|
|
353
383
|
state = State.AfterKeywordDeclaration
|
|
@@ -360,6 +390,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
360
390
|
} else if ((next = part.match(RE_DOT))) {
|
|
361
391
|
token = TokenType.Punctuation
|
|
362
392
|
state = State.TopLevelContent
|
|
393
|
+
} else if ((next = part.match(RE_SEMICOLON))) {
|
|
394
|
+
token = TokenType.Punctuation
|
|
395
|
+
state = State.TopLevelContent
|
|
363
396
|
} else {
|
|
364
397
|
line
|
|
365
398
|
part
|
|
@@ -419,6 +452,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
419
452
|
token = TokenType.Punctuation
|
|
420
453
|
state = State.InsideSingleQuoteString
|
|
421
454
|
stack.push(State.BeforeType)
|
|
455
|
+
} else if ((next = part.match(RE_VERTICAL_LINE))) {
|
|
456
|
+
token = TokenType.Punctuation
|
|
457
|
+
state = State.BeforeType
|
|
422
458
|
} else {
|
|
423
459
|
part
|
|
424
460
|
throw new Error('no')
|
|
@@ -530,6 +566,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
530
566
|
} else if ((next = part.match(RE_ANGLE_CLOSE))) {
|
|
531
567
|
token = TokenType.Punctuation
|
|
532
568
|
state = State.AfterType
|
|
569
|
+
} else if ((next = part.match(RE_CURLY_OPEN))) {
|
|
570
|
+
token = TokenType.Punctuation
|
|
571
|
+
state = State.InsideTypeObject
|
|
533
572
|
} else {
|
|
534
573
|
// stack.push(State.AfterType)
|
|
535
574
|
part
|
|
@@ -590,6 +629,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
590
629
|
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
591
630
|
token = TokenType.VariableName
|
|
592
631
|
state = State.InsideEnumAfterVariableName
|
|
632
|
+
} else if ((next = part.match(RE_CURLY_CLOSE))) {
|
|
633
|
+
token = TokenType.Punctuation
|
|
634
|
+
state = stack.pop() || State.TopLevelContent
|
|
593
635
|
} else {
|
|
594
636
|
throw new Error('no')
|
|
595
637
|
}
|
|
@@ -601,7 +643,14 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
601
643
|
} else if ((next = part.match(RE_EQUAL))) {
|
|
602
644
|
token = TokenType.Punctuation
|
|
603
645
|
state = State.TopLevelContent
|
|
646
|
+
} else if ((next = part.match(RE_COMMA))) {
|
|
647
|
+
token = TokenType.Punctuation
|
|
648
|
+
state = State.InsideEnum
|
|
649
|
+
} else if ((next = part.match(RE_CURLY_CLOSE))) {
|
|
650
|
+
token = TokenType.Punctuation
|
|
651
|
+
state = stack.pop() || State.TopLevelContent
|
|
604
652
|
} else {
|
|
653
|
+
part
|
|
605
654
|
throw new Error('no')
|
|
606
655
|
}
|
|
607
656
|
break
|
|
@@ -712,7 +761,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
712
761
|
state = State.AfterKeywordInterface
|
|
713
762
|
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
714
763
|
token = TokenType.Type
|
|
715
|
-
state = State.
|
|
764
|
+
state = State.AfterInterfaceName
|
|
716
765
|
} else {
|
|
717
766
|
throw new Error('no')
|
|
718
767
|
}
|
|
@@ -734,7 +783,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
734
783
|
} else if ((next = part.match(RE_CURLY_CLOSE))) {
|
|
735
784
|
token = TokenType.Punctuation
|
|
736
785
|
state = stack.pop() || State.TopLevelContent
|
|
737
|
-
} else if ((next = part.match(
|
|
786
|
+
} else if ((next = part.match(RE_COLON_OPTIONAL))) {
|
|
738
787
|
token = TokenType.Punctuation
|
|
739
788
|
state = State.BeforeType
|
|
740
789
|
stack.push(State.InsideTypeObject)
|
|
@@ -744,6 +793,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
744
793
|
} else if ((next = part.match(RE_SEMICOLON))) {
|
|
745
794
|
token = TokenType.Punctuation
|
|
746
795
|
state = State.InsideTypeObject
|
|
796
|
+
} else if ((next = part.match(RE_VERTICAL_LINE))) {
|
|
797
|
+
token = TokenType.Punctuation
|
|
798
|
+
state = State.BeforeType
|
|
747
799
|
} else {
|
|
748
800
|
part
|
|
749
801
|
throw new Error('no')
|
|
@@ -817,6 +869,70 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
817
869
|
throw new Error('no')
|
|
818
870
|
}
|
|
819
871
|
break
|
|
872
|
+
case State.InsideBacktickString:
|
|
873
|
+
if ((next = part.match(RE_QUOTE_BACKTICK))) {
|
|
874
|
+
token = TokenType.Punctuation
|
|
875
|
+
state = State.TopLevelContent
|
|
876
|
+
} else if ((next = part.match(RE_STRING_BACKTICK_QUOTE_CONTENT))) {
|
|
877
|
+
token = TokenType.String
|
|
878
|
+
state = State.InsideBacktickString
|
|
879
|
+
} else if ((next = part.match(RE_STRING_ESCAPE))) {
|
|
880
|
+
token = TokenType.String
|
|
881
|
+
state = State.InsideBacktickString
|
|
882
|
+
} else {
|
|
883
|
+
throw new Error('no')
|
|
884
|
+
}
|
|
885
|
+
break
|
|
886
|
+
case State.AfterInterfaceName:
|
|
887
|
+
if ((next = part.match(RE_WHITESPACE))) {
|
|
888
|
+
token = TokenType.Whitespace
|
|
889
|
+
state = State.AfterInterfaceName
|
|
890
|
+
} else if ((next = part.match(RE_CURLY_OPEN))) {
|
|
891
|
+
token = TokenType.Punctuation
|
|
892
|
+
state = State.InsideTypeObject
|
|
893
|
+
} else if ((next = part.match(RE_KEYWORD_EXTENDS))) {
|
|
894
|
+
token = TokenType.KeywordModifier
|
|
895
|
+
state = State.AfterInterfaceName
|
|
896
|
+
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
897
|
+
token = TokenType.Type
|
|
898
|
+
state = State.AfterInterfaceName
|
|
899
|
+
} else {
|
|
900
|
+
part
|
|
901
|
+
throw new Error('no')
|
|
902
|
+
}
|
|
903
|
+
break
|
|
904
|
+
case State.AfterKeywordImport:
|
|
905
|
+
if ((next = part.match(RE_WHITESPACE))) {
|
|
906
|
+
token = TokenType.Whitespace
|
|
907
|
+
state = State.AfterKeywordImport
|
|
908
|
+
} else if ((next = part.match(RE_KEYWORD_TYPE))) {
|
|
909
|
+
token = TokenType.Keyword
|
|
910
|
+
state = State.AfterKeywordImport
|
|
911
|
+
} else if ((next = part.match(RE_CURLY_OPEN))) {
|
|
912
|
+
token = TokenType.Punctuation
|
|
913
|
+
state = State.TopLevelContent
|
|
914
|
+
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
915
|
+
token = TokenType.VariableName
|
|
916
|
+
state = State.TopLevelContent
|
|
917
|
+
} else if ((next = part.match(RE_STAR))) {
|
|
918
|
+
token = TokenType.Punctuation
|
|
919
|
+
state = State.TopLevelContent
|
|
920
|
+
} else if ((next = part.match(RE_QUOTE_DOUBLE))) {
|
|
921
|
+
token = TokenType.Punctuation
|
|
922
|
+
state = State.InsideDoubleQuoteString
|
|
923
|
+
} else if ((next = part.match(RE_QUOTE_SINGLE))) {
|
|
924
|
+
token = TokenType.Punctuation
|
|
925
|
+
state = State.InsideSingleQuoteString
|
|
926
|
+
} else if ((next = part.match(RE_ROUND_OPEN))) {
|
|
927
|
+
token = TokenType.Punctuation
|
|
928
|
+
state = State.TopLevelContent
|
|
929
|
+
} else if ((next = part.match(RE_DOT))) {
|
|
930
|
+
token = TokenType.Punctuation
|
|
931
|
+
state = State.AfterPropertyDot
|
|
932
|
+
} else {
|
|
933
|
+
throw new Error('no')
|
|
934
|
+
}
|
|
935
|
+
break
|
|
820
936
|
default:
|
|
821
937
|
state
|
|
822
938
|
throw new Error('no')
|
|
@@ -56,9 +56,10 @@ export const TokenMap = {
|
|
|
56
56
|
const RE_ANGLE_BRACKET_CLOSE = /^>/
|
|
57
57
|
const RE_ANGLE_BRACKET_ONLY = /^</
|
|
58
58
|
const RE_ANGLE_BRACKET_OPEN = /^</
|
|
59
|
-
const RE_ANGLE_BRACKET_OPEN_TAG = /^<(
|
|
59
|
+
const RE_ANGLE_BRACKET_OPEN_TAG = /^<(?![\s!\?])/
|
|
60
|
+
const RE_ANGLE_BRACKET_QUESTION_MARK = /^<\?/
|
|
60
61
|
const RE_ANY_TEXT = /^[^\n]+/
|
|
61
|
-
const RE_ATTRIBUTE_NAME = /^[a-zA-Z\d
|
|
62
|
+
const RE_ATTRIBUTE_NAME = /^[a-zA-Z\d\-\:\_]+/
|
|
62
63
|
const RE_BLOCK_COMMENT_CONTENT = /^.(?:.*?)(?=-->|$)/s
|
|
63
64
|
const RE_BLOCK_COMMENT_END = /^-->/
|
|
64
65
|
const RE_BLOCK_COMMENT_START = /^<!--/
|
|
@@ -74,6 +75,7 @@ const RE_NOT_TAGNAME = /^[^a-zA-Z\d]+/
|
|
|
74
75
|
const RE_PUNCTUATION = /^[<;'".,]/
|
|
75
76
|
const RE_PUNCTUATION_SELF_CLOSING = /^\/>/
|
|
76
77
|
const RE_SELF_CLOSING = /^\/>/
|
|
78
|
+
const RE_QUESTION_MARK_CLOSING = /^\?>/
|
|
77
79
|
const RE_SINGLE_QUOTE = /^'/
|
|
78
80
|
const RE_SLASH = /^\//
|
|
79
81
|
const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"]+/
|
|
@@ -84,6 +86,9 @@ const RE_TEXT = /^[^<>\n]+/
|
|
|
84
86
|
const RE_WHITESPACE = /^\s+/
|
|
85
87
|
const RE_WORD = /^[^\s]+/
|
|
86
88
|
const RE_QUESTION_MARK_TAG_NAME = /^\?\w+/
|
|
89
|
+
const RE_BLOCK_COMMENT_CONTENT_1 = /^.+?(?=-->)/s
|
|
90
|
+
const RE_BLOCK_COMMENT_CONTENT_2 = /^.+$/s
|
|
91
|
+
const RE_SPECIAL_TAG = /^<!(?=\w)/
|
|
87
92
|
|
|
88
93
|
export const initialLineState = {
|
|
89
94
|
state: State.TopLevelContent,
|
|
@@ -123,9 +128,18 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
123
128
|
} else if ((next = part.match(RE_TEXT))) {
|
|
124
129
|
token = TokenType.Text
|
|
125
130
|
state = State.TopLevelContent
|
|
131
|
+
} else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
|
|
132
|
+
token = TokenType.Comment
|
|
133
|
+
state = State.InsideBlockComment
|
|
126
134
|
} else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
|
|
127
135
|
token = TokenType.Text
|
|
128
136
|
state = State.TopLevelContent
|
|
137
|
+
} else if ((next = part.match(RE_SPECIAL_TAG))) {
|
|
138
|
+
token = TokenType.PunctuationTag
|
|
139
|
+
state = State.AfterOpeningAngleBracket
|
|
140
|
+
} else if ((next = part.match(RE_ANGLE_BRACKET_QUESTION_MARK))) {
|
|
141
|
+
token = TokenType.PunctuationTag
|
|
142
|
+
state = State.AfterOpeningAngleBracket
|
|
129
143
|
} else if ((next = part.match(RE_ANGLE_BRACKET_OPEN))) {
|
|
130
144
|
token = TokenType.Text
|
|
131
145
|
state = State.TopLevelContent
|
|
@@ -159,6 +173,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
159
173
|
if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
|
|
160
174
|
token = TokenType.PunctuationTag
|
|
161
175
|
state = State.TopLevelContent
|
|
176
|
+
} else if ((next = part.match(RE_QUESTION_MARK_CLOSING))) {
|
|
177
|
+
token = TokenType.PunctuationTag
|
|
178
|
+
state = State.TopLevelContent
|
|
162
179
|
} else if ((next = part.match(RE_EXCLAMATION_MARK))) {
|
|
163
180
|
token = TokenType.PunctuationTag
|
|
164
181
|
state = State.InsideOpeningTag
|
|
@@ -206,6 +223,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
206
223
|
} else if ((next = part.match(RE_SELF_CLOSING))) {
|
|
207
224
|
token = TokenType.PunctuationTag
|
|
208
225
|
state = State.TopLevelContent
|
|
226
|
+
} else if ((next = part.match(RE_QUESTION_MARK_CLOSING))) {
|
|
227
|
+
token = TokenType.PunctuationTag
|
|
228
|
+
state = State.TopLevelContent
|
|
209
229
|
} else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
|
|
210
230
|
token = TokenType.PunctuationTag
|
|
211
231
|
state = State.TopLevelContent
|
|
@@ -280,12 +300,15 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
280
300
|
}
|
|
281
301
|
break
|
|
282
302
|
case State.InsideBlockComment:
|
|
283
|
-
if ((next = part.match(
|
|
303
|
+
if ((next = part.match(RE_BLOCK_COMMENT_CONTENT_1))) {
|
|
284
304
|
token = TokenType.Comment
|
|
285
305
|
state = State.InsideBlockComment
|
|
286
306
|
} else if ((next = part.match(RE_BLOCK_COMMENT_END))) {
|
|
287
307
|
token = TokenType.Comment
|
|
288
308
|
state = State.TopLevelContent
|
|
309
|
+
} else if ((next = part.match(RE_BLOCK_COMMENT_CONTENT_2))) {
|
|
310
|
+
token = TokenType.Comment
|
|
311
|
+
state = State.InsideBlockComment
|
|
289
312
|
} else {
|
|
290
313
|
throw new Error('no')
|
|
291
314
|
}
|
|
@@ -94,7 +94,7 @@ const RE_COMBINATOR = /^[\+\>\~]/
|
|
|
94
94
|
const RE_LANGUAGE_CONSTANT = /^(?:true|false|null)(?!#)/
|
|
95
95
|
const RE_COLON = /^:/
|
|
96
96
|
const RE_DASH = /^\-/
|
|
97
|
-
const RE_WORDS = /^[\w\s]*\w/
|
|
97
|
+
const RE_WORDS = /^[\w\s\-\.]*\w/
|
|
98
98
|
const RE_MULTI_LINE_STRING_START = /^(?:\||>\-|>)/
|
|
99
99
|
const RE_KEY_PRE = /^\s*(\-\s*)?/
|
|
100
100
|
const RE_SINGLE_QUOTE = /^'/
|
|
@@ -252,6 +252,12 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
252
252
|
token = TokenType.Comment
|
|
253
253
|
state = State.InsideLineComment
|
|
254
254
|
stack.push(State.AfterPipe)
|
|
255
|
+
} else if ((next = part.match(RE_DASH))) {
|
|
256
|
+
token = TokenType.Punctuation
|
|
257
|
+
state = State.AfterPipe
|
|
258
|
+
} else if ((next = part.match(RE_ANYTHING))) {
|
|
259
|
+
token = TokenType.Text
|
|
260
|
+
state = State.AfterPipe
|
|
255
261
|
} else {
|
|
256
262
|
throw new Error('no')
|
|
257
263
|
}
|