@lvce-editor/completion-worker 1.26.0 → 1.28.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$3 = (ipc, method, ...params) => {
895
895
  return invokeHelper(ipc, method, params, false);
896
896
  };
897
- const invokeAndTransfer$1 = (ipc, method, ...params) => {
897
+ const invokeAndTransfer$2 = (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$3(ipc, method, ...params);
934
934
  },
935
935
  invokeAndTransfer(method, ...params) {
936
- return invokeAndTransfer$1(ipc, method, ...params);
936
+ return invokeAndTransfer$2(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,37 @@ const terminate = () => {
1104
1123
  globalThis.close();
1105
1124
  };
1106
1125
 
1126
+ const Div = 4;
1127
+ const Span = 8;
1128
+ const Text = 12;
1129
+ const Img = 17;
1130
+
1131
+ const ClientX = 'event.clientX';
1132
+ const ClientY = 'event.clientY';
1133
+ const DeltaMode = 'event.deltaMode';
1134
+ const DeltaY = 'event.deltaY';
1135
+
1136
+ const Enter = 3;
1137
+ const Escape = 8;
1138
+ const Space$1 = 9;
1139
+ const End = 255;
1140
+ const Home = 12;
1141
+ const UpArrow = 14;
1142
+ const DownArrow = 16;
1143
+
1144
+ const CtrlCmd = 1 << 11 >>> 0;
1145
+
1146
+ const EditorWorker$2 = 99;
1147
+ const ExtensionHostWorker = 44;
1148
+
1107
1149
  const rpcs = Object.create(null);
1108
- const set$g = (id, rpc) => {
1150
+ const set$5 = (id, rpc) => {
1109
1151
  rpcs[id] = rpc;
1110
1152
  };
1111
1153
  const get$1 = id => {
1112
1154
  return rpcs[id];
1113
1155
  };
1114
1156
 
1115
- /* eslint-disable @typescript-eslint/explicit-function-return-type */
1116
-
1117
1157
  const create$1 = rpcId => {
1118
1158
  return {
1119
1159
  // @ts-ignore
@@ -1129,7 +1169,7 @@ const create$1 = rpcId => {
1129
1169
  return rpc.invokeAndTransfer(method, ...params);
1130
1170
  },
1131
1171
  set(rpc) {
1132
- set$g(rpcId, rpc);
1172
+ set$5(rpcId, rpc);
1133
1173
  },
1134
1174
  async dispose() {
1135
1175
  const rpc = get$1(rpcId);
@@ -1137,92 +1177,151 @@ const create$1 = rpcId => {
1137
1177
  }
1138
1178
  };
1139
1179
  };
1140
- const EditorWorker$1 = 99;
1141
- const ExtensionHostWorker = 44;
1180
+
1142
1181
  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 => {
1182
+ invoke: invoke$2,
1183
+ invokeAndTransfer: invokeAndTransfer$1,
1184
+ set: set$4,
1185
+ dispose: dispose$3
1186
+ } = create$1(EditorWorker$2);
1187
+ const sendMessagePortToExtensionHostWorker$2 = async port => {
1149
1188
  const command = 'HandleMessagePort.handleMessagePort2';
1150
- await invokeAndTransfer$c(
1189
+ await invokeAndTransfer$1(
1151
1190
  // @ts-ignore
1152
- 'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, 0 // TODO
1153
- );
1191
+ 'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, 0);
1154
1192
  };
1155
-
1156
1193
  // TODO add tests for this
1157
- const activateByEvent$1$1 = async event => {
1194
+ const activateByEvent$2 = async event => {
1158
1195
  // @ts-ignore
1159
- await invoke$c('ActivateByEvent.activateByEvent', event);
1196
+ await invoke$2('ActivateByEvent.activateByEvent', event);
1160
1197
  };
1161
1198
  const applyEdit$2 = async (editorUid, changes) => {
1162
1199
  // @ts-ignore
1163
- await invoke$c('Editor.applyEdit2', editorUid, changes);
1200
+ await invoke$2('Editor.applyEdit2', editorUid, changes);
1201
+ };
1202
+ const applyWorkspaceEdit = async (editorUid, changes) => {
1203
+ // @ts-ignore
1204
+ await invoke$2('Editor.applyWorkspaceEdit', editorUid, changes);
1164
1205
  };
1165
1206
  const closeWidget$1 = async (editorUid, widgetId, widgetName, focusId) => {
1166
1207
  // @ts-ignore
1167
- await invoke$c('Editor.closeWidget2', editorUid, widgetId, widgetName, focusId);
1208
+ await invoke$2('Editor.closeWidget2', editorUid, widgetId, widgetName, focusId);
1168
1209
  };
1169
- const getWordAt$1 = async (uid, rowIndex, columnIndex) => {
1210
+ const getWordAt = async (uid, rowIndex, columnIndex) => {
1170
1211
  // @ts-ignore
1171
- const word = await invoke$c('Editor.getWordAt2', uid, rowIndex, columnIndex);
1212
+ const word = await invoke$2('Editor.getWordAt2', uid, rowIndex, columnIndex);
1172
1213
  return word;
1173
1214
  };
1174
1215
  const getLines$2 = async editorUid => {
1175
- const lines = await invoke$c('Editor.getLines2', editorUid);
1216
+ const lines = await invoke$2('Editor.getLines2', editorUid);
1176
1217
  return lines;
1177
1218
  };
1178
1219
  const getPositionAtCursor$2 = async parentUid => {
1179
- const position = await invoke$c('Editor.getPositionAtCursor', parentUid);
1220
+ const position = await invoke$2('Editor.getPositionAtCursor', parentUid);
1180
1221
  return position;
1181
1222
  };
1182
1223
  const getOffsetAtCursor$2 = async editorId => {
1183
1224
  // @ts-ignore
1184
- return await invoke$c('Editor.getOffsetAtCursor', editorId);
1225
+ return await invoke$2('Editor.getOffsetAtCursor', editorId);
1185
1226
  };
1186
1227
  const getSelections$2 = async editorUid => {
1187
- const selections = await invoke$c('Editor.getSelections2', editorUid);
1228
+ const selections = await invoke$2('Editor.getSelections2', editorUid);
1188
1229
  return selections;
1189
1230
  };
1190
1231
  const getWordAtOffset2$1 = async editorUid => {
1191
- return invoke$c('Editor.getWordAtOffset2', editorUid);
1232
+ return invoke$2('Editor.getWordAtOffset2', editorUid);
1192
1233
  };
1193
1234
  const getWordBefore$2 = async (editorUid, rowIndex, columnIndex) => {
1194
- return invoke$c('Editor.getWordBefore2', editorUid, rowIndex, columnIndex);
1235
+ return invoke$2('Editor.getWordBefore2', editorUid, rowIndex, columnIndex);
1236
+ };
1237
+ const updateDebugInfo = async info => {
1238
+ await invoke$2('Editor.updateDebugInfo', info);
1239
+ };
1240
+ const getUri = async editorUid => {
1241
+ // @ts-ignore
1242
+ return invoke$2('Editor.getUri', editorUid);
1243
+ };
1244
+ const getLanguageId = async editorUid => {
1245
+ // @ts-ignore
1246
+ return invoke$2('Editor.getLanguageId', editorUid);
1247
+ };
1248
+ const getProblems = async () => {
1249
+ // @ts-ignore
1250
+ return invoke$2('Editor.getProblems');
1195
1251
  };
1196
- const EditorWorker$2 = {
1252
+ const registerMockRpc$1 = commandMap => {
1253
+ const mockRpc = createMockRpc({
1254
+ commandMap
1255
+ });
1256
+ set$4(mockRpc);
1257
+ return mockRpc;
1258
+ };
1259
+
1260
+ const EditorWorker$1 = {
1197
1261
  __proto__: null,
1198
- activateByEvent: activateByEvent$1$1,
1262
+ activateByEvent: activateByEvent$2,
1199
1263
  applyEdit: applyEdit$2,
1264
+ applyWorkspaceEdit,
1200
1265
  closeWidget: closeWidget$1,
1201
- dispose: dispose$c,
1266
+ dispose: dispose$3,
1267
+ getLanguageId,
1202
1268
  getLines: getLines$2,
1203
1269
  getOffsetAtCursor: getOffsetAtCursor$2,
1204
1270
  getPositionAtCursor: getPositionAtCursor$2,
1271
+ getProblems,
1205
1272
  getSelections: getSelections$2,
1206
- getWordAt: getWordAt$1,
1273
+ getUri,
1274
+ getWordAt,
1207
1275
  getWordAtOffset2: getWordAtOffset2$1,
1208
1276
  getWordBefore: getWordBefore$2,
1209
- invoke: invoke$c,
1210
- invokeAndTransfer: invokeAndTransfer$c,
1211
- sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1$1,
1212
- set: set$c};
1277
+ invoke: invoke$2,
1278
+ invokeAndTransfer: invokeAndTransfer$1,
1279
+ registerMockRpc: registerMockRpc$1,
1280
+ sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$2,
1281
+ set: set$4,
1282
+ updateDebugInfo
1283
+ };
1284
+
1213
1285
  const {
1214
- invoke: invoke$9,
1215
- set: set$9} = create$1(ExtensionHostWorker);
1286
+ invoke: invoke$1,
1287
+ invokeAndTransfer,
1288
+ set: set$3,
1289
+ dispose: dispose$2
1290
+ } = create$1(ExtensionHostWorker);
1291
+ const executeReferenceProvider = async (id, offset) => {
1292
+ // @ts-ignore
1293
+ return invoke$1('ExtensionHostReference.executeReferenceProvider', id, offset);
1294
+ };
1295
+ const executeFileReferenceProvider = async id => {
1296
+ // @ts-ignore
1297
+ return invoke$1('ExtensionHostReference.executeFileReferenceProvider', id);
1298
+ };
1299
+ const getRuntimeStatus = async extensionId => {
1300
+ // @ts-ignore
1301
+ return invoke$1('ExtensionHost.getRuntimeStatus', extensionId);
1302
+ };
1303
+ const registerMockRpc = commandMap => {
1304
+ const mockRpc = createMockRpc({
1305
+ commandMap
1306
+ });
1307
+ set$3(mockRpc);
1308
+ return mockRpc;
1309
+ };
1310
+
1216
1311
  const ExtensionHost = {
1217
1312
  __proto__: null,
1218
- invoke: invoke$9,
1219
- set: set$9
1313
+ dispose: dispose$2,
1314
+ executeFileReferenceProvider,
1315
+ executeReferenceProvider,
1316
+ getRuntimeStatus,
1317
+ invoke: invoke$1,
1318
+ invokeAndTransfer,
1319
+ registerMockRpc,
1320
+ set: set$3
1220
1321
  };
1221
1322
 
1222
1323
  const {
1223
- invoke: invoke$1,
1224
1324
  set: set$2,
1225
- dispose: dispose$2,
1226
1325
  sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1,
1227
1326
  activateByEvent: activateByEvent$1,
1228
1327
  applyEdit: applyEdit$1,
@@ -1230,28 +1329,22 @@ const {
1230
1329
  getLines: getLines$1,
1231
1330
  getPositionAtCursor: getPositionAtCursor$1,
1232
1331
  getSelections: getSelections$1,
1233
- getWordAt,
1234
1332
  getOffsetAtCursor: getOffsetAtCursor$1,
1235
1333
  getWordAtOffset2,
1236
- getWordBefore: getWordBefore$1,
1237
- invokeAndTransfer
1238
- } = EditorWorker$2;
1334
+ getWordBefore: getWordBefore$1
1335
+ } = EditorWorker$1;
1239
1336
 
1240
1337
  const EditorWorker = {
1241
1338
  __proto__: null,
1242
1339
  activateByEvent: activateByEvent$1,
1243
1340
  applyEdit: applyEdit$1,
1244
1341
  closeWidget,
1245
- dispose: dispose$2,
1246
1342
  getLines: getLines$1,
1247
1343
  getOffsetAtCursor: getOffsetAtCursor$1,
1248
1344
  getPositionAtCursor: getPositionAtCursor$1,
1249
1345
  getSelections: getSelections$1,
1250
- getWordAt,
1251
1346
  getWordAtOffset2,
1252
1347
  getWordBefore: getWordBefore$1,
1253
- invoke: invoke$1,
1254
- invokeAndTransfer,
1255
1348
  sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1,
1256
1349
  set: set$2
1257
1350
  };
@@ -1562,37 +1655,17 @@ const getCommandIds = () => {
1562
1655
  return commandIds;
1563
1656
  };
1564
1657
 
1565
- const Enter = 3;
1566
- const Escape = 8;
1567
- const Space$1 = 9;
1568
- const End = 255;
1569
- const Home = 12;
1570
- const UpArrow = 14;
1571
- const DownArrow = 16;
1572
- const KeyCode = {
1573
- __proto__: null,
1574
- DownArrow,
1575
- End,
1576
- Enter,
1577
- Escape,
1578
- Home,
1579
- Space: Space$1,
1580
- UpArrow
1581
- };
1582
- const CtrlCmd = 1 << 11 >>> 0;
1583
- const KeyModifier = {
1584
- __proto__: null,
1585
- CtrlCmd};
1586
1658
  const mergeClassNames = (...classNames) => {
1587
1659
  return classNames.filter(Boolean).join(' ');
1588
1660
  };
1661
+
1589
1662
  const px = value => {
1590
1663
  return `${value}px`;
1591
1664
  };
1592
1665
  const position = (x, y) => {
1593
1666
  return `${x}px ${y}px`;
1594
1667
  };
1595
- const Text = 12;
1668
+
1596
1669
  const text = data => {
1597
1670
  return {
1598
1671
  type: Text,
@@ -1609,31 +1682,31 @@ const getCommand = shortId => {
1609
1682
  };
1610
1683
  const getKeyBindings = () => {
1611
1684
  return [{
1612
- key: KeyCode.DownArrow,
1685
+ key: DownArrow,
1613
1686
  ...getCommand('focusNext'),
1614
1687
  when: FocusEditorCompletions
1615
1688
  }, {
1616
- key: KeyCode.UpArrow,
1689
+ key: UpArrow,
1617
1690
  ...getCommand('focusPrevious'),
1618
1691
  when: FocusEditorCompletions
1619
1692
  }, {
1620
- key: KeyCode.Enter,
1693
+ key: Enter,
1621
1694
  ...getCommand('selectCurrent'),
1622
1695
  when: FocusEditorCompletions
1623
1696
  }, {
1624
- key: KeyCode.End,
1697
+ key: End,
1625
1698
  ...getCommand('focusLast'),
1626
1699
  when: FocusEditorCompletions
1627
1700
  }, {
1628
- key: KeyCode.Home,
1701
+ key: Home,
1629
1702
  ...getCommand('focusFirst'),
1630
1703
  when: FocusEditorCompletions
1631
1704
  }, {
1632
- key: KeyModifier.CtrlCmd | KeyCode.Space,
1705
+ key: CtrlCmd | Space$1,
1633
1706
  ...getCommand('toggleDetails'),
1634
1707
  when: FocusEditorCompletions
1635
1708
  }, {
1636
- key: KeyCode.Escape,
1709
+ key: Escape,
1637
1710
  ...getCommand('close'),
1638
1711
  when: FocusEditorCompletions
1639
1712
  }];
@@ -1924,6 +1997,10 @@ const handleEditorType = async state => {
1924
1997
  };
1925
1998
  };
1926
1999
 
2000
+ const handlePointerDown = (state, clientX, clientY) => {
2001
+ return state;
2002
+ };
2003
+
1927
2004
  const clamp = (num, min, max) => {
1928
2005
  number(num);
1929
2006
  number(min);
@@ -2105,13 +2182,18 @@ const renderContent = (oldState, newState) => {
2105
2182
  return [SetDom2, uid, dom];
2106
2183
  };
2107
2184
 
2185
+ const HandlePointerDown = 'handlePointerDown';
2108
2186
  const HandleWheel = 'handleWheel';
2109
2187
 
2110
2188
  const getEventListeners = () => {
2111
2189
  return [{
2112
2190
  name: HandleWheel,
2113
- params: ['EditorCompletion.handleWheel', 'event.deltaMode', 'event.deltaY'],
2191
+ params: ['EditorCompletion.handleWheel', DeltaMode, DeltaY],
2114
2192
  passive: true
2193
+ }, {
2194
+ name: HandlePointerDown,
2195
+ params: ['EditorCompletion.handlePoinerDown', ClientX, ClientY],
2196
+ preventDefault: true
2115
2197
  }];
2116
2198
  };
2117
2199
 
@@ -2167,10 +2249,6 @@ const suggest = () => {
2167
2249
  return i18nString(Suggest);
2168
2250
  };
2169
2251
 
2170
- const Div = 4;
2171
- const Span = 8;
2172
- const Img = 17;
2173
-
2174
2252
  const getFileIconVirtualDom = icon => {
2175
2253
  return {
2176
2254
  type: Img,
@@ -2273,12 +2351,10 @@ const getCompletionItemsVirtualDom = visibleItems => {
2273
2351
  if (visibleItems.length === 0) {
2274
2352
  return getNoResultsVirtualDom();
2275
2353
  }
2276
- const root = {
2354
+ return [{
2277
2355
  type: Div,
2278
2356
  childCount: visibleItems.length
2279
- };
2280
- const dom = [root, ...visibleItems.flatMap(getCompletionItemVirtualDom)];
2281
- return dom;
2357
+ }, ...visibleItems.flatMap(getCompletionItemVirtualDom)];
2282
2358
  };
2283
2359
 
2284
2360
  const getScrollBarVirtualDom = (scrollBarHeight, scrollBarTop) => {
@@ -2503,6 +2579,7 @@ const commandMap = {
2503
2579
  'Completions.handleEditorDeleteLeft': wrapCommand(handleEditorDeleteLeft),
2504
2580
  'Completions.handleEditorType': wrapCommand(handleEditorType),
2505
2581
  'Completions.handleWheel': wrapCommand(handleWheel),
2582
+ 'Completions.handlePointerDown': wrapCommand(handlePointerDown),
2506
2583
  'Completions.initialize': initialize,
2507
2584
  'Completions.loadContent': wrapCommand(loadContent),
2508
2585
  'Completions.openDetails': wrapCommand(openDetails),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lvce-editor/completion-worker",
3
- "version": "1.26.0",
4
- "description": "Web Worker for the find widget in Lvce Editor",
3
+ "version": "1.28.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"