提交 12bbfe96 编写于 作者: S Sandeep Somavarapu

explore classifying extensions

上级 1ce79806
......@@ -112,6 +112,8 @@ export interface IExtensionContributions {
remoteAuthorityResolvers?: IRemoteAuthorityResolver[];
}
export type ExtensionKind = 'ui' | 'workspace';
export interface IExtensionManifest {
name: string;
publisher: string;
......@@ -126,6 +128,7 @@ export interface IExtensionManifest {
activationEvents?: string[];
extensionDependencies?: string[];
extensionPack?: string[];
extensionKind?: ExtensionKind;
contributes?: IExtensionContributions;
repository?: {
url: string;
......
......@@ -3,6 +3,31 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { IExtensionManifest } from 'vs/platform/extensionManagement/common/extensionManagement';
import { getGalleryExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
export const MANIFEST_CACHE_FOLDER = 'CachedExtensions';
export const USER_MANIFEST_CACHE_FILE = 'user';
export const BUILTIN_MANIFEST_CACHE_FILE = 'builtin';
const uiExtensions = new Set<string>();
uiExtensions.add('msjsdiag.debugger-for-chrome');
export function isUIExtension(manifest: IExtensionManifest, configurationService: IConfigurationService): boolean {
const extensionId = getGalleryExtensionId(manifest.publisher, manifest.name);
const configuredUIExtensions = configurationService.getValue<string[]>('_workbench.uiExtensions') || [];
if (configuredUIExtensions.length) {
if (configuredUIExtensions.indexOf(extensionId) !== -1) {
return true;
}
if (configuredUIExtensions.indexOf(`-${extensionId}`) !== -1) {
return false;
}
}
switch (manifest.extensionKind) {
case 'ui': return true;
case 'workspace': return false;
default: return uiExtensions.has(extensionId) || !manifest.main;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册