diff --git a/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts b/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts index 0f626331d1d..4241abb9f91 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts @@ -120,43 +120,46 @@ export function getMaliciousExtensionsSet(report: IReportedExtension[]): Set(); +[ + 'vscode.extension-editing', + 'vscode.configuration-editing', + 'vscode.search-rg', + 'vscode.css-language-features', + 'vscode.git', + 'vscode.grunt', + 'vscode.gulp', + 'vscode.html-language-features', + 'vscode.json-language-features', + 'vscode.markdown-language-features', + 'vscode.npm', + 'vscode.php-language-features', + 'vscode.typescript-language-features', + 'ms-vscode.node-debug', + 'ms-vscode.node-debug2', + 'ms-python.python', + 'eg2.tslint', + 'dbaeumer.vscode-eslint', + 'eamodio.gitlens' +].forEach(extension => workspaceExtensions.add(extension)); + export function isWorkspaceExtension(manifest: IExtensionManifest, configurationService: IConfigurationService): boolean { const extensionId = getGalleryExtensionId(manifest.publisher, manifest.name); - const workspaceExtensions = configurationService.getValue('_workbench.workspaceExtensions') || []; - if (workspaceExtensions.length) { - if (workspaceExtensions.indexOf(extensionId) !== -1) { + const configuredWorkspaceExtensions = configurationService.getValue('_workbench.workspaceExtensions') || []; + if (configuredWorkspaceExtensions.length) { + if (configuredWorkspaceExtensions.indexOf(extensionId) !== -1) { return true; } - if (workspaceExtensions.indexOf(`-${extensionId}`) !== -1) { + if (configuredWorkspaceExtensions.indexOf(`-${extensionId}`) !== -1) { return false; } } if (manifest.main) { - if ((manifest.keywords || []).indexOf('capability_fs') !== -1) { + if ((manifest.categories || []).indexOf('Workspace Extension') !== -1) { return true; } - return [ - 'vscode.extension-editing', - 'vscode.configuration-editing', - 'vscode.search-rg', - 'vscode.css-language-features', - 'vscode.git', - 'vscode.grunt', - 'vscode.gulp', - 'vscode.html-language-features', - 'vscode.json-language-features', - 'vscode.markdown-language-features', - 'vscode.npm', - 'vscode.php-language-features', - 'vscode.typescript-language-features', - 'ms-vscode.node-debug', - 'ms-vscode.node-debug2', - 'ms-python.python', - 'eg2.tslint', - 'dbaeumer.vscode-eslint', - 'eamodio.gitlens' - ].indexOf(extensionId) !== -1; + return workspaceExtensions.has(extensionId); } return false; } \ No newline at end of file