Use Workspace Extension category

This commit is contained in:
Sandeep Somavarapu
2018-08-23 16:30:26 +02:00
parent 95e4df2680
commit c051db5343
@@ -120,43 +120,46 @@ export function getMaliciousExtensionsSet(report: IReportedExtension[]): Set<str
return result;
}
const workspaceExtensions = new Set<string>();
[
'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<string[]>('_workbench.workspaceExtensions') || [];
if (workspaceExtensions.length) {
if (workspaceExtensions.indexOf(extensionId) !== -1) {
const configuredWorkspaceExtensions = configurationService.getValue<string[]>('_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;
}