@lvce-editor/extension-management-worker 4.81.3 → 4.83.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.
|
@@ -3934,23 +3934,46 @@ const executeExtensionDiagnosticProvider = async (rpc, extension, textDocument,
|
|
|
3934
3934
|
}
|
|
3935
3935
|
return executeRpcDiagnosticProvider(rpc, textDocument, args);
|
|
3936
3936
|
};
|
|
3937
|
-
const executeMatchingDiagnosticProvider = async (extension, textDocument, args, assetDir, platform) => {
|
|
3937
|
+
const executeMatchingDiagnosticProvider = async (extension, textDocument, args, assetDir, platform, resultPort, providerIndex) => {
|
|
3938
|
+
const providerId = extension.id ?? extension.uri ?? extension.path ?? String(providerIndex);
|
|
3939
|
+
let diagnostics = [];
|
|
3938
3940
|
try {
|
|
3939
3941
|
const rpc = await getRpc$1(extension, assetDir, platform, `onDiagnostic:${textDocument.languageId}`);
|
|
3940
|
-
|
|
3942
|
+
diagnostics = await executeExtensionDiagnosticProvider(rpc, extension, textDocument, args);
|
|
3941
3943
|
} catch {
|
|
3942
|
-
|
|
3944
|
+
// A failing provider should not prevent results from other providers from being delivered.
|
|
3943
3945
|
}
|
|
3946
|
+
resultPort?.postMessage({
|
|
3947
|
+
diagnostics,
|
|
3948
|
+
providerId,
|
|
3949
|
+
providerIndex,
|
|
3950
|
+
type: 'result'
|
|
3951
|
+
});
|
|
3952
|
+
return diagnostics;
|
|
3944
3953
|
};
|
|
3945
|
-
const
|
|
3954
|
+
const executeDiagnosticProviders = async (extensionsState, textDocument, resultPort, ...args) => {
|
|
3946
3955
|
const {
|
|
3947
3956
|
assetDir,
|
|
3948
3957
|
platform
|
|
3949
3958
|
} = await getRuntimeContext('', extensionsState.platform);
|
|
3950
3959
|
const extensions = await getMatchingExtensions$5(extensionsState, textDocument, assetDir, platform);
|
|
3951
|
-
|
|
3960
|
+
resultPort?.postMessage({
|
|
3961
|
+
providerCount: extensions.length,
|
|
3962
|
+
providerIds: extensions.map((extension, index) => extension.id ?? extension.uri ?? extension.path ?? String(index)),
|
|
3963
|
+
type: 'providers'
|
|
3964
|
+
});
|
|
3965
|
+
const results = await Promise.all(extensions.map((extension, providerIndex) => executeMatchingDiagnosticProvider(extension, textDocument, args, assetDir, platform, resultPort, providerIndex)));
|
|
3966
|
+
resultPort?.postMessage({
|
|
3967
|
+
type: 'done'
|
|
3968
|
+
});
|
|
3952
3969
|
return results.flat();
|
|
3953
3970
|
};
|
|
3971
|
+
const executeDiagnosticProvider = async (extensionsState, textDocument, ...args) => {
|
|
3972
|
+
return executeDiagnosticProviders(extensionsState, textDocument, undefined, ...args);
|
|
3973
|
+
};
|
|
3974
|
+
const streamDiagnosticProvider = async (extensionsState, textDocument, resultPort, ...args) => {
|
|
3975
|
+
await executeDiagnosticProviders(extensionsState, textDocument, resultPort, ...args);
|
|
3976
|
+
};
|
|
3954
3977
|
|
|
3955
3978
|
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
|
|
3956
3979
|
|
|
@@ -4588,6 +4611,24 @@ const executeOrganizeImportsProvider = async (extensionsState, textDocument) =>
|
|
|
4588
4611
|
result
|
|
4589
4612
|
};
|
|
4590
4613
|
};
|
|
4614
|
+
const executeSourceActionProvider = async (extensionsState, textDocument, kind) => {
|
|
4615
|
+
const {
|
|
4616
|
+
assetDir,
|
|
4617
|
+
platform
|
|
4618
|
+
} = await getRuntimeContext('', extensionsState.platform);
|
|
4619
|
+
const extensions = await getMatchingExtensions$2(extensionsState, 'code action', textDocument, assetDir, platform);
|
|
4620
|
+
if (extensions.length === 0) {
|
|
4621
|
+
return {
|
|
4622
|
+
found: false
|
|
4623
|
+
};
|
|
4624
|
+
}
|
|
4625
|
+
const rpc = await getRpc$1(extensions[0], assetDir, platform);
|
|
4626
|
+
const result = await rpc.invoke('ExtensionApi.executeSourceActionProvider', textDocument, kind);
|
|
4627
|
+
return {
|
|
4628
|
+
found: true,
|
|
4629
|
+
result
|
|
4630
|
+
};
|
|
4631
|
+
};
|
|
4591
4632
|
|
|
4592
4633
|
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
|
|
4593
4634
|
|
|
@@ -6322,6 +6363,7 @@ const commandMap = {
|
|
|
6322
6363
|
'Extensions.executeProvidersByEvent': wrapCommand(executeProvidersByEvent),
|
|
6323
6364
|
'Extensions.executeResolveCompletionItemProvider': wrapCommand(executeResolveCompletionItemProvider),
|
|
6324
6365
|
'Extensions.executeSignatureHelpProvider': wrapCommand(executeSignatureHelpProvider),
|
|
6366
|
+
'Extensions.executeSourceActionProvider': wrapCommand(executeSourceActionProvider),
|
|
6325
6367
|
'Extensions.executeSourceControlProvider': wrapCommand(executeSourceControlProvider),
|
|
6326
6368
|
'Extensions.executeWorkspaceRequest': request,
|
|
6327
6369
|
'Extensions.getAccessToken': getAccessToken,
|
|
@@ -6374,6 +6416,7 @@ const commandMap = {
|
|
|
6374
6416
|
'Extensions.setViewInstanceState': setViewInstanceState,
|
|
6375
6417
|
'Extensions.showNotification': (type, message) => createNotification('unknown.extension', type, message),
|
|
6376
6418
|
'Extensions.showViewContextMenu': showViewContextMenu,
|
|
6419
|
+
'Extensions.streamDiagnosticProvider': wrapCommand(streamDiagnosticProvider),
|
|
6377
6420
|
'Extensions.uninstall': uninstallExtension,
|
|
6378
6421
|
'StatusBar.handleChange': handleChange,
|
|
6379
6422
|
'WebRtc.readMicLevels': readMicLevels,
|