@lvce-editor/extension-management-worker 4.28.0 → 4.28.1

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.
@@ -2423,7 +2423,7 @@ const contributesCompletionProvider = (extension, languageId) => {
2423
2423
  const contributesLanguageServer = (extension, languageId) => {
2424
2424
  return Array.isArray(extension.languageServers) && extension.languageServers.some(languageServer => languageServer.languageId === languageId);
2425
2425
  };
2426
- const getMatchingExtensions$4 = async (extensionsState, textDocument, assetDir, platform) => {
2426
+ const getMatchingExtensions$5 = async (extensionsState, textDocument, assetDir, platform) => {
2427
2427
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2428
2428
  return extensions.filter(extension => isExtensionIsolated(extension) && (contributesCompletionProvider(extension, textDocument.languageId) || contributesLanguageServer(extension, textDocument.languageId)));
2429
2429
  };
@@ -2445,7 +2445,7 @@ const executeCompletionProvider = async (extensionsState, textDocument, ...args)
2445
2445
  assetDir,
2446
2446
  platform
2447
2447
  } = await getRuntimeContext('', extensionsState.platform);
2448
- const extensions = await getMatchingExtensions$4(extensionsState, textDocument, assetDir, platform);
2448
+ const extensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2449
2449
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2450
2450
  const results = await Promise.all(rpcs.map((rpc, index) => executeExtensionCompletionProvider(rpc, extensions[index], textDocument, args)));
2451
2451
  return results[0] || [];
@@ -2455,7 +2455,7 @@ const executeResolveCompletionItemProvider = async (extensionsState, textDocumen
2455
2455
  assetDir,
2456
2456
  platform
2457
2457
  } = await getRuntimeContext('', extensionsState.platform);
2458
- const matchingExtensions = await getMatchingExtensions$4(extensionsState, textDocument, assetDir, platform);
2458
+ const matchingExtensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2459
2459
  const extensions = matchingExtensions.filter(extension => contributesCompletionProvider(extension, textDocument.languageId));
2460
2460
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2461
2461
  const results = await Promise.all(rpcs.map(rpc => executeRpcResolveCompletionItemProvider(rpc, textDocument, args)));
@@ -2467,7 +2467,7 @@ const executeResolveCompletionItemProvider = async (extensionsState, textDocumen
2467
2467
  const contributesDiagnosticProvider = (extension, languageId) => {
2468
2468
  return Array.isArray(extension.diagnosticProviders) && extension.diagnosticProviders.some(provider => provider.languageId === languageId);
2469
2469
  };
2470
- const getMatchingExtensions$3 = async (extensionsState, textDocument, assetDir, platform) => {
2470
+ const getMatchingExtensions$4 = async (extensionsState, textDocument, assetDir, platform) => {
2471
2471
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2472
2472
  return extensions.filter(extension => isExtensionIsolated(extension) && contributesDiagnosticProvider(extension, textDocument.languageId));
2473
2473
  };
@@ -2479,7 +2479,7 @@ const executeDiagnosticProvider = async (extensionsState, textDocument, ...args)
2479
2479
  assetDir,
2480
2480
  platform
2481
2481
  } = await getRuntimeContext('', extensionsState.platform);
2482
- const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
2482
+ const extensions = await getMatchingExtensions$4(extensionsState, textDocument, assetDir, platform);
2483
2483
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2484
2484
  const results = await Promise.all(rpcs.map(rpc => executeRpcDiagnosticProvider(rpc, textDocument, args)));
2485
2485
  return results.flat();
@@ -2490,7 +2490,7 @@ const executeDiagnosticProvider = async (extensionsState, textDocument, ...args)
2490
2490
  const contributesFormattingProvider = (extension, languageId) => {
2491
2491
  return Array.isArray(extension.formattingProviders) && extension.formattingProviders.some(provider => provider.languageId === languageId);
2492
2492
  };
2493
- const getMatchingExtensions$2 = async (extensionsState, textDocument, assetDir, platform) => {
2493
+ const getMatchingExtensions$3 = async (extensionsState, textDocument, assetDir, platform) => {
2494
2494
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2495
2495
  return extensions.filter(extension => isExtensionIsolated(extension) && contributesFormattingProvider(extension, textDocument.languageId));
2496
2496
  };
@@ -2502,7 +2502,7 @@ const executeFormattingProvider = async (extensionsState, textDocument, ...args)
2502
2502
  assetDir,
2503
2503
  platform
2504
2504
  } = await getRuntimeContext('', extensionsState.platform);
2505
- const extensions = await getMatchingExtensions$2(extensionsState, textDocument, assetDir, platform);
2505
+ const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
2506
2506
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2507
2507
  const results = await Promise.all(rpcs.map(rpc => executeRpcFormattingProvider(rpc, textDocument, args)));
2508
2508
  return results[0] || [];
@@ -2513,7 +2513,7 @@ const executeFormattingProvider = async (extensionsState, textDocument, ...args)
2513
2513
  const contributesHoverProvider = (extension, languageId) => {
2514
2514
  return Array.isArray(extension.hoverProviders) && extension.hoverProviders.some(provider => provider.languageId === languageId);
2515
2515
  };
2516
- const getMatchingExtensions$1 = async (extensionsState, textDocument, assetDir, platform) => {
2516
+ const getMatchingExtensions$2 = async (extensionsState, textDocument, assetDir, platform) => {
2517
2517
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2518
2518
  return extensions.filter(extension => isExtensionIsolated(extension) && contributesHoverProvider(extension, textDocument.languageId));
2519
2519
  };
@@ -2525,7 +2525,7 @@ const executeHoverProvider = async (extensionsState, textDocument, ...args) => {
2525
2525
  assetDir,
2526
2526
  platform
2527
2527
  } = await getRuntimeContext('', extensionsState.platform);
2528
- const extensions = await getMatchingExtensions$1(extensionsState, textDocument, assetDir, platform);
2528
+ const extensions = await getMatchingExtensions$2(extensionsState, textDocument, assetDir, platform);
2529
2529
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2530
2530
  const results = await Promise.all(rpcs.map(rpc => executeRpcHoverProvider(rpc, textDocument, args)));
2531
2531
  return results[0];
@@ -2547,7 +2547,7 @@ const contributesLanguageProvider = (extension, kind, languageId) => {
2547
2547
  const activationEvent = activationEventByKind[kind] || 'onLanguage';
2548
2548
  return Array.isArray(extension.activation) && extension.activation.includes(`${activationEvent}:${languageId}`);
2549
2549
  };
2550
- const getMatchingExtensions = async (extensionsState, kind, textDocument, assetDir, platform) => {
2550
+ const getMatchingExtensions$1 = async (extensionsState, kind, textDocument, assetDir, platform) => {
2551
2551
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2552
2552
  return extensions.filter(extension => isExtensionIsolated(extension) && contributesLanguageProvider(extension, kind, textDocument.languageId));
2553
2553
  };
@@ -2559,7 +2559,7 @@ const executeLanguageProvider = async (extensionsState, kind, methodName, textDo
2559
2559
  assetDir,
2560
2560
  platform
2561
2561
  } = await getRuntimeContext('', extensionsState.platform);
2562
- const extensions = await getMatchingExtensions(extensionsState, kind, textDocument, assetDir, platform);
2562
+ const extensions = await getMatchingExtensions$1(extensionsState, kind, textDocument, assetDir, platform);
2563
2563
  if (extensions.length === 0) {
2564
2564
  return {
2565
2565
  found: false
@@ -2577,7 +2577,7 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
2577
2577
  assetDir,
2578
2578
  platform
2579
2579
  } = await getRuntimeContext('', extensionsState.platform);
2580
- const extensions = await getMatchingExtensions(extensionsState, 'code action', textDocument, assetDir, platform);
2580
+ const extensions = await getMatchingExtensions$1(extensionsState, 'code action', textDocument, assetDir, platform);
2581
2581
  if (extensions.length === 0) {
2582
2582
  return {
2583
2583
  found: false
@@ -2591,6 +2591,61 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
2591
2591
  };
2592
2592
  };
2593
2593
 
2594
+ /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
2595
+
2596
+ const getProviderIds = extension => {
2597
+ if (!Array.isArray(extension.sourceControlProviders)) {
2598
+ return [];
2599
+ }
2600
+ return extension.sourceControlProviders.map(provider => provider.id).filter(id => typeof id === 'string');
2601
+ };
2602
+ const getMatchingExtensions = async (extensionsState, assetDir, platform) => {
2603
+ const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2604
+ return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && getProviderIds(extension).length > 0);
2605
+ };
2606
+ const findExtension = (extensions, providerId) => {
2607
+ return extensions.find(extension => getProviderIds(extension).includes(providerId));
2608
+ };
2609
+ const isProviderActive = async (rpc, providerId, scheme, root) => {
2610
+ return rpc.invoke('ExtensionApi.executeSourceControlIsActive', providerId, scheme, root);
2611
+ };
2612
+ const getEnabledSourceControlProviderIds = async (extensionsState, scheme, root) => {
2613
+ const {
2614
+ assetDir,
2615
+ platform
2616
+ } = await getRuntimeContext('', extensionsState.platform);
2617
+ const extensions = await getMatchingExtensions(extensionsState, assetDir, platform);
2618
+ const enabledProviderIds = [];
2619
+ for (const extension of extensions) {
2620
+ const rpc = await getRpc$1(extension, assetDir, platform);
2621
+ for (const providerId of getProviderIds(extension)) {
2622
+ if (await isProviderActive(rpc, providerId, scheme, root)) {
2623
+ enabledProviderIds.push(providerId);
2624
+ }
2625
+ }
2626
+ }
2627
+ return enabledProviderIds;
2628
+ };
2629
+ const executeSourceControlProvider = async (extensionsState, providerId, methodName, ...args) => {
2630
+ const {
2631
+ assetDir,
2632
+ platform
2633
+ } = await getRuntimeContext('', extensionsState.platform);
2634
+ const extensions = await getMatchingExtensions(extensionsState, assetDir, platform);
2635
+ const extension = findExtension(extensions, providerId);
2636
+ if (!extension) {
2637
+ return {
2638
+ found: false
2639
+ };
2640
+ }
2641
+ const rpc = await getRpc$1(extension, assetDir, platform);
2642
+ const result = await rpc.invoke(`ExtensionApi.${methodName}`, providerId, ...args);
2643
+ return {
2644
+ found: true,
2645
+ result
2646
+ };
2647
+ };
2648
+
2594
2649
  const readFile = uri => {
2595
2650
  return readFile$1(uri);
2596
2651
  };
@@ -3408,6 +3463,7 @@ const commandMap = {
3408
3463
  'Extensions.executeLanguageProvider': wrapCommand(executeLanguageProvider),
3409
3464
  'Extensions.executeOrganizeImportsProvider': wrapCommand(executeOrganizeImportsProvider),
3410
3465
  'Extensions.executeResolveCompletionItemProvider': wrapCommand(executeResolveCompletionItemProvider),
3466
+ 'Extensions.executeSourceControlProvider': wrapCommand(executeSourceControlProvider),
3411
3467
  'Extensions.getAccessToken': getAccessToken,
3412
3468
  'Extensions.getAllExtensions': getAllExtensions,
3413
3469
  'Extensions.getColorThemeCss': getColorThemeCss,
@@ -3415,6 +3471,7 @@ const commandMap = {
3415
3471
  'Extensions.getColorThemeJson': getColorThemeJson,
3416
3472
  'Extensions.getColorThemeNames': getColorThemeNames,
3417
3473
  'Extensions.getDynamicWebExtensions': getDynamicWebExtensions,
3474
+ 'Extensions.getEnabledSourceControlProviderIds': wrapCommand(getEnabledSourceControlProviderIds),
3418
3475
  'Extensions.getExtension': getExtension,
3419
3476
  'Extensions.getKeyBindings': getKeyBindings,
3420
3477
  'Extensions.getLanguages': getLanguages,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-management-worker",
3
- "version": "4.28.0",
3
+ "version": "4.28.1",
4
4
  "description": "Webworker for the Extension Management functionality in Lvce Editor.",
5
5
  "keywords": [
6
6
  "web-worker"