@lvce-editor/completion-worker 1.25.0 → 1.27.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/README.md +1 -1
- package/dist/completionWorkerMain.js +158 -87
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -527,7 +527,7 @@ const create$4$1 = (method, params) => {
|
|
|
527
527
|
};
|
|
528
528
|
};
|
|
529
529
|
const callbacks = Object.create(null);
|
|
530
|
-
const set$
|
|
530
|
+
const set$6 = (id, fn) => {
|
|
531
531
|
callbacks[id] = fn;
|
|
532
532
|
};
|
|
533
533
|
const get$2 = id => {
|
|
@@ -546,7 +546,7 @@ const registerPromise = () => {
|
|
|
546
546
|
resolve,
|
|
547
547
|
promise
|
|
548
548
|
} = Promise.withResolvers();
|
|
549
|
-
set$
|
|
549
|
+
set$6(id, resolve);
|
|
550
550
|
return {
|
|
551
551
|
id,
|
|
552
552
|
promise
|
|
@@ -891,10 +891,10 @@ const send = (transport, method, ...params) => {
|
|
|
891
891
|
const message = create$4$1(method, params);
|
|
892
892
|
transport.send(message);
|
|
893
893
|
};
|
|
894
|
-
const invoke$
|
|
894
|
+
const invoke$4 = (ipc, method, ...params) => {
|
|
895
895
|
return invokeHelper(ipc, method, params, false);
|
|
896
896
|
};
|
|
897
|
-
const invokeAndTransfer$
|
|
897
|
+
const invokeAndTransfer$3 = (ipc, method, ...params) => {
|
|
898
898
|
return invokeHelper(ipc, method, params, true);
|
|
899
899
|
};
|
|
900
900
|
|
|
@@ -930,10 +930,10 @@ const createRpc = ipc => {
|
|
|
930
930
|
send(ipc, method, ...params);
|
|
931
931
|
},
|
|
932
932
|
invoke(method, ...params) {
|
|
933
|
-
return invoke$
|
|
933
|
+
return invoke$4(ipc, method, ...params);
|
|
934
934
|
},
|
|
935
935
|
invokeAndTransfer(method, ...params) {
|
|
936
|
-
return invokeAndTransfer$
|
|
936
|
+
return invokeAndTransfer$3(ipc, method, ...params);
|
|
937
937
|
},
|
|
938
938
|
async dispose() {
|
|
939
939
|
await ipc?.dispose();
|
|
@@ -1019,6 +1019,25 @@ const WebWorkerRpcClient = {
|
|
|
1019
1019
|
__proto__: null,
|
|
1020
1020
|
create: create$4
|
|
1021
1021
|
};
|
|
1022
|
+
const createMockRpc = ({
|
|
1023
|
+
commandMap
|
|
1024
|
+
}) => {
|
|
1025
|
+
const invocations = [];
|
|
1026
|
+
const invoke = (method, ...params) => {
|
|
1027
|
+
invocations.push([method, ...params]);
|
|
1028
|
+
const command = commandMap[method];
|
|
1029
|
+
if (!command) {
|
|
1030
|
+
throw new Error(`command ${method} not found`);
|
|
1031
|
+
}
|
|
1032
|
+
return command(...params);
|
|
1033
|
+
};
|
|
1034
|
+
const mockRpc = {
|
|
1035
|
+
invoke,
|
|
1036
|
+
invokeAndTransfer: invoke,
|
|
1037
|
+
invocations
|
|
1038
|
+
};
|
|
1039
|
+
return mockRpc;
|
|
1040
|
+
};
|
|
1022
1041
|
|
|
1023
1042
|
const toCommandId = key => {
|
|
1024
1043
|
const dotIndex = key.indexOf('.');
|
|
@@ -1104,16 +1123,29 @@ const terminate = () => {
|
|
|
1104
1123
|
globalThis.close();
|
|
1105
1124
|
};
|
|
1106
1125
|
|
|
1126
|
+
const Text = 12;
|
|
1127
|
+
|
|
1128
|
+
const Enter = 3;
|
|
1129
|
+
const Escape = 8;
|
|
1130
|
+
const Space$1 = 9;
|
|
1131
|
+
const End = 255;
|
|
1132
|
+
const Home = 12;
|
|
1133
|
+
const UpArrow = 14;
|
|
1134
|
+
const DownArrow = 16;
|
|
1135
|
+
|
|
1136
|
+
const CtrlCmd = 1 << 11 >>> 0;
|
|
1137
|
+
|
|
1138
|
+
const EditorWorker$2 = 99;
|
|
1139
|
+
const ExtensionHostWorker = 44;
|
|
1140
|
+
|
|
1107
1141
|
const rpcs = Object.create(null);
|
|
1108
|
-
const set$
|
|
1142
|
+
const set$5 = (id, rpc) => {
|
|
1109
1143
|
rpcs[id] = rpc;
|
|
1110
1144
|
};
|
|
1111
1145
|
const get$1 = id => {
|
|
1112
1146
|
return rpcs[id];
|
|
1113
1147
|
};
|
|
1114
1148
|
|
|
1115
|
-
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
1116
|
-
|
|
1117
1149
|
const create$1 = rpcId => {
|
|
1118
1150
|
return {
|
|
1119
1151
|
// @ts-ignore
|
|
@@ -1129,7 +1161,7 @@ const create$1 = rpcId => {
|
|
|
1129
1161
|
return rpc.invokeAndTransfer(method, ...params);
|
|
1130
1162
|
},
|
|
1131
1163
|
set(rpc) {
|
|
1132
|
-
set$
|
|
1164
|
+
set$5(rpcId, rpc);
|
|
1133
1165
|
},
|
|
1134
1166
|
async dispose() {
|
|
1135
1167
|
const rpc = get$1(rpcId);
|
|
@@ -1137,81 +1169,147 @@ const create$1 = rpcId => {
|
|
|
1137
1169
|
}
|
|
1138
1170
|
};
|
|
1139
1171
|
};
|
|
1140
|
-
|
|
1141
|
-
const ExtensionHostWorker = 44;
|
|
1172
|
+
|
|
1142
1173
|
const {
|
|
1143
|
-
invoke: invoke$
|
|
1144
|
-
invokeAndTransfer: invokeAndTransfer$
|
|
1145
|
-
set: set$
|
|
1146
|
-
dispose: dispose$
|
|
1147
|
-
} = create$1(EditorWorker$
|
|
1148
|
-
const sendMessagePortToExtensionHostWorker$
|
|
1174
|
+
invoke: invoke$3,
|
|
1175
|
+
invokeAndTransfer: invokeAndTransfer$2,
|
|
1176
|
+
set: set$4,
|
|
1177
|
+
dispose: dispose$4
|
|
1178
|
+
} = create$1(EditorWorker$2);
|
|
1179
|
+
const sendMessagePortToExtensionHostWorker$2 = async port => {
|
|
1149
1180
|
const command = 'HandleMessagePort.handleMessagePort2';
|
|
1150
|
-
await invokeAndTransfer$
|
|
1181
|
+
await invokeAndTransfer$2(
|
|
1151
1182
|
// @ts-ignore
|
|
1152
|
-
'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, 0
|
|
1153
|
-
);
|
|
1183
|
+
'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, 0);
|
|
1154
1184
|
};
|
|
1155
|
-
|
|
1156
1185
|
// TODO add tests for this
|
|
1157
|
-
const activateByEvent$
|
|
1186
|
+
const activateByEvent$2 = async event => {
|
|
1158
1187
|
// @ts-ignore
|
|
1159
|
-
await invoke$
|
|
1188
|
+
await invoke$3('ActivateByEvent.activateByEvent', event);
|
|
1160
1189
|
};
|
|
1161
1190
|
const applyEdit$2 = async (editorUid, changes) => {
|
|
1162
1191
|
// @ts-ignore
|
|
1163
|
-
await invoke$
|
|
1192
|
+
await invoke$3('Editor.applyEdit2', editorUid, changes);
|
|
1193
|
+
};
|
|
1194
|
+
const applyWorkspaceEdit = async (editorUid, changes) => {
|
|
1195
|
+
// @ts-ignore
|
|
1196
|
+
await invoke$3('Editor.applyWorkspaceEdit', editorUid, changes);
|
|
1164
1197
|
};
|
|
1165
1198
|
const closeWidget$1 = async (editorUid, widgetId, widgetName, focusId) => {
|
|
1166
1199
|
// @ts-ignore
|
|
1167
|
-
await invoke$
|
|
1200
|
+
await invoke$3('Editor.closeWidget2', editorUid, widgetId, widgetName, focusId);
|
|
1168
1201
|
};
|
|
1169
1202
|
const getWordAt$1 = async (uid, rowIndex, columnIndex) => {
|
|
1170
1203
|
// @ts-ignore
|
|
1171
|
-
const word = await invoke$
|
|
1204
|
+
const word = await invoke$3('Editor.getWordAt2', uid, rowIndex, columnIndex);
|
|
1172
1205
|
return word;
|
|
1173
1206
|
};
|
|
1174
1207
|
const getLines$2 = async editorUid => {
|
|
1175
|
-
const lines = await invoke$
|
|
1208
|
+
const lines = await invoke$3('Editor.getLines2', editorUid);
|
|
1176
1209
|
return lines;
|
|
1177
1210
|
};
|
|
1178
1211
|
const getPositionAtCursor$2 = async parentUid => {
|
|
1179
|
-
const position = await invoke$
|
|
1212
|
+
const position = await invoke$3('Editor.getPositionAtCursor', parentUid);
|
|
1180
1213
|
return position;
|
|
1181
1214
|
};
|
|
1215
|
+
const getOffsetAtCursor$2 = async editorId => {
|
|
1216
|
+
// @ts-ignore
|
|
1217
|
+
return await invoke$3('Editor.getOffsetAtCursor', editorId);
|
|
1218
|
+
};
|
|
1182
1219
|
const getSelections$2 = async editorUid => {
|
|
1183
|
-
const selections = await invoke$
|
|
1220
|
+
const selections = await invoke$3('Editor.getSelections2', editorUid);
|
|
1184
1221
|
return selections;
|
|
1185
1222
|
};
|
|
1186
1223
|
const getWordAtOffset2$1 = async editorUid => {
|
|
1187
|
-
return invoke$
|
|
1224
|
+
return invoke$3('Editor.getWordAtOffset2', editorUid);
|
|
1188
1225
|
};
|
|
1189
1226
|
const getWordBefore$2 = async (editorUid, rowIndex, columnIndex) => {
|
|
1190
|
-
return invoke$
|
|
1227
|
+
return invoke$3('Editor.getWordBefore2', editorUid, rowIndex, columnIndex);
|
|
1228
|
+
};
|
|
1229
|
+
const updateDebugInfo = async info => {
|
|
1230
|
+
await invoke$3('Editor.updateDebugInfo', info);
|
|
1231
|
+
};
|
|
1232
|
+
const getUri = async editorUid => {
|
|
1233
|
+
// @ts-ignore
|
|
1234
|
+
return invoke$3('Editor.getUri', editorUid);
|
|
1235
|
+
};
|
|
1236
|
+
const getLanguageId = async editorUid => {
|
|
1237
|
+
// @ts-ignore
|
|
1238
|
+
return invoke$3('Editor.getLanguageId', editorUid);
|
|
1191
1239
|
};
|
|
1192
|
-
const
|
|
1240
|
+
const getProblems = async () => {
|
|
1241
|
+
// @ts-ignore
|
|
1242
|
+
return invoke$3('Editor.getProblems');
|
|
1243
|
+
};
|
|
1244
|
+
const registerMockRpc$1 = commandMap => {
|
|
1245
|
+
const mockRpc = createMockRpc({
|
|
1246
|
+
commandMap
|
|
1247
|
+
});
|
|
1248
|
+
set$4(mockRpc);
|
|
1249
|
+
return mockRpc;
|
|
1250
|
+
};
|
|
1251
|
+
|
|
1252
|
+
const EditorWorker$1 = {
|
|
1193
1253
|
__proto__: null,
|
|
1194
|
-
activateByEvent: activateByEvent$
|
|
1254
|
+
activateByEvent: activateByEvent$2,
|
|
1195
1255
|
applyEdit: applyEdit$2,
|
|
1256
|
+
applyWorkspaceEdit,
|
|
1196
1257
|
closeWidget: closeWidget$1,
|
|
1197
|
-
dispose: dispose$
|
|
1258
|
+
dispose: dispose$4,
|
|
1259
|
+
getLanguageId,
|
|
1198
1260
|
getLines: getLines$2,
|
|
1261
|
+
getOffsetAtCursor: getOffsetAtCursor$2,
|
|
1199
1262
|
getPositionAtCursor: getPositionAtCursor$2,
|
|
1263
|
+
getProblems,
|
|
1200
1264
|
getSelections: getSelections$2,
|
|
1265
|
+
getUri,
|
|
1201
1266
|
getWordAt: getWordAt$1,
|
|
1202
1267
|
getWordAtOffset2: getWordAtOffset2$1,
|
|
1203
1268
|
getWordBefore: getWordBefore$2,
|
|
1204
|
-
invoke: invoke$
|
|
1205
|
-
invokeAndTransfer: invokeAndTransfer$
|
|
1206
|
-
|
|
1207
|
-
|
|
1269
|
+
invoke: invoke$3,
|
|
1270
|
+
invokeAndTransfer: invokeAndTransfer$2,
|
|
1271
|
+
registerMockRpc: registerMockRpc$1,
|
|
1272
|
+
sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$2,
|
|
1273
|
+
set: set$4,
|
|
1274
|
+
updateDebugInfo
|
|
1275
|
+
};
|
|
1276
|
+
|
|
1208
1277
|
const {
|
|
1209
|
-
invoke: invoke$
|
|
1210
|
-
|
|
1278
|
+
invoke: invoke$2,
|
|
1279
|
+
invokeAndTransfer: invokeAndTransfer$1,
|
|
1280
|
+
set: set$3,
|
|
1281
|
+
dispose: dispose$3
|
|
1282
|
+
} = create$1(ExtensionHostWorker);
|
|
1283
|
+
const executeReferenceProvider = async (id, offset) => {
|
|
1284
|
+
// @ts-ignore
|
|
1285
|
+
return invoke$2('ExtensionHostReference.executeReferenceProvider', id, offset);
|
|
1286
|
+
};
|
|
1287
|
+
const executeFileReferenceProvider = async id => {
|
|
1288
|
+
// @ts-ignore
|
|
1289
|
+
return invoke$2('ExtensionHostReference.executeFileReferenceProvider', id);
|
|
1290
|
+
};
|
|
1291
|
+
const getRuntimeStatus = async extensionId => {
|
|
1292
|
+
// @ts-ignore
|
|
1293
|
+
return invoke$2('ExtensionHost.getRuntimeStatus', extensionId);
|
|
1294
|
+
};
|
|
1295
|
+
const registerMockRpc = commandMap => {
|
|
1296
|
+
const mockRpc = createMockRpc({
|
|
1297
|
+
commandMap
|
|
1298
|
+
});
|
|
1299
|
+
set$3(mockRpc);
|
|
1300
|
+
return mockRpc;
|
|
1301
|
+
};
|
|
1302
|
+
|
|
1211
1303
|
const ExtensionHost = {
|
|
1212
1304
|
__proto__: null,
|
|
1213
|
-
|
|
1214
|
-
|
|
1305
|
+
dispose: dispose$3,
|
|
1306
|
+
executeFileReferenceProvider,
|
|
1307
|
+
executeReferenceProvider,
|
|
1308
|
+
getRuntimeStatus,
|
|
1309
|
+
invoke: invoke$2,
|
|
1310
|
+
invokeAndTransfer: invokeAndTransfer$1,
|
|
1311
|
+
registerMockRpc,
|
|
1312
|
+
set: set$3
|
|
1215
1313
|
};
|
|
1216
1314
|
|
|
1217
1315
|
const {
|
|
@@ -1226,10 +1324,11 @@ const {
|
|
|
1226
1324
|
getPositionAtCursor: getPositionAtCursor$1,
|
|
1227
1325
|
getSelections: getSelections$1,
|
|
1228
1326
|
getWordAt,
|
|
1327
|
+
getOffsetAtCursor: getOffsetAtCursor$1,
|
|
1229
1328
|
getWordAtOffset2,
|
|
1230
1329
|
getWordBefore: getWordBefore$1,
|
|
1231
1330
|
invokeAndTransfer
|
|
1232
|
-
} = EditorWorker$
|
|
1331
|
+
} = EditorWorker$1;
|
|
1233
1332
|
|
|
1234
1333
|
const EditorWorker = {
|
|
1235
1334
|
__proto__: null,
|
|
@@ -1238,6 +1337,7 @@ const EditorWorker = {
|
|
|
1238
1337
|
closeWidget,
|
|
1239
1338
|
dispose: dispose$2,
|
|
1240
1339
|
getLines: getLines$1,
|
|
1340
|
+
getOffsetAtCursor: getOffsetAtCursor$1,
|
|
1241
1341
|
getPositionAtCursor: getPositionAtCursor$1,
|
|
1242
1342
|
getSelections: getSelections$1,
|
|
1243
1343
|
getWordAt,
|
|
@@ -1383,8 +1483,7 @@ const openDetails = async state => {
|
|
|
1383
1483
|
};
|
|
1384
1484
|
|
|
1385
1485
|
const applyEdit = async (editorUid, changes) => {
|
|
1386
|
-
|
|
1387
|
-
await invoke$1('Editor.applyEdit2', editorUid, changes);
|
|
1486
|
+
await applyEdit$1(editorUid, changes);
|
|
1388
1487
|
};
|
|
1389
1488
|
|
|
1390
1489
|
const {
|
|
@@ -1464,9 +1563,7 @@ const execute = async ({
|
|
|
1464
1563
|
editorUid,
|
|
1465
1564
|
args,
|
|
1466
1565
|
event,
|
|
1467
|
-
method
|
|
1468
|
-
noProviderFoundMessage,
|
|
1469
|
-
noProviderFoundResult = undefined
|
|
1566
|
+
method
|
|
1470
1567
|
}) => {
|
|
1471
1568
|
const fullEvent = `${event}:${editorLanguageId}`;
|
|
1472
1569
|
await activateByEvent(fullEvent);
|
|
@@ -1480,24 +1577,18 @@ const executeCompletionProvider = async (editorUid, editorLanguageId, offset) =>
|
|
|
1480
1577
|
editorLanguageId,
|
|
1481
1578
|
event: OnCompletion,
|
|
1482
1579
|
method: CompletionExecute,
|
|
1483
|
-
args: [offset]
|
|
1484
|
-
noProviderFoundMessage: 'no completion provider found',
|
|
1485
|
-
noProviderFoundResult: []});
|
|
1580
|
+
args: [offset]});
|
|
1486
1581
|
};
|
|
1487
1582
|
const executeResolveCompletionItem = async (editorUid, offset, name, completionItem) => {
|
|
1488
1583
|
return execute({
|
|
1489
1584
|
editorUid,
|
|
1490
1585
|
event: OnCompletion,
|
|
1491
1586
|
method: CompletionResolveExecute,
|
|
1492
|
-
args: [offset, name, completionItem]
|
|
1493
|
-
noProviderFoundMessage: 'no completion provider found',
|
|
1494
|
-
noProviderFoundResult: []});
|
|
1587
|
+
args: [offset, name, completionItem]});
|
|
1495
1588
|
};
|
|
1496
1589
|
|
|
1497
1590
|
const getOffsetAtCursor = async editorUid => {
|
|
1498
|
-
|
|
1499
|
-
// @ts-ignore
|
|
1500
|
-
return invoke$1('Editor.getOffsetAtCursor', editorUid);
|
|
1591
|
+
return getOffsetAtCursor$1(editorUid);
|
|
1501
1592
|
};
|
|
1502
1593
|
|
|
1503
1594
|
// TODO don't send unnecessary parts of completion item like matches
|
|
@@ -1564,37 +1655,17 @@ const getCommandIds = () => {
|
|
|
1564
1655
|
return commandIds;
|
|
1565
1656
|
};
|
|
1566
1657
|
|
|
1567
|
-
const Enter = 3;
|
|
1568
|
-
const Escape = 8;
|
|
1569
|
-
const Space$1 = 9;
|
|
1570
|
-
const End = 255;
|
|
1571
|
-
const Home = 12;
|
|
1572
|
-
const UpArrow = 14;
|
|
1573
|
-
const DownArrow = 16;
|
|
1574
|
-
const KeyCode = {
|
|
1575
|
-
__proto__: null,
|
|
1576
|
-
DownArrow,
|
|
1577
|
-
End,
|
|
1578
|
-
Enter,
|
|
1579
|
-
Escape,
|
|
1580
|
-
Home,
|
|
1581
|
-
Space: Space$1,
|
|
1582
|
-
UpArrow
|
|
1583
|
-
};
|
|
1584
|
-
const CtrlCmd = 1 << 11 >>> 0;
|
|
1585
|
-
const KeyModifier = {
|
|
1586
|
-
__proto__: null,
|
|
1587
|
-
CtrlCmd};
|
|
1588
1658
|
const mergeClassNames = (...classNames) => {
|
|
1589
1659
|
return classNames.filter(Boolean).join(' ');
|
|
1590
1660
|
};
|
|
1661
|
+
|
|
1591
1662
|
const px = value => {
|
|
1592
1663
|
return `${value}px`;
|
|
1593
1664
|
};
|
|
1594
1665
|
const position = (x, y) => {
|
|
1595
1666
|
return `${x}px ${y}px`;
|
|
1596
1667
|
};
|
|
1597
|
-
|
|
1668
|
+
|
|
1598
1669
|
const text = data => {
|
|
1599
1670
|
return {
|
|
1600
1671
|
type: Text,
|
|
@@ -1611,31 +1682,31 @@ const getCommand = shortId => {
|
|
|
1611
1682
|
};
|
|
1612
1683
|
const getKeyBindings = () => {
|
|
1613
1684
|
return [{
|
|
1614
|
-
key:
|
|
1685
|
+
key: DownArrow,
|
|
1615
1686
|
...getCommand('focusNext'),
|
|
1616
1687
|
when: FocusEditorCompletions
|
|
1617
1688
|
}, {
|
|
1618
|
-
key:
|
|
1689
|
+
key: UpArrow,
|
|
1619
1690
|
...getCommand('focusPrevious'),
|
|
1620
1691
|
when: FocusEditorCompletions
|
|
1621
1692
|
}, {
|
|
1622
|
-
key:
|
|
1693
|
+
key: Enter,
|
|
1623
1694
|
...getCommand('selectCurrent'),
|
|
1624
1695
|
when: FocusEditorCompletions
|
|
1625
1696
|
}, {
|
|
1626
|
-
key:
|
|
1697
|
+
key: End,
|
|
1627
1698
|
...getCommand('focusLast'),
|
|
1628
1699
|
when: FocusEditorCompletions
|
|
1629
1700
|
}, {
|
|
1630
|
-
key:
|
|
1701
|
+
key: Home,
|
|
1631
1702
|
...getCommand('focusFirst'),
|
|
1632
1703
|
when: FocusEditorCompletions
|
|
1633
1704
|
}, {
|
|
1634
|
-
key:
|
|
1705
|
+
key: CtrlCmd | Space$1,
|
|
1635
1706
|
...getCommand('toggleDetails'),
|
|
1636
1707
|
when: FocusEditorCompletions
|
|
1637
1708
|
}, {
|
|
1638
|
-
key:
|
|
1709
|
+
key: Escape,
|
|
1639
1710
|
...getCommand('close'),
|
|
1640
1711
|
when: FocusEditorCompletions
|
|
1641
1712
|
}];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/completion-worker",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Web Worker for the
|
|
3
|
+
"version": "1.27.0",
|
|
4
|
+
"description": "Web Worker for the completion widget in Lvce Editor",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git@github.com:lvce-editor/completion-worker.git"
|