Skip to content

Commit b9aaf8a

Browse files
authored
1 parent 7cc3d44 commit b9aaf8a

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

src/vs/workbench/services/extensions/electron-sandbox/cachedExtensionScanner.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,35 +58,52 @@ export class CachedExtensionScanner {
5858
this._environmentService.remoteAuthority ? [] : this._extensionManagementService.getInstalledWorkspaceExtensions(false)
5959
]);
6060

61-
let scannedSystemExtensions: IScannedExtension[] = [],
62-
scannedUserExtensions: IScannedExtension[] = [],
63-
workspaceExtensions: IExtension[] = [],
64-
scannedDevelopedExtensions: IScannedExtension[] = [],
65-
hasErrors = false;
61+
let hasErrors = false;
6662

63+
let scannedSystemExtensions: IScannedExtension[] = [];
6764
if (result[0].status === 'fulfilled') {
6865
scannedSystemExtensions = result[0].value;
6966
} else {
7067
hasErrors = true;
7168
this._logService.error(`Error scanning system extensions:`, getErrorMessage(result[0].reason));
7269
}
7370

71+
let scannedUserExtensions: IScannedExtension[] = [];
7472
if (result[1].status === 'fulfilled') {
7573
scannedUserExtensions = result[1].value;
7674
} else {
7775
hasErrors = true;
7876
this._logService.error(`Error scanning user extensions:`, getErrorMessage(result[1].reason));
7977
}
8078

79+
let workspaceExtensions: IExtension[] = [];
8180
if (result[2].status === 'fulfilled') {
8281
workspaceExtensions = result[2].value;
8382
} else {
8483
hasErrors = true;
8584
this._logService.error(`Error scanning workspace extensions:`, getErrorMessage(result[2].reason));
8685
}
8786

87+
const scannedDevelopedExtensions: IScannedExtension[] = [];
8888
try {
89-
scannedDevelopedExtensions = await this._extensionsScannerService.scanExtensionsUnderDevelopment([...scannedSystemExtensions, ...scannedUserExtensions], { language });
89+
const allScannedDevelopedExtensions = await this._extensionsScannerService.scanExtensionsUnderDevelopment([...scannedSystemExtensions, ...scannedUserExtensions], { language, includeInvalid: true });
90+
const invalidExtensions: IScannedExtension[] = [];
91+
for (const extensionUnderDevelopment of allScannedDevelopedExtensions) {
92+
if (extensionUnderDevelopment.isValid) {
93+
scannedDevelopedExtensions.push(extensionUnderDevelopment);
94+
} else {
95+
invalidExtensions.push(extensionUnderDevelopment);
96+
}
97+
}
98+
if (invalidExtensions.length > 0) {
99+
this._notificationService.prompt(
100+
Severity.Warning,
101+
invalidExtensions.length === 1
102+
? localize('extensionUnderDevelopment.invalid', "Failed loading extension '{0}' under development because it is invalid: {1}", invalidExtensions[0].location.fsPath, invalidExtensions[0].validations[0][1])
103+
: localize('extensionsUnderDevelopment.invalid', "Failed loading extensions {0} under development because they are invalid: {1}", invalidExtensions.map(ext => `'${ext.location.fsPath}'`).join(', '), invalidExtensions.map(ext => `${ext.validations[0][1]}`).join(', ')),
104+
[]
105+
);
106+
}
90107
} catch (error) {
91108
this._logService.error(error);
92109
}

0 commit comments

Comments
 (0)