assign builtin flag for overridden remote builtin extensions (#151446)

* remove --enable-proposed-api flag for builtin extensions

* use same dedup logic for remote extensions as local extensions
This commit is contained in:
Sandeep Somavarapu 2022-06-07 20:09:35 +02:00 committed by GitHub
parent 88b9d6fa46
commit 0092b000b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 32 deletions

View file

@ -63,7 +63,7 @@ else
export ELECTRON_ENABLE_LOGGING=1
# Running from a build, we need to enable the vscode-test-resolver extension
EXTRA_INTEGRATION_TEST_ARGUMENTS="--extensions-dir=$EXT_PATH --enable-proposed-api=vscode.vscode-test-resolver --enable-proposed-api=vscode.vscode-api-tests --enable-proposed-api=vscode.markdown-language-features --enable-proposed-api=vscode.git"
EXTRA_INTEGRATION_TEST_ARGUMENTS="--extensions-dir=$EXT_PATH --enable-proposed-api=vscode.vscode-test-resolver --enable-proposed-api=vscode.vscode-api-tests"
echo "Storing crash reports into '$VSCODECRASHDIR'."
echo "Storing log files into '$VSCODELOGSDIR'."

View file

@ -9,11 +9,10 @@ import * as performance from 'vs/base/common/performance';
import { URI } from 'vs/base/common/uri';
import { createURITransformer } from 'vs/workbench/api/node/uriTransformer';
import { IRemoteAgentEnvironmentDTO, IGetEnvironmentDataArguments, IScanExtensionsArguments, IScanSingleExtensionArguments, IGetExtensionHostExitInfoArguments } from 'vs/workbench/services/remote/common/remoteAgentEnvironmentChannel';
import * as nls from 'vs/nls';
import { Schemas } from 'vs/base/common/network';
import { IServerEnvironmentService } from 'vs/server/node/serverEnvironmentService';
import { IServerChannel } from 'vs/base/parts/ipc/common/ipc';
import { ExtensionIdentifier, ExtensionType, IExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { ExtensionType, IExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { transformOutgoingURIs } from 'vs/base/common/uriIpc';
import { ILogService } from 'vs/platform/log/common/log';
import { ContextKeyExpr, ContextKeyDefinedExpr, ContextKeyNotExpr, ContextKeyEqualsExpr, ContextKeyNotEqualsExpr, ContextKeyRegexExpr, IContextKeyExprMapper, ContextKeyExpression, ContextKeyInExpr, ContextKeyGreaterExpr, ContextKeyGreaterEqualsExpr, ContextKeySmallerExpr, ContextKeySmallerEqualsExpr } from 'vs/platform/contextkey/common/contextkey';
@ -27,6 +26,7 @@ import { cwd } from 'vs/base/common/process';
import { ServerConnectionToken, ServerConnectionTokenType } from 'vs/server/node/serverConnectionToken';
import { IExtensionHostStatusService } from 'vs/server/node/extensionHostStatusService';
import { IExtensionsScannerService, toExtensionDescription } from 'vs/platform/extensionManagement/common/extensionsScannerService';
import { dedupExtensions } from 'vs/workbench/services/extensions/common/extensionsUtil';
export class RemoteAgentEnvironmentChannel implements IServerChannel {
@ -310,35 +310,7 @@ export class RemoteAgentEnvironmentChannel implements IServerChannel {
this._scanDevelopedExtensions(language, extensionDevelopmentPath)
]);
let result = new Map<string, IExtensionDescription>();
builtinExtensions.forEach((builtinExtension) => {
if (!builtinExtension) {
return;
}
result.set(ExtensionIdentifier.toKey(builtinExtension.identifier), builtinExtension);
});
installedExtensions.forEach((installedExtension) => {
if (!installedExtension) {
return;
}
if (result.has(ExtensionIdentifier.toKey(installedExtension.identifier))) {
console.warn(nls.localize('overwritingExtension', "Overwriting extension {0} with {1}.", result.get(ExtensionIdentifier.toKey(installedExtension.identifier))!.extensionLocation.fsPath, installedExtension.extensionLocation.fsPath));
}
result.set(ExtensionIdentifier.toKey(installedExtension.identifier), installedExtension);
});
developedExtensions.forEach((developedExtension) => {
if (!developedExtension) {
return;
}
result.set(ExtensionIdentifier.toKey(developedExtension.identifier), developedExtension);
});
const r: IExtensionDescription[] = [];
result.forEach((v) => r.push(v));
return r;
return dedupExtensions(builtinExtensions, installedExtensions, developedExtensions, this._logService);
}
private async _scanDevelopedExtensions(language: string, extensionDevelopmentPaths?: string[]): Promise<IExtensionDescription[]> {