@lvce-editor/completion-worker 1.27.0 → 1.29.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.
@@ -527,7 +527,7 @@ const create$4$1 = (method, params) => {
527
527
  };
528
528
  };
529
529
  const callbacks = Object.create(null);
530
- const set$6 = (id, fn) => {
530
+ const set$5 = (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$6(id, resolve);
549
+ set$5(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$4 = (ipc, method, ...params) => {
894
+ const invoke$2 = (ipc, method, ...params) => {
895
895
  return invokeHelper(ipc, method, params, false);
896
896
  };
897
- const invokeAndTransfer$3 = (ipc, method, ...params) => {
897
+ const invokeAndTransfer$1 = (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$4(ipc, method, ...params);
933
+ return invoke$2(ipc, method, ...params);
934
934
  },
935
935
  invokeAndTransfer(method, ...params) {
936
- return invokeAndTransfer$3(ipc, method, ...params);
936
+ return invokeAndTransfer$1(ipc, method, ...params);
937
937
  },
938
938
  async dispose() {
939
939
  await ipc?.dispose();
@@ -1123,7 +1123,15 @@ const terminate = () => {
1123
1123
  globalThis.close();
1124
1124
  };
1125
1125
 
1126
+ const Div = 4;
1127
+ const Span = 8;
1126
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';
1127
1135
 
1128
1136
  const Enter = 3;
1129
1137
  const Escape = 8;
@@ -1139,7 +1147,7 @@ const EditorWorker$2 = 99;
1139
1147
  const ExtensionHostWorker = 44;
1140
1148
 
1141
1149
  const rpcs = Object.create(null);
1142
- const set$5 = (id, rpc) => {
1150
+ const set$4 = (id, rpc) => {
1143
1151
  rpcs[id] = rpc;
1144
1152
  };
1145
1153
  const get$1 = id => {
@@ -1161,7 +1169,7 @@ const create$1 = rpcId => {
1161
1169
  return rpc.invokeAndTransfer(method, ...params);
1162
1170
  },
1163
1171
  set(rpc) {
1164
- set$5(rpcId, rpc);
1172
+ set$4(rpcId, rpc);
1165
1173
  },
1166
1174
  async dispose() {
1167
1175
  const rpc = get$1(rpcId);
@@ -1171,81 +1179,81 @@ const create$1 = rpcId => {
1171
1179
  };
1172
1180
 
1173
1181
  const {
1174
- invoke: invoke$3,
1175
- invokeAndTransfer: invokeAndTransfer$2,
1176
- set: set$4,
1177
- dispose: dispose$4
1182
+ invoke: invoke$1,
1183
+ invokeAndTransfer,
1184
+ set: set$3,
1185
+ dispose: dispose$2
1178
1186
  } = create$1(EditorWorker$2);
1179
1187
  const sendMessagePortToExtensionHostWorker$2 = async port => {
1180
1188
  const command = 'HandleMessagePort.handleMessagePort2';
1181
- await invokeAndTransfer$2(
1189
+ await invokeAndTransfer(
1182
1190
  // @ts-ignore
1183
1191
  'SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, 0);
1184
1192
  };
1185
1193
  // TODO add tests for this
1186
1194
  const activateByEvent$2 = async event => {
1187
1195
  // @ts-ignore
1188
- await invoke$3('ActivateByEvent.activateByEvent', event);
1196
+ await invoke$1('ActivateByEvent.activateByEvent', event);
1189
1197
  };
1190
1198
  const applyEdit$2 = async (editorUid, changes) => {
1191
1199
  // @ts-ignore
1192
- await invoke$3('Editor.applyEdit2', editorUid, changes);
1200
+ await invoke$1('Editor.applyEdit2', editorUid, changes);
1193
1201
  };
1194
1202
  const applyWorkspaceEdit = async (editorUid, changes) => {
1195
1203
  // @ts-ignore
1196
- await invoke$3('Editor.applyWorkspaceEdit', editorUid, changes);
1204
+ await invoke$1('Editor.applyWorkspaceEdit', editorUid, changes);
1197
1205
  };
1198
1206
  const closeWidget$1 = async (editorUid, widgetId, widgetName, focusId) => {
1199
1207
  // @ts-ignore
1200
- await invoke$3('Editor.closeWidget2', editorUid, widgetId, widgetName, focusId);
1208
+ await invoke$1('Editor.closeWidget2', editorUid, widgetId, widgetName, focusId);
1201
1209
  };
1202
- const getWordAt$1 = async (uid, rowIndex, columnIndex) => {
1210
+ const getWordAt = async (uid, rowIndex, columnIndex) => {
1203
1211
  // @ts-ignore
1204
- const word = await invoke$3('Editor.getWordAt2', uid, rowIndex, columnIndex);
1212
+ const word = await invoke$1('Editor.getWordAt2', uid, rowIndex, columnIndex);
1205
1213
  return word;
1206
1214
  };
1207
1215
  const getLines$2 = async editorUid => {
1208
- const lines = await invoke$3('Editor.getLines2', editorUid);
1216
+ const lines = await invoke$1('Editor.getLines2', editorUid);
1209
1217
  return lines;
1210
1218
  };
1211
1219
  const getPositionAtCursor$2 = async parentUid => {
1212
- const position = await invoke$3('Editor.getPositionAtCursor', parentUid);
1220
+ const position = await invoke$1('Editor.getPositionAtCursor', parentUid);
1213
1221
  return position;
1214
1222
  };
1215
1223
  const getOffsetAtCursor$2 = async editorId => {
1216
1224
  // @ts-ignore
1217
- return await invoke$3('Editor.getOffsetAtCursor', editorId);
1225
+ return await invoke$1('Editor.getOffsetAtCursor', editorId);
1218
1226
  };
1219
1227
  const getSelections$2 = async editorUid => {
1220
- const selections = await invoke$3('Editor.getSelections2', editorUid);
1228
+ const selections = await invoke$1('Editor.getSelections2', editorUid);
1221
1229
  return selections;
1222
1230
  };
1223
1231
  const getWordAtOffset2$1 = async editorUid => {
1224
- return invoke$3('Editor.getWordAtOffset2', editorUid);
1232
+ return invoke$1('Editor.getWordAtOffset2', editorUid);
1225
1233
  };
1226
1234
  const getWordBefore$2 = async (editorUid, rowIndex, columnIndex) => {
1227
- return invoke$3('Editor.getWordBefore2', editorUid, rowIndex, columnIndex);
1235
+ return invoke$1('Editor.getWordBefore2', editorUid, rowIndex, columnIndex);
1228
1236
  };
1229
1237
  const updateDebugInfo = async info => {
1230
- await invoke$3('Editor.updateDebugInfo', info);
1238
+ await invoke$1('Editor.updateDebugInfo', info);
1231
1239
  };
1232
1240
  const getUri = async editorUid => {
1233
1241
  // @ts-ignore
1234
- return invoke$3('Editor.getUri', editorUid);
1242
+ return invoke$1('Editor.getUri', editorUid);
1235
1243
  };
1236
1244
  const getLanguageId = async editorUid => {
1237
1245
  // @ts-ignore
1238
- return invoke$3('Editor.getLanguageId', editorUid);
1246
+ return invoke$1('Editor.getLanguageId', editorUid);
1239
1247
  };
1240
1248
  const getProblems = async () => {
1241
1249
  // @ts-ignore
1242
- return invoke$3('Editor.getProblems');
1250
+ return invoke$1('Editor.getProblems');
1243
1251
  };
1244
- const registerMockRpc$1 = commandMap => {
1252
+ const registerMockRpc = commandMap => {
1245
1253
  const mockRpc = createMockRpc({
1246
1254
  commandMap
1247
1255
  });
1248
- set$4(mockRpc);
1256
+ set$3(mockRpc);
1249
1257
  return mockRpc;
1250
1258
  };
1251
1259
 
@@ -1255,7 +1263,7 @@ const EditorWorker$1 = {
1255
1263
  applyEdit: applyEdit$2,
1256
1264
  applyWorkspaceEdit,
1257
1265
  closeWidget: closeWidget$1,
1258
- dispose: dispose$4,
1266
+ dispose: dispose$2,
1259
1267
  getLanguageId,
1260
1268
  getLines: getLines$2,
1261
1269
  getOffsetAtCursor: getOffsetAtCursor$2,
@@ -1263,59 +1271,23 @@ const EditorWorker$1 = {
1263
1271
  getProblems,
1264
1272
  getSelections: getSelections$2,
1265
1273
  getUri,
1266
- getWordAt: getWordAt$1,
1274
+ getWordAt,
1267
1275
  getWordAtOffset2: getWordAtOffset2$1,
1268
1276
  getWordBefore: getWordBefore$2,
1269
- invoke: invoke$3,
1270
- invokeAndTransfer: invokeAndTransfer$2,
1271
- registerMockRpc: registerMockRpc$1,
1277
+ invoke: invoke$1,
1278
+ invokeAndTransfer,
1279
+ registerMockRpc,
1272
1280
  sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$2,
1273
- set: set$4,
1281
+ set: set$3,
1274
1282
  updateDebugInfo
1275
1283
  };
1276
1284
 
1277
1285
  const {
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
-
1303
- const ExtensionHost = {
1304
- __proto__: null,
1305
- dispose: dispose$3,
1306
- executeFileReferenceProvider,
1307
- executeReferenceProvider,
1308
- getRuntimeStatus,
1309
- invoke: invoke$2,
1310
- invokeAndTransfer: invokeAndTransfer$1,
1311
- registerMockRpc,
1312
- set: set$3
1313
- };
1286
+ invoke,
1287
+ set: set$2} = create$1(ExtensionHostWorker);
1314
1288
 
1315
1289
  const {
1316
- invoke: invoke$1,
1317
- set: set$2,
1318
- dispose: dispose$2,
1290
+ set: set$1,
1319
1291
  sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1,
1320
1292
  activateByEvent: activateByEvent$1,
1321
1293
  applyEdit: applyEdit$1,
@@ -1323,11 +1295,9 @@ const {
1323
1295
  getLines: getLines$1,
1324
1296
  getPositionAtCursor: getPositionAtCursor$1,
1325
1297
  getSelections: getSelections$1,
1326
- getWordAt,
1327
1298
  getOffsetAtCursor: getOffsetAtCursor$1,
1328
1299
  getWordAtOffset2,
1329
- getWordBefore: getWordBefore$1,
1330
- invokeAndTransfer
1300
+ getWordBefore: getWordBefore$1
1331
1301
  } = EditorWorker$1;
1332
1302
 
1333
1303
  const EditorWorker = {
@@ -1335,18 +1305,14 @@ const EditorWorker = {
1335
1305
  activateByEvent: activateByEvent$1,
1336
1306
  applyEdit: applyEdit$1,
1337
1307
  closeWidget,
1338
- dispose: dispose$2,
1339
1308
  getLines: getLines$1,
1340
1309
  getOffsetAtCursor: getOffsetAtCursor$1,
1341
1310
  getPositionAtCursor: getPositionAtCursor$1,
1342
1311
  getSelections: getSelections$1,
1343
- getWordAt,
1344
1312
  getWordAtOffset2,
1345
1313
  getWordBefore: getWordBefore$1,
1346
- invoke: invoke$1,
1347
- invokeAndTransfer,
1348
1314
  sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1,
1349
- set: set$2
1315
+ set: set$1
1350
1316
  };
1351
1317
 
1352
1318
  const FocusEditorCompletions = 9;
@@ -1364,7 +1330,7 @@ const close = async state => {
1364
1330
 
1365
1331
  const {
1366
1332
  get,
1367
- set: set$1,
1333
+ set,
1368
1334
  wrapCommand,
1369
1335
  dispose: dispose$1
1370
1336
  } = create$2();
@@ -1393,7 +1359,7 @@ const create = (uid, x, y, width, height, editorUid, editorLanguageId) => {
1393
1359
  editorLanguageId,
1394
1360
  maxItems: 8
1395
1361
  };
1396
- set$1(uid, state, state);
1362
+ set(uid, state, state);
1397
1363
  };
1398
1364
 
1399
1365
  const isEqual$4 = (oldState, newState) => {
@@ -1554,10 +1520,6 @@ const {
1554
1520
  activateByEvent
1555
1521
  } = EditorWorker;
1556
1522
 
1557
- const {
1558
- invoke,
1559
- set} = ExtensionHost;
1560
-
1561
1523
  const execute = async ({
1562
1524
  editorLanguageId,
1563
1525
  editorUid,
@@ -1997,6 +1959,26 @@ const handleEditorType = async state => {
1997
1959
  };
1998
1960
  };
1999
1961
 
1962
+ const getIndexFromPosition = (y, clientY, itemHeight) => {
1963
+ const relativeY = clientY - y;
1964
+ const index = Math.floor(relativeY / itemHeight);
1965
+ return index;
1966
+ };
1967
+
1968
+ const handlePointerDown = async (state, clientX, clientY) => {
1969
+ const {
1970
+ y,
1971
+ itemHeight,
1972
+ items
1973
+ } = state;
1974
+ const index = getIndexFromPosition(y, clientY, itemHeight);
1975
+ if (index < 0 || index >= items.length) {
1976
+ // TODO close maybe?
1977
+ return state;
1978
+ }
1979
+ return selectIndex(state, index);
1980
+ };
1981
+
2000
1982
  const clamp = (num, min, max) => {
2001
1983
  number(num);
2002
1984
  number(min);
@@ -2085,7 +2067,7 @@ const createExtensionHostRpc = async () => {
2085
2067
 
2086
2068
  const initialize = async () => {
2087
2069
  const rpc = await createExtensionHostRpc();
2088
- set(rpc);
2070
+ set$2(rpc);
2089
2071
  };
2090
2072
 
2091
2073
  const error = message => {
@@ -2178,13 +2160,18 @@ const renderContent = (oldState, newState) => {
2178
2160
  return [SetDom2, uid, dom];
2179
2161
  };
2180
2162
 
2181
- const HandleWheel = 'handleWheel';
2163
+ const HandlePointerDown = 1;
2164
+ const HandleWheel = 2;
2182
2165
 
2183
2166
  const getEventListeners = () => {
2184
2167
  return [{
2185
2168
  name: HandleWheel,
2186
- params: ['EditorCompletion.handleWheel', 'event.deltaMode', 'event.deltaY'],
2169
+ params: ['EditorCompletion.handleWheel', DeltaMode, DeltaY],
2187
2170
  passive: true
2171
+ }, {
2172
+ name: HandlePointerDown,
2173
+ params: ['EditorCompletion.handlePoinerDown', ClientX, ClientY],
2174
+ preventDefault: true
2188
2175
  }];
2189
2176
  };
2190
2177
 
@@ -2240,10 +2227,6 @@ const suggest = () => {
2240
2227
  return i18nString(Suggest);
2241
2228
  };
2242
2229
 
2243
- const Div = 4;
2244
- const Span = 8;
2245
- const Img = 17;
2246
-
2247
2230
  const getFileIconVirtualDom = icon => {
2248
2231
  return {
2249
2232
  type: Img,
@@ -2346,12 +2329,10 @@ const getCompletionItemsVirtualDom = visibleItems => {
2346
2329
  if (visibleItems.length === 0) {
2347
2330
  return getNoResultsVirtualDom();
2348
2331
  }
2349
- const root = {
2332
+ return [{
2350
2333
  type: Div,
2351
2334
  childCount: visibleItems.length
2352
- };
2353
- const dom = [root, ...visibleItems.flatMap(getCompletionItemVirtualDom)];
2354
- return dom;
2335
+ }, ...visibleItems.flatMap(getCompletionItemVirtualDom)];
2355
2336
  };
2356
2337
 
2357
2338
  const getScrollBarVirtualDom = (scrollBarHeight, scrollBarTop) => {
@@ -2557,7 +2538,7 @@ const render2 = (uid, diffResult) => {
2557
2538
  oldState,
2558
2539
  newState
2559
2540
  } = get(uid);
2560
- set$1(uid, newState, newState);
2541
+ set(uid, newState, newState);
2561
2542
  const commands = applyRender(oldState, newState, diffResult);
2562
2543
  return commands;
2563
2544
  };
@@ -2576,6 +2557,7 @@ const commandMap = {
2576
2557
  'Completions.handleEditorDeleteLeft': wrapCommand(handleEditorDeleteLeft),
2577
2558
  'Completions.handleEditorType': wrapCommand(handleEditorType),
2578
2559
  'Completions.handleWheel': wrapCommand(handleWheel),
2560
+ 'Completions.handlePointerDown': wrapCommand(handlePointerDown),
2579
2561
  'Completions.initialize': initialize,
2580
2562
  'Completions.loadContent': wrapCommand(loadContent),
2581
2563
  'Completions.openDetails': wrapCommand(openDetails),
@@ -2589,7 +2571,7 @@ const listen = async () => {
2589
2571
  const rpc = await WebWorkerRpcClient.create({
2590
2572
  commandMap: commandMap
2591
2573
  });
2592
- set$2(rpc);
2574
+ set$1(rpc);
2593
2575
  };
2594
2576
 
2595
2577
  const main = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/completion-worker",
3
- "version": "1.27.0",
3
+ "version": "1.29.0",
4
4
  "description": "Web Worker for the completion widget in Lvce Editor",
5
5
  "repository": {
6
6
  "type": "git",