@lvce-editor/editor-worker 17.1.0 → 18.0.0
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 +118 -8
- package/package.json +1 -1
package/dist/editorWorkerMain.js
CHANGED
|
@@ -1335,6 +1335,10 @@ const sendMessagePortToEditorWorker = async (port, rpcId) => {
|
|
|
1335
1335
|
const command = 'HandleMessagePort.handleMessagePort';
|
|
1336
1336
|
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToEditorWorker', port, command, rpcId);
|
|
1337
1337
|
};
|
|
1338
|
+
const sendMessagePortToClipBoardWorker = async (port, rpcId) => {
|
|
1339
|
+
const command = 'ClipBoard.handleMessagePort';
|
|
1340
|
+
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToClipBoardWorker', port, command, rpcId);
|
|
1341
|
+
};
|
|
1338
1342
|
const sendMessagePortToOpenerWorker = async (port, rpcId) => {
|
|
1339
1343
|
const command = 'HandleMessagePort.handleMessagePort';
|
|
1340
1344
|
await invokeAndTransfer$1('SendMessagePortToExtensionHostWorker.sendMessagePortToOpenerWorker', port, command, rpcId);
|
|
@@ -1641,6 +1645,7 @@ const RendererWorker = {
|
|
|
1641
1645
|
searchFileFetch,
|
|
1642
1646
|
searchFileHtml,
|
|
1643
1647
|
searchFileMemory,
|
|
1648
|
+
sendMessagePortToClipBoardWorker,
|
|
1644
1649
|
sendMessagePortToEditorWorker,
|
|
1645
1650
|
sendMessagePortToErrorWorker,
|
|
1646
1651
|
sendMessagePortToExtensionHostWorker,
|
|
@@ -1991,7 +1996,7 @@ const getInitialLineState = initialLineState => {
|
|
|
1991
1996
|
return deepCopy(initialLineState);
|
|
1992
1997
|
};
|
|
1993
1998
|
|
|
1994
|
-
const state$
|
|
1999
|
+
const state$8 = {
|
|
1995
2000
|
warned: []
|
|
1996
2001
|
};
|
|
1997
2002
|
const flattenTokensArray = tokens => {
|
|
@@ -2003,10 +2008,10 @@ const flattenTokensArray = tokens => {
|
|
|
2003
2008
|
return flattened;
|
|
2004
2009
|
};
|
|
2005
2010
|
const warnDeprecatedArrayReturn = (languageId, fn) => {
|
|
2006
|
-
if (state$
|
|
2011
|
+
if (state$8.warned.includes(fn)) {
|
|
2007
2012
|
return;
|
|
2008
2013
|
}
|
|
2009
|
-
state$
|
|
2014
|
+
state$8.warned.push(fn);
|
|
2010
2015
|
console.warn(`tokenizers without hasArrayReturn=false are deprecated (language ${languageId})`);
|
|
2011
2016
|
};
|
|
2012
2017
|
const safeTokenizeLine = (languageId, tokenizeLine, line, lineStateAtStart, hasArrayReturn) => {
|
|
@@ -2080,21 +2085,21 @@ const {
|
|
|
2080
2085
|
set: set$5
|
|
2081
2086
|
} = SyntaxHighlightingWorker;
|
|
2082
2087
|
|
|
2083
|
-
const state$
|
|
2088
|
+
const state$7 = {
|
|
2084
2089
|
pending: Object.create(null),
|
|
2085
2090
|
tokenizers: Object.create(null)
|
|
2086
2091
|
};
|
|
2087
2092
|
const has = languageId => {
|
|
2088
|
-
return languageId in state$
|
|
2093
|
+
return languageId in state$7.tokenizers;
|
|
2089
2094
|
};
|
|
2090
2095
|
const set$4 = (languageId, tokenizer) => {
|
|
2091
|
-
state$
|
|
2096
|
+
state$7.tokenizers[languageId] = tokenizer;
|
|
2092
2097
|
};
|
|
2093
2098
|
const get$4 = languageId => {
|
|
2094
|
-
return state$
|
|
2099
|
+
return state$7.tokenizers[languageId];
|
|
2095
2100
|
};
|
|
2096
2101
|
const isPending = languageId => {
|
|
2097
|
-
return languageId in state$
|
|
2102
|
+
return languageId in state$7.pending;
|
|
2098
2103
|
};
|
|
2099
2104
|
|
|
2100
2105
|
const tokenMaps = Object.create(null);
|
|
@@ -3116,6 +3121,81 @@ const getUrlAtOffset = (editor, offset) => {
|
|
|
3116
3121
|
return undefined;
|
|
3117
3122
|
};
|
|
3118
3123
|
|
|
3124
|
+
const EditorChange = 1;
|
|
3125
|
+
|
|
3126
|
+
const state$6 = Object.create(null);
|
|
3127
|
+
|
|
3128
|
+
/**
|
|
3129
|
+
* Register a listener for a specific event type
|
|
3130
|
+
* @param listenerType - The type of event to listen for
|
|
3131
|
+
* @param rpcId - The RPC ID of the listener
|
|
3132
|
+
*/
|
|
3133
|
+
const registerListener$1 = (listenerType, rpcId) => {
|
|
3134
|
+
number(listenerType);
|
|
3135
|
+
number(rpcId);
|
|
3136
|
+
if (!state$6[listenerType]) {
|
|
3137
|
+
state$6[listenerType] = [];
|
|
3138
|
+
}
|
|
3139
|
+
|
|
3140
|
+
// Avoid duplicate registrations
|
|
3141
|
+
if (!state$6[listenerType].includes(rpcId)) {
|
|
3142
|
+
state$6[listenerType].push(rpcId);
|
|
3143
|
+
}
|
|
3144
|
+
};
|
|
3145
|
+
|
|
3146
|
+
/**
|
|
3147
|
+
* Unregister a listener for a specific event type
|
|
3148
|
+
* @param listenerType - The type of event to listen for
|
|
3149
|
+
* @param rpcId - The RPC ID of the listener
|
|
3150
|
+
*/
|
|
3151
|
+
const unregisterListener$1 = (listenerType, rpcId) => {
|
|
3152
|
+
number(listenerType);
|
|
3153
|
+
number(rpcId);
|
|
3154
|
+
if (state$6[listenerType]) {
|
|
3155
|
+
const index = state$6[listenerType].indexOf(rpcId);
|
|
3156
|
+
if (index !== -1) {
|
|
3157
|
+
state$6[listenerType].splice(index, 1);
|
|
3158
|
+
}
|
|
3159
|
+
}
|
|
3160
|
+
};
|
|
3161
|
+
|
|
3162
|
+
/**
|
|
3163
|
+
* Get all registered listeners for a specific event type
|
|
3164
|
+
* @param listenerType - The type of event
|
|
3165
|
+
* @returns Array of RPC IDs
|
|
3166
|
+
*/
|
|
3167
|
+
const getListeners = listenerType => {
|
|
3168
|
+
number(listenerType);
|
|
3169
|
+
return state$6[listenerType] || [];
|
|
3170
|
+
};
|
|
3171
|
+
|
|
3172
|
+
/**
|
|
3173
|
+
* Notify all registered listeners of a specific event type
|
|
3174
|
+
* @param listenerType - The type of event that occurred
|
|
3175
|
+
* @param method - The method name to invoke on the listener
|
|
3176
|
+
* @param params - Parameters to pass to the listener method
|
|
3177
|
+
*/
|
|
3178
|
+
const notifyListeners = async (listenerType, method, ...params) => {
|
|
3179
|
+
number(listenerType);
|
|
3180
|
+
string(method);
|
|
3181
|
+
const rpcIds = getListeners(listenerType);
|
|
3182
|
+
|
|
3183
|
+
// Notify all listeners in parallel
|
|
3184
|
+
const notifications = rpcIds.map(async rpcId => {
|
|
3185
|
+
try {
|
|
3186
|
+
const rpc = get$7(rpcId);
|
|
3187
|
+
if (rpc) {
|
|
3188
|
+
await rpc.invoke(method, ...params);
|
|
3189
|
+
}
|
|
3190
|
+
} catch (error) {
|
|
3191
|
+
// Silently ignore errors from individual listeners
|
|
3192
|
+
// to prevent one failing listener from affecting others
|
|
3193
|
+
console.warn(`Failed to notify listener ${rpcId}:`, error);
|
|
3194
|
+
}
|
|
3195
|
+
});
|
|
3196
|
+
await Promise.all(notifications);
|
|
3197
|
+
};
|
|
3198
|
+
|
|
3119
3199
|
const splitLines = lines => {
|
|
3120
3200
|
if (!lines) {
|
|
3121
3201
|
return [''];
|
|
@@ -3555,6 +3635,12 @@ const scheduleDocumentAndCursorsSelections = async (editor, changes, selectionCh
|
|
|
3555
3635
|
if (!editor.modified) {
|
|
3556
3636
|
await notifyTabModifiedStatusChange(editor.uri);
|
|
3557
3637
|
}
|
|
3638
|
+
|
|
3639
|
+
// Notify registered listeners about editor changes
|
|
3640
|
+
notifyListeners(EditorChange, 'handleEditorChanged', editor.uid, editor.uri, changes).catch(error => {
|
|
3641
|
+
// Silently ignore notification errors to not interrupt the edit flow
|
|
3642
|
+
console.warn('Failed to notify editor change listeners:', error);
|
|
3643
|
+
});
|
|
3558
3644
|
const incrementalEdits = await getIncrementalEdits(editor, newEditorWithDecorations);
|
|
3559
3645
|
const editorWithNewWidgets = await applyWidgetChanges(newEditorWithDecorations, changes);
|
|
3560
3646
|
const newEditor2 = {
|
|
@@ -10830,6 +10916,17 @@ const moveLineUp = editor => {
|
|
|
10830
10916
|
return editor;
|
|
10831
10917
|
};
|
|
10832
10918
|
|
|
10919
|
+
/**
|
|
10920
|
+
* Register a listener for editor events
|
|
10921
|
+
* @param listenerType - The type of event to listen for (from ListenerType enum)
|
|
10922
|
+
* @param rpcId - The RPC ID of the listener that will be notified
|
|
10923
|
+
*/
|
|
10924
|
+
const registerListener = (listenerType, rpcId) => {
|
|
10925
|
+
number(listenerType);
|
|
10926
|
+
number(rpcId);
|
|
10927
|
+
registerListener$1(listenerType, rpcId);
|
|
10928
|
+
};
|
|
10929
|
+
|
|
10833
10930
|
const getCursorsVirtualDom = cursors => {
|
|
10834
10931
|
const dom = [];
|
|
10835
10932
|
for (const translate of cursors) {
|
|
@@ -11207,6 +11304,17 @@ const setDebugEnabled = (state, enabled) => {
|
|
|
11207
11304
|
return state;
|
|
11208
11305
|
};
|
|
11209
11306
|
|
|
11307
|
+
/**
|
|
11308
|
+
* Unregister a listener for editor events
|
|
11309
|
+
* @param listenerType - The type of event to stop listening for
|
|
11310
|
+
* @param rpcId - The RPC ID of the listener to unregister
|
|
11311
|
+
*/
|
|
11312
|
+
const unregisterListener = (listenerType, rpcId) => {
|
|
11313
|
+
number(listenerType);
|
|
11314
|
+
number(rpcId);
|
|
11315
|
+
unregisterListener$1(listenerType, rpcId);
|
|
11316
|
+
};
|
|
11317
|
+
|
|
11210
11318
|
const invoke = async (method, ...params) => {
|
|
11211
11319
|
const worker = get$7(DebugWorker);
|
|
11212
11320
|
return worker.invoke(method, ...params);
|
|
@@ -11500,6 +11608,8 @@ const commandMap = {
|
|
|
11500
11608
|
'Hover.loadContent': loadContent,
|
|
11501
11609
|
'Hover.render': renderHover,
|
|
11502
11610
|
'Initialize.initialize': intialize,
|
|
11611
|
+
'Listener.register': registerListener,
|
|
11612
|
+
'Listener.unregister': unregisterListener,
|
|
11503
11613
|
'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker': sendMessagePortToExtensionHostWorker2
|
|
11504
11614
|
};
|
|
11505
11615
|
|