@lvce-editor/extension-management-worker 4.44.1 → 4.46.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.
@@ -594,7 +594,7 @@ let CommandNotFoundError$1 = class CommandNotFoundError extends Error {
594
594
  }
595
595
  };
596
596
  const commands = Object.create(null);
597
- const register = commandMap => {
597
+ const register$1 = commandMap => {
598
598
  Object.assign(commands, commandMap);
599
599
  };
600
600
  const getCommand = key => {
@@ -1089,7 +1089,7 @@ const create$8 = async ({
1089
1089
  messagePort
1090
1090
  }) => {
1091
1091
  // TODO create a commandMap per rpc instance
1092
- register(commandMap);
1092
+ register$1(commandMap);
1093
1093
  const rawIpc = await IpcParentWithMessagePort$1.create({
1094
1094
  isMessagePortOpen,
1095
1095
  messagePort
@@ -1185,7 +1185,7 @@ const create$5 = async ({
1185
1185
  webSocket
1186
1186
  }) => {
1187
1187
  // TODO create a commandMap per rpc instance
1188
- register(commandMap);
1188
+ register$1(commandMap);
1189
1189
  let rawIpc;
1190
1190
  try {
1191
1191
  rawIpc = await IpcParentWithWebSocket$1.create({
@@ -1260,7 +1260,7 @@ const create$3 = async ({
1260
1260
  messagePort
1261
1261
  }) => {
1262
1262
  // TODO create a commandMap per rpc instance
1263
- register(commandMap);
1263
+ register$1(commandMap);
1264
1264
  const rawIpc = await IpcParentWithMessagePort$1.create({
1265
1265
  isMessagePortOpen,
1266
1266
  messagePort
@@ -1275,7 +1275,7 @@ const create$2 = async ({
1275
1275
  commandMap
1276
1276
  }) => {
1277
1277
  // TODO create a commandMap per rpc instance
1278
- register(commandMap);
1278
+ register$1(commandMap);
1279
1279
  const ipc = await listen$1(IpcChildWithModuleWorkerAndMessagePort$1);
1280
1280
  handleIpc(ipc);
1281
1281
  const rpc = createRpc(ipc);
@@ -1696,6 +1696,17 @@ const activateExtension2 = async (extensionId, extension, absolutePath, extensio
1696
1696
 
1697
1697
  const commandMapRef = {};
1698
1698
 
1699
+ const extensionIds = new Set();
1700
+ const register = extensionId => {
1701
+ extensionIds.add(extensionId);
1702
+ };
1703
+ const unregister = extensionId => {
1704
+ extensionIds.delete(extensionId);
1705
+ };
1706
+ const getRegisteredExtensionIds = () => {
1707
+ return [...extensionIds];
1708
+ };
1709
+
1699
1710
  const extensions = Object.create(null);
1700
1711
  const get$4 = extensionId => {
1701
1712
  return extensions[extensionId];
@@ -1819,8 +1830,14 @@ const createExtensionCommandMap = extensionId => {
1819
1830
  'Extensions.getSecret'(key) {
1820
1831
  return getSecret(extensionId, key);
1821
1832
  },
1833
+ 'Extensions.registerFileChangeHandler'() {
1834
+ register(extensionId);
1835
+ },
1822
1836
  'Extensions.storeSecret'(key, value) {
1823
1837
  return storeSecret(extensionId, key, value);
1838
+ },
1839
+ 'Extensions.unregisterFileChangeHandler'() {
1840
+ unregister(extensionId);
1824
1841
  }
1825
1842
  };
1826
1843
  };
@@ -2561,6 +2578,7 @@ const createWebViewWorkerRpc = async (rpcInfo, port) => {
2561
2578
  };
2562
2579
 
2563
2580
  const disposeIsolatedExtensionHostWorker = async (extensionId, invoke$1 = invoke) => {
2581
+ unregister(extensionId);
2564
2582
  const rpc = remove$1(extensionId);
2565
2583
  if (!rpc) {
2566
2584
  return false;
@@ -2851,7 +2869,7 @@ const contributesCompletionProvider = (extension, languageId) => {
2851
2869
  const contributesLanguageServer$1 = (extension, languageId) => {
2852
2870
  return Array.isArray(extension.languageServers) && extension.languageServers.some(languageServer => languageServer.languageId === languageId);
2853
2871
  };
2854
- const getMatchingExtensions$5 = async (extensionsState, textDocument, assetDir, platform) => {
2872
+ const getMatchingExtensions$6 = async (extensionsState, textDocument, assetDir, platform) => {
2855
2873
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2856
2874
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && (contributesCompletionProvider(extension, textDocument.languageId) || contributesLanguageServer$1(extension, textDocument.languageId)));
2857
2875
  };
@@ -2873,7 +2891,7 @@ const executeCompletionProvider = async (extensionsState, textDocument, ...args)
2873
2891
  assetDir,
2874
2892
  platform
2875
2893
  } = await getRuntimeContext('', extensionsState.platform);
2876
- const extensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2894
+ const extensions = await getMatchingExtensions$6(extensionsState, textDocument, assetDir, platform);
2877
2895
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2878
2896
  const results = await Promise.all(rpcs.map((rpc, index) => executeExtensionCompletionProvider(rpc, extensions[index], textDocument, args)));
2879
2897
  return results[0] || [];
@@ -2883,7 +2901,7 @@ const executeResolveCompletionItemProvider = async (extensionsState, textDocumen
2883
2901
  assetDir,
2884
2902
  platform
2885
2903
  } = await getRuntimeContext('', extensionsState.platform);
2886
- const matchingExtensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2904
+ const matchingExtensions = await getMatchingExtensions$6(extensionsState, textDocument, assetDir, platform);
2887
2905
  const extensions = matchingExtensions.filter(extension => contributesCompletionProvider(extension, textDocument.languageId));
2888
2906
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2889
2907
  const results = await Promise.all(rpcs.map(rpc => executeRpcResolveCompletionItemProvider(rpc, textDocument, args)));
@@ -2933,7 +2951,7 @@ const contributesDiagnosticProvider = (extension, languageId) => {
2933
2951
  const contributesLanguageServer = (extension, languageId) => {
2934
2952
  return Array.isArray(extension.languageServers) && extension.languageServers.some(languageServer => languageServer.languageId === languageId);
2935
2953
  };
2936
- const getMatchingExtensions$4 = async (extensionsState, textDocument, assetDir, platform) => {
2954
+ const getMatchingExtensions$5 = async (extensionsState, textDocument, assetDir, platform) => {
2937
2955
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2938
2956
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && (contributesDiagnosticProvider(extension, textDocument.languageId) || contributesLanguageServer(extension, textDocument.languageId)));
2939
2957
  };
@@ -2951,7 +2969,7 @@ const executeDiagnosticProvider = async (extensionsState, textDocument, ...args)
2951
2969
  assetDir,
2952
2970
  platform
2953
2971
  } = await getRuntimeContext('', extensionsState.platform);
2954
- const extensions = await getMatchingExtensions$4(extensionsState, textDocument, assetDir, platform);
2972
+ const extensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2955
2973
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2956
2974
  const results = await Promise.all(rpcs.map((rpc, index) => executeExtensionDiagnosticProvider(rpc, extensions[index], textDocument, args)));
2957
2975
  return results.flat();
@@ -3005,7 +3023,7 @@ const executeFileSystemProviderReadFile = (extensionsState, providerId, uri) =>
3005
3023
  const contributesFormattingProvider = (extension, languageId) => {
3006
3024
  return Array.isArray(extension.formattingProviders) && extension.formattingProviders.some(provider => provider.languageId === languageId);
3007
3025
  };
3008
- const getMatchingExtensions$3 = async (extensionsState, textDocument, assetDir, platform) => {
3026
+ const getMatchingExtensions$4 = async (extensionsState, textDocument, assetDir, platform) => {
3009
3027
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3010
3028
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesFormattingProvider(extension, textDocument.languageId));
3011
3029
  };
@@ -3017,7 +3035,7 @@ const executeFormattingProvider = async (extensionsState, textDocument, ...args)
3017
3035
  assetDir,
3018
3036
  platform
3019
3037
  } = await getRuntimeContext('', extensionsState.platform);
3020
- const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
3038
+ const extensions = await getMatchingExtensions$4(extensionsState, textDocument, assetDir, platform);
3021
3039
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
3022
3040
  const results = await Promise.all(rpcs.map(rpc => executeRpcFormattingProvider(rpc, textDocument, args)));
3023
3041
  return results[0] || [];
@@ -3028,7 +3046,7 @@ const executeFormattingProvider = async (extensionsState, textDocument, ...args)
3028
3046
  const contributesHoverProvider = (extension, languageId) => {
3029
3047
  return Array.isArray(extension.hoverProviders) && extension.hoverProviders.some(provider => provider.languageId === languageId);
3030
3048
  };
3031
- const getMatchingExtensions$2 = async (extensionsState, textDocument, assetDir, platform) => {
3049
+ const getMatchingExtensions$3 = async (extensionsState, textDocument, assetDir, platform) => {
3032
3050
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3033
3051
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesHoverProvider(extension, textDocument.languageId));
3034
3052
  };
@@ -3040,7 +3058,7 @@ const executeHoverProvider = async (extensionsState, textDocument, ...args) => {
3040
3058
  assetDir,
3041
3059
  platform
3042
3060
  } = await getRuntimeContext('', extensionsState.platform);
3043
- const extensions = await getMatchingExtensions$2(extensionsState, textDocument, assetDir, platform);
3061
+ const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
3044
3062
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
3045
3063
  const results = await Promise.all(rpcs.map(rpc => executeRpcHoverProvider(rpc, textDocument, args)));
3046
3064
  return results[0];
@@ -3062,7 +3080,7 @@ const contributesLanguageProvider = (extension, kind, languageId) => {
3062
3080
  const activationEvent = activationEventByKind[kind] || 'onLanguage';
3063
3081
  return Array.isArray(extension.activation) && extension.activation.includes(`${activationEvent}:${languageId}`);
3064
3082
  };
3065
- const getMatchingExtensions$1 = async (extensionsState, kind, textDocument, assetDir, platform) => {
3083
+ const getMatchingExtensions$2 = async (extensionsState, kind, textDocument, assetDir, platform) => {
3066
3084
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3067
3085
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesLanguageProvider(extension, kind, textDocument.languageId));
3068
3086
  };
@@ -3074,7 +3092,7 @@ const executeLanguageProvider = async (extensionsState, kind, methodName, textDo
3074
3092
  assetDir,
3075
3093
  platform
3076
3094
  } = await getRuntimeContext('', extensionsState.platform);
3077
- const extensions = await getMatchingExtensions$1(extensionsState, kind, textDocument, assetDir, platform);
3095
+ const extensions = await getMatchingExtensions$2(extensionsState, kind, textDocument, assetDir, platform);
3078
3096
  if (extensions.length === 0) {
3079
3097
  return {
3080
3098
  found: false
@@ -3092,7 +3110,7 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
3092
3110
  assetDir,
3093
3111
  platform
3094
3112
  } = await getRuntimeContext('', extensionsState.platform);
3095
- const extensions = await getMatchingExtensions$1(extensionsState, 'code action', textDocument, assetDir, platform);
3113
+ const extensions = await getMatchingExtensions$2(extensionsState, 'code action', textDocument, assetDir, platform);
3096
3114
  if (extensions.length === 0) {
3097
3115
  return {
3098
3116
  found: false
@@ -3108,6 +3126,29 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
3108
3126
 
3109
3127
  /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
3110
3128
 
3129
+ const contributesSignatureHelpProvider = (extension, languageId) => {
3130
+ return Array.isArray(extension.signatureHelpProviders) && extension.signatureHelpProviders.some(provider => provider.languageId === languageId);
3131
+ };
3132
+ const getMatchingExtensions$1 = async (extensionsState, textDocument, assetDir, platform) => {
3133
+ const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3134
+ return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesSignatureHelpProvider(extension, textDocument.languageId));
3135
+ };
3136
+ const executeRpcSignatureHelpProvider = async (rpc, textDocument, args) => {
3137
+ return rpc.invoke('ExtensionApi.executeSignatureHelpProvider', textDocument, ...args);
3138
+ };
3139
+ const executeSignatureHelpProvider = async (extensionsState, textDocument, ...args) => {
3140
+ const {
3141
+ assetDir,
3142
+ platform
3143
+ } = await getRuntimeContext('', extensionsState.platform);
3144
+ const extensions = await getMatchingExtensions$1(extensionsState, textDocument, assetDir, platform);
3145
+ const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
3146
+ const results = await Promise.all(rpcs.map(rpc => executeRpcSignatureHelpProvider(rpc, textDocument, args)));
3147
+ return results[0];
3148
+ };
3149
+
3150
+ /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
3151
+
3111
3152
  const getProviderIds = extension => {
3112
3153
  if (!Array.isArray(extension.sourceControlProviders)) {
3113
3154
  return [];
@@ -3899,6 +3940,19 @@ const getViews = async (assetDir, platform) => {
3899
3940
 
3900
3941
  const handleData = () => {};
3901
3942
 
3943
+ const invokeHandler = async (extensionId, changes) => {
3944
+ const rpc = get$3(extensionId);
3945
+ if (!rpc) {
3946
+ unregister(extensionId);
3947
+ return;
3948
+ }
3949
+ await rpc.invoke('ExtensionApi.handleFileChanges', changes);
3950
+ };
3951
+ const handleFileChanges = async (changes = {}) => {
3952
+ const extensionIds = getRegisteredExtensionIds();
3953
+ await Promise.allSettled(extensionIds.map(async extensionId => invokeHandler(extensionId, changes)));
3954
+ };
3955
+
3902
3956
  const handleMessagePort = async (port, rpcId) => {
3903
3957
  await create$8({
3904
3958
  commandMap: commandMapRef,
@@ -4080,6 +4134,7 @@ const commandMap = {
4080
4134
  'Extensions.executeLanguageProvider': wrapCommand(executeLanguageProvider),
4081
4135
  'Extensions.executeOrganizeImportsProvider': wrapCommand(executeOrganizeImportsProvider),
4082
4136
  'Extensions.executeResolveCompletionItemProvider': wrapCommand(executeResolveCompletionItemProvider),
4137
+ 'Extensions.executeSignatureHelpProvider': wrapCommand(executeSignatureHelpProvider),
4083
4138
  'Extensions.executeSourceControlProvider': wrapCommand(executeSourceControlProvider),
4084
4139
  'Extensions.getAccessToken': getAccessToken,
4085
4140
  'Extensions.getAllExtensions': getAllExtensions,
@@ -4103,6 +4158,7 @@ const commandMap = {
4103
4158
  'Extensions.getViewMenuEntries': getViewMenuEntries,
4104
4159
  'Extensions.getViews': getViews,
4105
4160
  'Extensions.handleData': handleData,
4161
+ 'Extensions.handleFileChanges': handleFileChanges,
4106
4162
  'Extensions.handleMessagePort': handleMessagePort,
4107
4163
  'Extensions.handleUncaughtExtensionError': handleUncaughtExtensionError,
4108
4164
  'Extensions.handleViewContextChange': handleViewContextChange,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-management-worker",
3
- "version": "4.44.1",
3
+ "version": "4.46.0",
4
4
  "description": "Webworker for the Extension Management functionality in Lvce Editor.",
5
5
  "keywords": [
6
6
  "web-worker"