@lvce-editor/editor-worker 19.57.0 → 19.58.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/dist/editorWorkerMain.js +181 -44
- package/package.json +1 -1
package/dist/editorWorkerMain.js
CHANGED
|
@@ -1748,7 +1748,7 @@ const codeGeneratorAccept = state => {
|
|
|
1748
1748
|
|
|
1749
1749
|
const editorStates = create$9();
|
|
1750
1750
|
const {
|
|
1751
|
-
dispose: dispose$
|
|
1751
|
+
dispose: dispose$4,
|
|
1752
1752
|
getCommandIds,
|
|
1753
1753
|
registerCommands,
|
|
1754
1754
|
wrapGetter
|
|
@@ -2309,7 +2309,7 @@ const getInitialLineState = initialLineState => {
|
|
|
2309
2309
|
return deepCopy(initialLineState);
|
|
2310
2310
|
};
|
|
2311
2311
|
|
|
2312
|
-
const state$
|
|
2312
|
+
const state$e = {
|
|
2313
2313
|
warned: []
|
|
2314
2314
|
};
|
|
2315
2315
|
const flattenTokensArray = tokens => {
|
|
@@ -2321,10 +2321,10 @@ const flattenTokensArray = tokens => {
|
|
|
2321
2321
|
return flattened;
|
|
2322
2322
|
};
|
|
2323
2323
|
const warnDeprecatedArrayReturn = (languageId, fn) => {
|
|
2324
|
-
if (state$
|
|
2324
|
+
if (state$e.warned.includes(fn)) {
|
|
2325
2325
|
return;
|
|
2326
2326
|
}
|
|
2327
|
-
state$
|
|
2327
|
+
state$e.warned.push(fn);
|
|
2328
2328
|
console.warn(`tokenizers without hasArrayReturn=false are deprecated (language ${languageId})`);
|
|
2329
2329
|
};
|
|
2330
2330
|
const safeTokenizeLine = (languageId, tokenizeLine, line, lineStateAtStart, hasArrayReturn) => {
|
|
@@ -2385,14 +2385,14 @@ const TokenizePlainText = {
|
|
|
2385
2385
|
tokenizeLine
|
|
2386
2386
|
};
|
|
2387
2387
|
|
|
2388
|
-
const state$
|
|
2388
|
+
const state$d = {
|
|
2389
2389
|
enabled: false
|
|
2390
2390
|
};
|
|
2391
2391
|
const setEnabled$1 = value => {
|
|
2392
|
-
state$
|
|
2392
|
+
state$d.enabled = value;
|
|
2393
2393
|
};
|
|
2394
2394
|
const getEnabled$1 = () => {
|
|
2395
|
-
return state$
|
|
2395
|
+
return state$d.enabled;
|
|
2396
2396
|
};
|
|
2397
2397
|
|
|
2398
2398
|
const {
|
|
@@ -2400,25 +2400,25 @@ const {
|
|
|
2400
2400
|
set: set$6
|
|
2401
2401
|
} = SyntaxHighlightingWorker;
|
|
2402
2402
|
|
|
2403
|
-
const state$
|
|
2403
|
+
const state$c = {
|
|
2404
2404
|
pending: Object.create(null),
|
|
2405
2405
|
tokenizePaths: Object.create(null),
|
|
2406
2406
|
tokenizers: Object.create(null)
|
|
2407
2407
|
};
|
|
2408
2408
|
const has = languageId => {
|
|
2409
|
-
return Object.hasOwn(state$
|
|
2409
|
+
return Object.hasOwn(state$c.tokenizers, languageId);
|
|
2410
2410
|
};
|
|
2411
2411
|
const set$5 = (languageId, tokenizer) => {
|
|
2412
|
-
state$
|
|
2412
|
+
state$c.tokenizers[languageId] = tokenizer;
|
|
2413
2413
|
};
|
|
2414
2414
|
const get$6 = languageId => {
|
|
2415
|
-
return state$
|
|
2415
|
+
return state$c.tokenizers[languageId];
|
|
2416
2416
|
};
|
|
2417
2417
|
const setTokenizePath = (languageId, tokenizePath) => {
|
|
2418
|
-
state$
|
|
2418
|
+
state$c.tokenizePaths[languageId] = tokenizePath;
|
|
2419
2419
|
};
|
|
2420
2420
|
const getTokenizePath$1 = languageId => {
|
|
2421
|
-
return state$
|
|
2421
|
+
return state$c.tokenizePaths[languageId] || '';
|
|
2422
2422
|
};
|
|
2423
2423
|
const setTokenizePaths = languages => {
|
|
2424
2424
|
for (const language of languages) {
|
|
@@ -2428,7 +2428,7 @@ const setTokenizePaths = languages => {
|
|
|
2428
2428
|
}
|
|
2429
2429
|
};
|
|
2430
2430
|
const isPending = languageId => {
|
|
2431
|
-
return Object.hasOwn(state$
|
|
2431
|
+
return Object.hasOwn(state$c.pending, languageId);
|
|
2432
2432
|
};
|
|
2433
2433
|
|
|
2434
2434
|
const tokenMaps = Object.create(null);
|
|
@@ -3256,14 +3256,14 @@ const getVisible$1 = async (editor, syncIncremental) => {
|
|
|
3256
3256
|
};
|
|
3257
3257
|
};
|
|
3258
3258
|
|
|
3259
|
-
const state$
|
|
3259
|
+
const state$b = {
|
|
3260
3260
|
enabled: false
|
|
3261
3261
|
};
|
|
3262
3262
|
const setEnabled = value => {
|
|
3263
|
-
state$
|
|
3263
|
+
state$b.enabled = value;
|
|
3264
3264
|
};
|
|
3265
3265
|
const getEnabled = () => {
|
|
3266
|
-
return state$
|
|
3266
|
+
return state$b.enabled;
|
|
3267
3267
|
};
|
|
3268
3268
|
|
|
3269
3269
|
// TODO this should be in a separate scrolling module
|
|
@@ -3490,7 +3490,94 @@ const getUrlAtOffset = (editor, offset) => {
|
|
|
3490
3490
|
const EditorChange = 1;
|
|
3491
3491
|
const EditorSelection$1 = 2;
|
|
3492
3492
|
|
|
3493
|
-
const
|
|
3493
|
+
const deliveries = new Map();
|
|
3494
|
+
const getDelta = (previous, next) => {
|
|
3495
|
+
return Object.fromEntries(Object.entries(next).filter(([key, value]) => previous[key] !== value));
|
|
3496
|
+
};
|
|
3497
|
+
const flush = async delivery => {
|
|
3498
|
+
while (delivery.pending && !delivery.disposed) {
|
|
3499
|
+
const status = delivery.pendingStatus;
|
|
3500
|
+
delivery.pending = false;
|
|
3501
|
+
if (delivery.supportsDeltas === undefined) {
|
|
3502
|
+
try {
|
|
3503
|
+
delivery.supportsDeltas = (await delivery.rpc.invoke('StatusBar.supportsEditorStatusDeltas')) === true;
|
|
3504
|
+
} catch {
|
|
3505
|
+
delivery.supportsDeltas = false;
|
|
3506
|
+
}
|
|
3507
|
+
}
|
|
3508
|
+
if (delivery.disposed) {
|
|
3509
|
+
return;
|
|
3510
|
+
}
|
|
3511
|
+
let update = status;
|
|
3512
|
+
if (delivery.hasBaseline) {
|
|
3513
|
+
if (!delivery.baseline && !status) {
|
|
3514
|
+
continue;
|
|
3515
|
+
}
|
|
3516
|
+
if (delivery.baseline && status) {
|
|
3517
|
+
const delta = getDelta(delivery.baseline, status);
|
|
3518
|
+
if (Object.keys(delta).length === 0) {
|
|
3519
|
+
continue;
|
|
3520
|
+
}
|
|
3521
|
+
if (delivery.supportsDeltas) {
|
|
3522
|
+
update = delta;
|
|
3523
|
+
}
|
|
3524
|
+
}
|
|
3525
|
+
}
|
|
3526
|
+
try {
|
|
3527
|
+
await delivery.rpc.invoke('StatusBar.handleEditorStatusChanged', update);
|
|
3528
|
+
delivery.baseline = status;
|
|
3529
|
+
delivery.hasBaseline = true;
|
|
3530
|
+
} catch (error) {
|
|
3531
|
+
delivery.baseline = undefined;
|
|
3532
|
+
delivery.hasBaseline = false;
|
|
3533
|
+
console.warn('Failed to deliver editor status:', error);
|
|
3534
|
+
}
|
|
3535
|
+
}
|
|
3536
|
+
};
|
|
3537
|
+
const run$1 = async delivery => {
|
|
3538
|
+
try {
|
|
3539
|
+
await flush(delivery);
|
|
3540
|
+
} finally {
|
|
3541
|
+
delivery.running = undefined;
|
|
3542
|
+
}
|
|
3543
|
+
// An update can arrive after flush returns but before this continuation runs.
|
|
3544
|
+
if (delivery.pending && !delivery.disposed) {
|
|
3545
|
+
await start(delivery);
|
|
3546
|
+
}
|
|
3547
|
+
};
|
|
3548
|
+
const start = delivery => {
|
|
3549
|
+
delivery.running = run$1(delivery);
|
|
3550
|
+
return delivery.running;
|
|
3551
|
+
};
|
|
3552
|
+
const dispose$3 = rpcId => {
|
|
3553
|
+
const delivery = deliveries.get(rpcId);
|
|
3554
|
+
if (delivery) {
|
|
3555
|
+
delivery.disposed = true;
|
|
3556
|
+
deliveries.delete(rpcId);
|
|
3557
|
+
}
|
|
3558
|
+
};
|
|
3559
|
+
const send$2 = (rpcId, rpc, status) => {
|
|
3560
|
+
let delivery = deliveries.get(rpcId);
|
|
3561
|
+
if (!delivery || delivery.rpc !== rpc) {
|
|
3562
|
+
dispose$3(rpcId);
|
|
3563
|
+
delivery = {
|
|
3564
|
+
baseline: undefined,
|
|
3565
|
+
disposed: false,
|
|
3566
|
+
hasBaseline: false,
|
|
3567
|
+
pending: false,
|
|
3568
|
+
pendingStatus: undefined,
|
|
3569
|
+
rpc,
|
|
3570
|
+
running: undefined,
|
|
3571
|
+
supportsDeltas: undefined
|
|
3572
|
+
};
|
|
3573
|
+
deliveries.set(rpcId, delivery);
|
|
3574
|
+
}
|
|
3575
|
+
delivery.pendingStatus = status;
|
|
3576
|
+
delivery.pending = true;
|
|
3577
|
+
return delivery.running || start(delivery);
|
|
3578
|
+
};
|
|
3579
|
+
|
|
3580
|
+
const state$a = Object.create(null);
|
|
3494
3581
|
|
|
3495
3582
|
/**
|
|
3496
3583
|
* Register a listener for a specific event type
|
|
@@ -3500,13 +3587,13 @@ const state$9 = Object.create(null);
|
|
|
3500
3587
|
const registerListener$1 = (listenerType, rpcId) => {
|
|
3501
3588
|
number(listenerType);
|
|
3502
3589
|
number(rpcId);
|
|
3503
|
-
if (!Object.hasOwn(state$
|
|
3504
|
-
state$
|
|
3590
|
+
if (!Object.hasOwn(state$a, listenerType)) {
|
|
3591
|
+
state$a[listenerType] = [];
|
|
3505
3592
|
}
|
|
3506
3593
|
|
|
3507
3594
|
// Avoid duplicate registrations
|
|
3508
|
-
if (!state$
|
|
3509
|
-
state$
|
|
3595
|
+
if (!state$a[listenerType].includes(rpcId)) {
|
|
3596
|
+
state$a[listenerType].push(rpcId);
|
|
3510
3597
|
}
|
|
3511
3598
|
};
|
|
3512
3599
|
|
|
@@ -3518,10 +3605,13 @@ const registerListener$1 = (listenerType, rpcId) => {
|
|
|
3518
3605
|
const unregisterListener$1 = (listenerType, rpcId) => {
|
|
3519
3606
|
number(listenerType);
|
|
3520
3607
|
number(rpcId);
|
|
3521
|
-
if (
|
|
3522
|
-
|
|
3608
|
+
if (listenerType === EditorSelection$1) {
|
|
3609
|
+
dispose$3(rpcId);
|
|
3610
|
+
}
|
|
3611
|
+
if (Object.hasOwn(state$a, listenerType)) {
|
|
3612
|
+
const index = state$a[listenerType].indexOf(rpcId);
|
|
3523
3613
|
if (index !== -1) {
|
|
3524
|
-
state$
|
|
3614
|
+
state$a[listenerType].splice(index, 1);
|
|
3525
3615
|
}
|
|
3526
3616
|
}
|
|
3527
3617
|
};
|
|
@@ -3533,7 +3623,7 @@ const unregisterListener$1 = (listenerType, rpcId) => {
|
|
|
3533
3623
|
*/
|
|
3534
3624
|
const getListeners = listenerType => {
|
|
3535
3625
|
number(listenerType);
|
|
3536
|
-
return state$
|
|
3626
|
+
return state$a[listenerType] || [];
|
|
3537
3627
|
};
|
|
3538
3628
|
|
|
3539
3629
|
/**
|
|
@@ -4962,12 +5052,12 @@ const launchColorPickerWorker = async () => {
|
|
|
4962
5052
|
return launchWorker(name, url, undefined, getColorPickerWorkerCommandMap());
|
|
4963
5053
|
};
|
|
4964
5054
|
|
|
4965
|
-
const state$
|
|
5055
|
+
const state$9 = {};
|
|
4966
5056
|
const getOrCreate$3 = () => {
|
|
4967
|
-
if (!state$
|
|
4968
|
-
state$
|
|
5057
|
+
if (!state$9.workerPromise) {
|
|
5058
|
+
state$9.workerPromise = launchColorPickerWorker();
|
|
4969
5059
|
}
|
|
4970
|
-
return state$
|
|
5060
|
+
return state$9.workerPromise;
|
|
4971
5061
|
};
|
|
4972
5062
|
const invoke$6 = async (method, ...params) => {
|
|
4973
5063
|
const worker = await getOrCreate$3();
|
|
@@ -5614,7 +5704,7 @@ const diff2 = uid => {
|
|
|
5614
5704
|
|
|
5615
5705
|
const autoSaveDelay = 1000;
|
|
5616
5706
|
const pendingSaves = new Map();
|
|
5617
|
-
const state$
|
|
5707
|
+
const state$8 = {
|
|
5618
5708
|
nextToken: 0
|
|
5619
5709
|
};
|
|
5620
5710
|
const run = async (uid, token, save) => {
|
|
@@ -5625,7 +5715,7 @@ const run = async (uid, token, save) => {
|
|
|
5625
5715
|
};
|
|
5626
5716
|
const schedule = (uid, save) => {
|
|
5627
5717
|
dispose$2(uid);
|
|
5628
|
-
const token = ++state$
|
|
5718
|
+
const token = ++state$8.nextToken;
|
|
5629
5719
|
const timeout = setTimeout(run, autoSaveDelay, uid, token, save);
|
|
5630
5720
|
pendingSaves.set(uid, {
|
|
5631
5721
|
timeout,
|
|
@@ -5665,21 +5755,34 @@ const getEditorStatus = editor => {
|
|
|
5665
5755
|
};
|
|
5666
5756
|
};
|
|
5667
5757
|
|
|
5668
|
-
const
|
|
5669
|
-
|
|
5758
|
+
const sendToListener = async (rpcId, status) => {
|
|
5759
|
+
const rpc = get$9(rpcId);
|
|
5760
|
+
if (rpc) {
|
|
5761
|
+
await send$2(rpcId, rpc, status);
|
|
5762
|
+
}
|
|
5670
5763
|
};
|
|
5671
|
-
const
|
|
5672
|
-
if (
|
|
5764
|
+
const initializeListener = async rpcId => {
|
|
5765
|
+
if (!getListeners(EditorSelection$1).includes(rpcId)) {
|
|
5673
5766
|
return;
|
|
5674
5767
|
}
|
|
5675
|
-
const
|
|
5676
|
-
|
|
5768
|
+
const editor = getKeys$2().map(uid => get$8(Number(uid))?.newState).find(state => {
|
|
5769
|
+
const {
|
|
5770
|
+
focused,
|
|
5771
|
+
initial
|
|
5772
|
+
} = state || {};
|
|
5773
|
+
return focused && !initial;
|
|
5774
|
+
});
|
|
5775
|
+
await sendToListener(rpcId, editor ? getEditorStatus(editor) : undefined);
|
|
5776
|
+
};
|
|
5777
|
+
const notifyEditorStatusChange = async (_oldEditor, newEditor) => {
|
|
5778
|
+
if (newEditor.initial || !newEditor.focused) {
|
|
5677
5779
|
return;
|
|
5678
5780
|
}
|
|
5679
|
-
|
|
5781
|
+
const status = getEditorStatus(newEditor);
|
|
5782
|
+
await Promise.all(getListeners(EditorSelection$1).map(rpcId => sendToListener(rpcId, status)));
|
|
5680
5783
|
};
|
|
5681
5784
|
const notifyEditorStatusCleared = async () => {
|
|
5682
|
-
await
|
|
5785
|
+
await Promise.all(getListeners(EditorSelection$1).map(rpcId => sendToListener(rpcId, undefined)));
|
|
5683
5786
|
};
|
|
5684
5787
|
|
|
5685
5788
|
const addWidget$1 = widget => {
|
|
@@ -5774,7 +5877,7 @@ const disposeEditor = async editorUid => {
|
|
|
5774
5877
|
});
|
|
5775
5878
|
dispose$1(editorUid);
|
|
5776
5879
|
dispose$2(editorUid);
|
|
5777
|
-
dispose$
|
|
5880
|
+
dispose$4(editorUid);
|
|
5778
5881
|
if (getKeys$2().length === 0) {
|
|
5779
5882
|
await notifyEditorStatusCleared();
|
|
5780
5883
|
}
|
|
@@ -6048,8 +6151,39 @@ const isFormattingError = error => {
|
|
|
6048
6151
|
return error && error instanceof Error && error.message.startsWith(expectedErrorMessage$1);
|
|
6049
6152
|
};
|
|
6050
6153
|
|
|
6154
|
+
const state$7 = {
|
|
6155
|
+
configured: false,
|
|
6156
|
+
lastId: -1,
|
|
6157
|
+
nextId: 0
|
|
6158
|
+
};
|
|
6159
|
+
const configure = (start, end) => {
|
|
6160
|
+
const {
|
|
6161
|
+
configured
|
|
6162
|
+
} = state$7;
|
|
6163
|
+
if (configured) {
|
|
6164
|
+
throw new Error('Component id range is already configured');
|
|
6165
|
+
}
|
|
6166
|
+
if (!Number.isSafeInteger(start) || !Number.isSafeInteger(end) || start <= 0 || end < start) {
|
|
6167
|
+
throw new Error('Invalid component id range');
|
|
6168
|
+
}
|
|
6169
|
+
state$7.nextId = start;
|
|
6170
|
+
state$7.lastId = end;
|
|
6171
|
+
state$7.configured = true;
|
|
6172
|
+
};
|
|
6051
6173
|
const create$8 = () => {
|
|
6052
|
-
|
|
6174
|
+
const {
|
|
6175
|
+
configured,
|
|
6176
|
+
lastId,
|
|
6177
|
+
nextId
|
|
6178
|
+
} = state$7;
|
|
6179
|
+
if (!configured) {
|
|
6180
|
+
// Compatibility with renderer versions that do not assign worker id ranges.
|
|
6181
|
+
return Math.random();
|
|
6182
|
+
}
|
|
6183
|
+
if (nextId > lastId) {
|
|
6184
|
+
throw new Error('Component id range exhausted');
|
|
6185
|
+
}
|
|
6186
|
+
return state$7.nextId++;
|
|
6053
6187
|
};
|
|
6054
6188
|
|
|
6055
6189
|
const Message = 9;
|
|
@@ -14013,6 +14147,7 @@ const handleMessagePort = async (port, rpcId) => {
|
|
|
14013
14147
|
});
|
|
14014
14148
|
if (rpcId) {
|
|
14015
14149
|
set$h(rpcId, rpc);
|
|
14150
|
+
await initializeListener(rpcId);
|
|
14016
14151
|
}
|
|
14017
14152
|
};
|
|
14018
14153
|
|
|
@@ -14696,10 +14831,11 @@ const refreshGutterDecorationsAll = async () => {
|
|
|
14696
14831
|
* @param listenerType - The type of event to listen for (from ListenerType enum)
|
|
14697
14832
|
* @param rpcId - The RPC ID of the listener that will be notified
|
|
14698
14833
|
*/
|
|
14699
|
-
const registerListener = (listenerType, rpcId) => {
|
|
14834
|
+
const registerListener = async (listenerType, rpcId) => {
|
|
14700
14835
|
number(listenerType);
|
|
14701
14836
|
number(rpcId);
|
|
14702
14837
|
registerListener$1(listenerType, rpcId);
|
|
14838
|
+
await initializeListener(rpcId);
|
|
14703
14839
|
};
|
|
14704
14840
|
|
|
14705
14841
|
const renderAdditionalFocusContext$1 = (oldState, newState) => {
|
|
@@ -16511,9 +16647,10 @@ const commandMap = {
|
|
|
16511
16647
|
'Hover.handleSashPointerUp': handleSashPointerUp,
|
|
16512
16648
|
'Hover.loadContent': loadContent$1,
|
|
16513
16649
|
'Hover.render': renderHover,
|
|
16650
|
+
'Id.configure': configure,
|
|
16514
16651
|
'Initialize.initialize': intialize,
|
|
16515
16652
|
'Listener.register': registerListener,
|
|
16516
|
-
'Listener.registerListener': registerListener
|
|
16653
|
+
'Listener.registerListener': registerListener,
|
|
16517
16654
|
'Listener.unregister': unregisterListener,
|
|
16518
16655
|
'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker': sendDeprecatedExtensionHostPortToExtensionManagementWorker,
|
|
16519
16656
|
'SendMessagePortToExtensionManagementWorker.sendMessagePortToExtensionManagementWorker': sendMessagePortToExtensionManagementWorker
|