@lvce-editor/shared-process 0.10.6 → 0.10.8
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.
|
@@ -21,6 +21,10 @@ const State = {
|
|
|
21
21
|
AfterTypeExpression: 18,
|
|
22
22
|
AfterVariableName: 19,
|
|
23
23
|
BeforePropertyAccess: 20,
|
|
24
|
+
AfterKeywordEnum: 21,
|
|
25
|
+
AfterKeywordEnumAfterVariableName: 22,
|
|
26
|
+
InsideEnum: 23,
|
|
27
|
+
InsideEnumAfterVariableName: 24,
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
/**
|
|
@@ -78,6 +82,9 @@ export const TokenMap = {
|
|
|
78
82
|
|
|
79
83
|
export const initialLineState = {
|
|
80
84
|
state: State.TopLevelContent,
|
|
85
|
+
/**
|
|
86
|
+
* @type {any[]}
|
|
87
|
+
*/
|
|
81
88
|
stack: [],
|
|
82
89
|
}
|
|
83
90
|
|
|
@@ -125,10 +132,12 @@ const RE_DOT = /^\./
|
|
|
125
132
|
const RE_SQUARE_OPEN = /^\[/
|
|
126
133
|
const RE_SQUARE_CLOSE = /^\]/
|
|
127
134
|
|
|
135
|
+
export const hasArrayReturn = true
|
|
136
|
+
|
|
128
137
|
/**
|
|
129
138
|
*
|
|
130
139
|
* @param {string} line
|
|
131
|
-
* @param {
|
|
140
|
+
* @param {any} lineState
|
|
132
141
|
* @returns
|
|
133
142
|
*/
|
|
134
143
|
export const tokenizeLine = (line, lineState) => {
|
|
@@ -140,13 +149,14 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
140
149
|
let stack = lineState.stack
|
|
141
150
|
while (index < line.length) {
|
|
142
151
|
const part = line.slice(index)
|
|
152
|
+
part
|
|
153
|
+
state
|
|
143
154
|
switch (state) {
|
|
144
155
|
case State.TopLevelContent:
|
|
145
156
|
if ((next = part.match(RE_WHITESPACE))) {
|
|
146
157
|
token = TokenType.Whitespace
|
|
147
158
|
state = State.TopLevelContent
|
|
148
159
|
} else if ((next = part.match(RE_KEYWORD))) {
|
|
149
|
-
next[0] //?
|
|
150
160
|
switch (next[0]) {
|
|
151
161
|
case 'true':
|
|
152
162
|
case 'false':
|
|
@@ -273,6 +283,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
273
283
|
} else if ((next = part.match(RE_COLON))) {
|
|
274
284
|
token = TokenType.Punctuation
|
|
275
285
|
state = State.BeforeType
|
|
286
|
+
} else if ((next = part.match(RE_KEYWORD_ENUM))) {
|
|
287
|
+
token = TokenType.Keyword
|
|
288
|
+
state = State.AfterKeywordEnum
|
|
276
289
|
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
277
290
|
token = TokenType.VariableName
|
|
278
291
|
state = State.AfterKeywordDeclaration
|
|
@@ -280,6 +293,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
280
293
|
token = TokenType.Punctuation
|
|
281
294
|
state = State.TopLevelContent
|
|
282
295
|
} else {
|
|
296
|
+
line
|
|
283
297
|
part
|
|
284
298
|
throw new Error('no')
|
|
285
299
|
}
|
|
@@ -429,7 +443,6 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
429
443
|
}
|
|
430
444
|
break
|
|
431
445
|
case State.AfterKeywordDeclare:
|
|
432
|
-
part
|
|
433
446
|
if ((next = part.match(RE_WHITESPACE))) {
|
|
434
447
|
token = TokenType.Whitespace
|
|
435
448
|
state = State.AfterKeywordDeclare
|
|
@@ -441,7 +454,7 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
441
454
|
state = State.AfterKeywordDeclare
|
|
442
455
|
} else if ((next = part.match(RE_KEYWORD_ENUM))) {
|
|
443
456
|
token = TokenType.Keyword
|
|
444
|
-
state = State.
|
|
457
|
+
state = State.AfterKeywordEnum
|
|
445
458
|
} else if ((next = part.match(RE_KEYWORD_CLASS))) {
|
|
446
459
|
token = TokenType.Keyword
|
|
447
460
|
state = State.AfterKeywordClass
|
|
@@ -453,6 +466,51 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
453
466
|
throw new Error('no')
|
|
454
467
|
}
|
|
455
468
|
break
|
|
469
|
+
|
|
470
|
+
case State.AfterKeywordEnum:
|
|
471
|
+
if ((next = part.match(RE_WHITESPACE))) {
|
|
472
|
+
token = TokenType.Whitespace
|
|
473
|
+
state = State.AfterKeywordEnum
|
|
474
|
+
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
475
|
+
token = TokenType.Type
|
|
476
|
+
state = State.AfterKeywordEnumAfterVariableName
|
|
477
|
+
} else {
|
|
478
|
+
throw new Error('no')
|
|
479
|
+
}
|
|
480
|
+
break
|
|
481
|
+
case State.AfterKeywordEnumAfterVariableName:
|
|
482
|
+
if ((next = part.match(RE_WHITESPACE))) {
|
|
483
|
+
token = TokenType.Whitespace
|
|
484
|
+
state = State.AfterKeywordEnumAfterVariableName
|
|
485
|
+
} else if ((next = part.match(RE_CURLY_OPEN))) {
|
|
486
|
+
token = TokenType.Punctuation
|
|
487
|
+
state = State.InsideEnum
|
|
488
|
+
} else {
|
|
489
|
+
throw new Error('no')
|
|
490
|
+
}
|
|
491
|
+
break
|
|
492
|
+
case State.InsideEnum:
|
|
493
|
+
if ((next = part.match(RE_WHITESPACE))) {
|
|
494
|
+
token = TokenType.Whitespace
|
|
495
|
+
state = State.InsideEnum
|
|
496
|
+
} else if ((next = part.match(RE_VARIABLE_NAME))) {
|
|
497
|
+
token = TokenType.VariableName
|
|
498
|
+
state = State.InsideEnumAfterVariableName
|
|
499
|
+
} else {
|
|
500
|
+
throw new Error('no')
|
|
501
|
+
}
|
|
502
|
+
break
|
|
503
|
+
case State.InsideEnumAfterVariableName:
|
|
504
|
+
if ((next = part.match(RE_WHITESPACE))) {
|
|
505
|
+
token = TokenType.Whitespace
|
|
506
|
+
state = State.InsideEnumAfterVariableName
|
|
507
|
+
} else if ((next = part.match(RE_EQUAL))) {
|
|
508
|
+
token = TokenType.Punctuation
|
|
509
|
+
state = State.TopLevelContent
|
|
510
|
+
} else {
|
|
511
|
+
throw new Error('no')
|
|
512
|
+
}
|
|
513
|
+
break
|
|
456
514
|
case State.InsideLineComment:
|
|
457
515
|
if ((next = part.match(RE_ANYTHING_UNTIL_END))) {
|
|
458
516
|
token = TokenType.Comment
|
|
@@ -533,11 +591,9 @@ export const tokenizeLine = (line, lineState) => {
|
|
|
533
591
|
state
|
|
534
592
|
throw new Error('no')
|
|
535
593
|
}
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
length: next[0].length,
|
|
540
|
-
})
|
|
594
|
+
const tokenLength = next[0].length
|
|
595
|
+
index += tokenLength
|
|
596
|
+
tokens.push(token, tokenLength)
|
|
541
597
|
}
|
|
542
598
|
if (state === State.AfterType && stack[0] === State.InsideClass) {
|
|
543
599
|
state = State.InsideClass
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/shared-process",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.8",
|
|
4
4
|
"description": "Utility package for @lvce-editor/server",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"node": ">=16"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@lvce-editor/extension-host": "0.10.
|
|
24
|
-
"@lvce-editor/pty-host": "0.10.
|
|
23
|
+
"@lvce-editor/extension-host": "0.10.8",
|
|
24
|
+
"@lvce-editor/pty-host": "0.10.8",
|
|
25
25
|
"debug": "^4.3.4",
|
|
26
26
|
"execa": "^6.1.0",
|
|
27
|
-
"exit-hook": "^3.1.
|
|
27
|
+
"exit-hook": "^3.1.2",
|
|
28
28
|
"got": "^12.5.2",
|
|
29
29
|
"is-object": "^1.0.2",
|
|
30
30
|
"lines-and-columns": "^2.0.3",
|
|
@@ -514,23 +514,19 @@ const addExtensionLanguages = async ({
|
|
|
514
514
|
Path.join(root, 'README.md'),
|
|
515
515
|
Path.join(root, 'dist', commitHash, 'extensions', extensionId, 'README.md')
|
|
516
516
|
)
|
|
517
|
-
|
|
518
|
-
Path.join(extensionPath,
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
'dist',
|
|
526
|
-
commitHash,
|
|
527
|
-
'extensions',
|
|
528
|
-
extensionId,
|
|
529
|
-
'extension.json'
|
|
530
|
-
)
|
|
531
|
-
)
|
|
517
|
+
for (const file of ['src', 'data', 'extension.json']) {
|
|
518
|
+
if (await FileSystem.exists(Path.join(extensionPath, file))) {
|
|
519
|
+
await FileSystem.copy(
|
|
520
|
+
Path.join(extensionPath, file),
|
|
521
|
+
Path.join(root, 'dist', commitHash, 'extensions', extensionId, file)
|
|
522
|
+
)
|
|
523
|
+
}
|
|
524
|
+
}
|
|
532
525
|
const extensionLanguages = []
|
|
533
526
|
for (const language of languages) {
|
|
527
|
+
if (!language.tokenize) {
|
|
528
|
+
continue
|
|
529
|
+
}
|
|
534
530
|
extensionLanguages.push({
|
|
535
531
|
...language,
|
|
536
532
|
tokenize: `${pathPrefix}/${commitHash}/extensions/${extensionId}/${language.tokenize}`,
|