@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 CHANGED
@@ -8,7 +8,7 @@
8
8
  git clone git@github.com:lvce-editor/completion-worker.git &&
9
9
  cd completion-worker &&
10
10
  npm ci &&
11
- npm completion
11
+ npm test
12
12
  ```
13
13
 
14
14
  ## Gitpod
@@ -527,7 +527,7 @@ const create$4$1 = (method, params) => {
527
527
  };
528
528
  };
529
529
  const callbacks = Object.create(null);
530
- const set$3 = (id, fn) => {
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$3(id, resolve);
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$2 = (ipc, method, ...params) => {
894
+ const invoke$4 = (ipc, method, ...params) => {
895
895
  return invokeHelper(ipc, method, params, false);
896
896
  };
897
- const invokeAndTransfer$1 = (ipc, method, ...params) => {
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$2(ipc, method, ...params);
933
+ return invoke$4(ipc, method, ...params);
934
934
  },
935
935
  invokeAndTransfer(method, ...params) {
936
- return invokeAndTransfer$1(ipc, method, ...params);
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$g = (id, rpc) => {
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$g(rpcId, rpc);
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
- const EditorWorker$1 = 99;
1141
- const ExtensionHostWorker = 44;
1172
+
1142
1173
  const {
1143
- invoke: invoke$c,
1144
- invokeAndTransfer: invokeAndTransfer$c,
1145
- set: set$c,
1146
- dispose: dispose$c
1147
- } = create$1(EditorWorker$1);
1148
- const sendMessagePortToExtensionHostWorker$1$1 = async port => {
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$c(
1181
+ await invokeAndTransfer$2(
1151
1182
  // @ts-ignore
1152
- 'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, 0 // TODO
1153
- );
1183
+ 'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, 0);
1154
1184
  };
1155
-
1156
1185
  // TODO add tests for this
1157
- const activateByEvent$1$1 = async event => {
1186
+ const activateByEvent$2 = async event => {
1158
1187
  // @ts-ignore
1159
- await invoke$c('ActivateByEvent.activateByEvent', event);
1188
+ await invoke$3('ActivateByEvent.activateByEvent', event);
1160
1189
  };
1161
1190
  const applyEdit$2 = async (editorUid, changes) => {
1162
1191
  // @ts-ignore
1163
- await invoke$c('Editor.applyEdit2', editorUid, changes);
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$c('Editor.closeWidget2', editorUid, widgetId, widgetName, focusId);
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$c('Editor.getWordAt2', uid, rowIndex, columnIndex);
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$c('Editor.getLines2', editorUid);
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$c('Editor.getPositionAtCursor', parentUid);
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$c('Editor.getSelections2', editorUid);
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$c('Editor.getWordAtOffset2', editorUid);
1224
+ return invoke$3('Editor.getWordAtOffset2', editorUid);
1188
1225
  };
1189
1226
  const getWordBefore$2 = async (editorUid, rowIndex, columnIndex) => {
1190
- return invoke$c('Editor.getWordBefore2', editorUid, rowIndex, columnIndex);
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 EditorWorker$2 = {
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$1$1,
1254
+ activateByEvent: activateByEvent$2,
1195
1255
  applyEdit: applyEdit$2,
1256
+ applyWorkspaceEdit,
1196
1257
  closeWidget: closeWidget$1,
1197
- dispose: dispose$c,
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$c,
1205
- invokeAndTransfer: invokeAndTransfer$c,
1206
- sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1$1,
1207
- set: set$c};
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$9,
1210
- set: set$9} = create$1(ExtensionHostWorker);
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
- invoke: invoke$9,
1214
- set: set$9
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$2;
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
- // @ts-ignore
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
- // TODO ask editor worker
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
- const Text = 12;
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: KeyCode.DownArrow,
1685
+ key: DownArrow,
1615
1686
  ...getCommand('focusNext'),
1616
1687
  when: FocusEditorCompletions
1617
1688
  }, {
1618
- key: KeyCode.UpArrow,
1689
+ key: UpArrow,
1619
1690
  ...getCommand('focusPrevious'),
1620
1691
  when: FocusEditorCompletions
1621
1692
  }, {
1622
- key: KeyCode.Enter,
1693
+ key: Enter,
1623
1694
  ...getCommand('selectCurrent'),
1624
1695
  when: FocusEditorCompletions
1625
1696
  }, {
1626
- key: KeyCode.End,
1697
+ key: End,
1627
1698
  ...getCommand('focusLast'),
1628
1699
  when: FocusEditorCompletions
1629
1700
  }, {
1630
- key: KeyCode.Home,
1701
+ key: Home,
1631
1702
  ...getCommand('focusFirst'),
1632
1703
  when: FocusEditorCompletions
1633
1704
  }, {
1634
- key: KeyModifier.CtrlCmd | KeyCode.Space,
1705
+ key: CtrlCmd | Space$1,
1635
1706
  ...getCommand('toggleDetails'),
1636
1707
  when: FocusEditorCompletions
1637
1708
  }, {
1638
- key: KeyCode.Escape,
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.25.0",
4
- "description": "Web Worker for the find widget in Lvce Editor",
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"