@lvce-editor/extension-management-worker 4.45.0 → 4.47.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.
@@ -2756,6 +2756,15 @@ const executeExtensionCommand = async (extensionsState, id, ...args) => {
2756
2756
  };
2757
2757
  };
2758
2758
 
2759
+ const getLanguageServerRootUri = async () => {
2760
+ try {
2761
+ const workspacePath = await invoke$2('Workspace.getPath');
2762
+ return typeof workspacePath === 'string' && workspacePath ? workspacePath : undefined;
2763
+ } catch {
2764
+ return undefined;
2765
+ }
2766
+ };
2767
+
2759
2768
  /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
2760
2769
  const warn = (...args) => {
2761
2770
  console.warn(...args);
@@ -2824,10 +2833,14 @@ const executeLanguageServerCompletion = async (rpc, extension, textDocument, off
2824
2833
  }
2825
2834
  let result;
2826
2835
  try {
2836
+ const rootUri = await getLanguageServerRootUri();
2827
2837
  result = await invoke$1('LanguageServer.complete', {
2828
2838
  argv: languageServer.argv,
2829
2839
  id: languageServer.id,
2830
2840
  offset,
2841
+ ...(rootUri && {
2842
+ rootUri
2843
+ }),
2831
2844
  textDocument,
2832
2845
  uri: languageServer.uri
2833
2846
  });
@@ -2869,7 +2882,7 @@ const contributesCompletionProvider = (extension, languageId) => {
2869
2882
  const contributesLanguageServer$1 = (extension, languageId) => {
2870
2883
  return Array.isArray(extension.languageServers) && extension.languageServers.some(languageServer => languageServer.languageId === languageId);
2871
2884
  };
2872
- const getMatchingExtensions$5 = async (extensionsState, textDocument, assetDir, platform) => {
2885
+ const getMatchingExtensions$6 = async (extensionsState, textDocument, assetDir, platform) => {
2873
2886
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2874
2887
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && (contributesCompletionProvider(extension, textDocument.languageId) || contributesLanguageServer$1(extension, textDocument.languageId)));
2875
2888
  };
@@ -2891,7 +2904,7 @@ const executeCompletionProvider = async (extensionsState, textDocument, ...args)
2891
2904
  assetDir,
2892
2905
  platform
2893
2906
  } = await getRuntimeContext('', extensionsState.platform);
2894
- const extensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2907
+ const extensions = await getMatchingExtensions$6(extensionsState, textDocument, assetDir, platform);
2895
2908
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2896
2909
  const results = await Promise.all(rpcs.map((rpc, index) => executeExtensionCompletionProvider(rpc, extensions[index], textDocument, args)));
2897
2910
  return results[0] || [];
@@ -2901,7 +2914,7 @@ const executeResolveCompletionItemProvider = async (extensionsState, textDocumen
2901
2914
  assetDir,
2902
2915
  platform
2903
2916
  } = await getRuntimeContext('', extensionsState.platform);
2904
- const matchingExtensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2917
+ const matchingExtensions = await getMatchingExtensions$6(extensionsState, textDocument, assetDir, platform);
2905
2918
  const extensions = matchingExtensions.filter(extension => contributesCompletionProvider(extension, textDocument.languageId));
2906
2919
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2907
2920
  const results = await Promise.all(rpcs.map(rpc => executeRpcResolveCompletionItemProvider(rpc, textDocument, args)));
@@ -2934,9 +2947,13 @@ const executeLanguageServerDiagnostic = async (rpc, extension, textDocument) =>
2934
2947
  if (!languageServer) {
2935
2948
  return [];
2936
2949
  }
2950
+ const rootUri = await getLanguageServerRootUri();
2937
2951
  const result = await invoke$1('LanguageServer.diagnostic', {
2938
2952
  argv: languageServer.argv,
2939
2953
  id: languageServer.id,
2954
+ ...(rootUri && {
2955
+ rootUri
2956
+ }),
2940
2957
  textDocument,
2941
2958
  uri: languageServer.uri
2942
2959
  });
@@ -2951,7 +2968,7 @@ const contributesDiagnosticProvider = (extension, languageId) => {
2951
2968
  const contributesLanguageServer = (extension, languageId) => {
2952
2969
  return Array.isArray(extension.languageServers) && extension.languageServers.some(languageServer => languageServer.languageId === languageId);
2953
2970
  };
2954
- const getMatchingExtensions$4 = async (extensionsState, textDocument, assetDir, platform) => {
2971
+ const getMatchingExtensions$5 = async (extensionsState, textDocument, assetDir, platform) => {
2955
2972
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
2956
2973
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && (contributesDiagnosticProvider(extension, textDocument.languageId) || contributesLanguageServer(extension, textDocument.languageId)));
2957
2974
  };
@@ -2969,7 +2986,7 @@ const executeDiagnosticProvider = async (extensionsState, textDocument, ...args)
2969
2986
  assetDir,
2970
2987
  platform
2971
2988
  } = await getRuntimeContext('', extensionsState.platform);
2972
- const extensions = await getMatchingExtensions$4(extensionsState, textDocument, assetDir, platform);
2989
+ const extensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
2973
2990
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
2974
2991
  const results = await Promise.all(rpcs.map((rpc, index) => executeExtensionDiagnosticProvider(rpc, extensions[index], textDocument, args)));
2975
2992
  return results.flat();
@@ -3023,7 +3040,7 @@ const executeFileSystemProviderReadFile = (extensionsState, providerId, uri) =>
3023
3040
  const contributesFormattingProvider = (extension, languageId) => {
3024
3041
  return Array.isArray(extension.formattingProviders) && extension.formattingProviders.some(provider => provider.languageId === languageId);
3025
3042
  };
3026
- const getMatchingExtensions$3 = async (extensionsState, textDocument, assetDir, platform) => {
3043
+ const getMatchingExtensions$4 = async (extensionsState, textDocument, assetDir, platform) => {
3027
3044
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3028
3045
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesFormattingProvider(extension, textDocument.languageId));
3029
3046
  };
@@ -3035,7 +3052,7 @@ const executeFormattingProvider = async (extensionsState, textDocument, ...args)
3035
3052
  assetDir,
3036
3053
  platform
3037
3054
  } = await getRuntimeContext('', extensionsState.platform);
3038
- const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
3055
+ const extensions = await getMatchingExtensions$4(extensionsState, textDocument, assetDir, platform);
3039
3056
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
3040
3057
  const results = await Promise.all(rpcs.map(rpc => executeRpcFormattingProvider(rpc, textDocument, args)));
3041
3058
  return results[0] || [];
@@ -3046,7 +3063,7 @@ const executeFormattingProvider = async (extensionsState, textDocument, ...args)
3046
3063
  const contributesHoverProvider = (extension, languageId) => {
3047
3064
  return Array.isArray(extension.hoverProviders) && extension.hoverProviders.some(provider => provider.languageId === languageId);
3048
3065
  };
3049
- const getMatchingExtensions$2 = async (extensionsState, textDocument, assetDir, platform) => {
3066
+ const getMatchingExtensions$3 = async (extensionsState, textDocument, assetDir, platform) => {
3050
3067
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3051
3068
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesHoverProvider(extension, textDocument.languageId));
3052
3069
  };
@@ -3058,7 +3075,7 @@ const executeHoverProvider = async (extensionsState, textDocument, ...args) => {
3058
3075
  assetDir,
3059
3076
  platform
3060
3077
  } = await getRuntimeContext('', extensionsState.platform);
3061
- const extensions = await getMatchingExtensions$2(extensionsState, textDocument, assetDir, platform);
3078
+ const extensions = await getMatchingExtensions$3(extensionsState, textDocument, assetDir, platform);
3062
3079
  const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
3063
3080
  const results = await Promise.all(rpcs.map(rpc => executeRpcHoverProvider(rpc, textDocument, args)));
3064
3081
  return results[0];
@@ -3080,7 +3097,7 @@ const contributesLanguageProvider = (extension, kind, languageId) => {
3080
3097
  const activationEvent = activationEventByKind[kind] || 'onLanguage';
3081
3098
  return Array.isArray(extension.activation) && extension.activation.includes(`${activationEvent}:${languageId}`);
3082
3099
  };
3083
- const getMatchingExtensions$1 = async (extensionsState, kind, textDocument, assetDir, platform) => {
3100
+ const getMatchingExtensions$2 = async (extensionsState, kind, textDocument, assetDir, platform) => {
3084
3101
  const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3085
3102
  return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesLanguageProvider(extension, kind, textDocument.languageId));
3086
3103
  };
@@ -3092,7 +3109,7 @@ const executeLanguageProvider = async (extensionsState, kind, methodName, textDo
3092
3109
  assetDir,
3093
3110
  platform
3094
3111
  } = await getRuntimeContext('', extensionsState.platform);
3095
- const extensions = await getMatchingExtensions$1(extensionsState, kind, textDocument, assetDir, platform);
3112
+ const extensions = await getMatchingExtensions$2(extensionsState, kind, textDocument, assetDir, platform);
3096
3113
  if (extensions.length === 0) {
3097
3114
  return {
3098
3115
  found: false
@@ -3110,7 +3127,7 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
3110
3127
  assetDir,
3111
3128
  platform
3112
3129
  } = await getRuntimeContext('', extensionsState.platform);
3113
- const extensions = await getMatchingExtensions$1(extensionsState, 'code action', textDocument, assetDir, platform);
3130
+ const extensions = await getMatchingExtensions$2(extensionsState, 'code action', textDocument, assetDir, platform);
3114
3131
  if (extensions.length === 0) {
3115
3132
  return {
3116
3133
  found: false
@@ -3126,6 +3143,29 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
3126
3143
 
3127
3144
  /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
3128
3145
 
3146
+ const contributesSignatureHelpProvider = (extension, languageId) => {
3147
+ return Array.isArray(extension.signatureHelpProviders) && extension.signatureHelpProviders.some(provider => provider.languageId === languageId);
3148
+ };
3149
+ const getMatchingExtensions$1 = async (extensionsState, textDocument, assetDir, platform) => {
3150
+ const extensions = await getAllExtensionsWithState(extensionsState, assetDir, platform);
3151
+ return extensions.filter(extension => !extension.disabled && isExtensionIsolated(extension) && contributesSignatureHelpProvider(extension, textDocument.languageId));
3152
+ };
3153
+ const executeRpcSignatureHelpProvider = async (rpc, textDocument, args) => {
3154
+ return rpc.invoke('ExtensionApi.executeSignatureHelpProvider', textDocument, ...args);
3155
+ };
3156
+ const executeSignatureHelpProvider = async (extensionsState, textDocument, ...args) => {
3157
+ const {
3158
+ assetDir,
3159
+ platform
3160
+ } = await getRuntimeContext('', extensionsState.platform);
3161
+ const extensions = await getMatchingExtensions$1(extensionsState, textDocument, assetDir, platform);
3162
+ const rpcs = await Promise.all(extensions.map(extension => getRpc$1(extension, assetDir, platform)));
3163
+ const results = await Promise.all(rpcs.map(rpc => executeRpcSignatureHelpProvider(rpc, textDocument, args)));
3164
+ return results[0];
3165
+ };
3166
+
3167
+ /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
3168
+
3129
3169
  const getProviderIds = extension => {
3130
3170
  if (!Array.isArray(extension.sourceControlProviders)) {
3131
3171
  return [];
@@ -4111,6 +4151,7 @@ const commandMap = {
4111
4151
  'Extensions.executeLanguageProvider': wrapCommand(executeLanguageProvider),
4112
4152
  'Extensions.executeOrganizeImportsProvider': wrapCommand(executeOrganizeImportsProvider),
4113
4153
  'Extensions.executeResolveCompletionItemProvider': wrapCommand(executeResolveCompletionItemProvider),
4154
+ 'Extensions.executeSignatureHelpProvider': wrapCommand(executeSignatureHelpProvider),
4114
4155
  'Extensions.executeSourceControlProvider': wrapCommand(executeSourceControlProvider),
4115
4156
  'Extensions.getAccessToken': getAccessToken,
4116
4157
  'Extensions.getAllExtensions': getAllExtensions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-management-worker",
3
- "version": "4.45.0",
3
+ "version": "4.47.0",
4
4
  "description": "Webworker for the Extension Management functionality in Lvce Editor.",
5
5
  "keywords": [
6
6
  "web-worker"