don't return duplicates from vscode.extensions.allAcrossExtensionHosts, add ExtensionIdentifierSet fyi @alexdima

This commit is contained in:
Johannes
2022-04-22 12:43:19 +02:00
parent beea29de50
commit e7bc9bb5fc
2 changed files with 63 additions and 5 deletions

View File

@@ -91,7 +91,7 @@ import { ExtHostNotebookEditors } from 'vs/workbench/api/common/extHostNotebookE
import { ExtHostNotebookDocuments } from 'vs/workbench/api/common/extHostNotebookDocuments';
import { ExtHostInteractive } from 'vs/workbench/api/common/extHostInteractive';
import { combinedDisposable } from 'vs/base/common/lifecycle';
import { checkProposedApiEnabled, isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
import { checkProposedApiEnabled, ExtensionIdentifierSet, isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
import { DebugConfigurationProviderTriggerKind } from 'vs/workbench/contrib/debug/common/debug';
import { ExtHostNotebookProxyKernels } from 'vs/workbench/api/common/extHostNotebookProxyKernels';
@@ -419,12 +419,11 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
},
get allAcrossExtensionHosts(): vscode.Extension<any>[] {
checkProposedApiEnabled(extension, 'extensionsAny');
const local = new ExtensionIdentifierSet(extensionInfo.mine.getAllExtensionDescriptions().map(desc => desc.identifier));
const result: vscode.Extension<any>[] = [];
for (const desc of extensionInfo.mine.getAllExtensionDescriptions()) {
result.push(new Extension(extensionService, extension.identifier, desc, extensionKind, false));
}
for (const desc of extensionInfo.all.getAllExtensionDescriptions()) {
result.push(new Extension(extensionService, extension.identifier, desc, extensionKind /* TODO@alexdima THIS IS WRONG */, true));
const isFromDifferentExtensionHost = !local.has(desc.identifier);
result.push(new Extension(extensionService, extension.identifier, desc, extensionKind /* TODO@alexdima THIS IS WRONG */, isFromDifferentExtensionHost));
}
return result;
},