diff --git a/src/vs/workbench/services/themes/browser/workbenchThemeService.ts b/src/vs/workbench/services/themes/browser/workbenchThemeService.ts index 49764e33760..7c23c58f963 100644 --- a/src/vs/workbench/services/themes/browser/workbenchThemeService.ts +++ b/src/vs/workbench/services/themes/browser/workbenchThemeService.ts @@ -113,7 +113,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { this.currentFileIconTheme = FileIconThemeData.createUnloadedTheme(''); this.productIconThemeWatcher = new ThemeFileWatcher(fileService, environmentService, this.reloadCurrentProductIconTheme.bind(this)); - this.productIconThemeRegistry = new ThemeRegistry(extensionService, productIconThemesExtPoint, ProductIconThemeData.fromExtensionTheme, true, ProductIconThemeData.defaultTheme); + this.productIconThemeRegistry = new ThemeRegistry(extensionService, productIconThemesExtPoint, ProductIconThemeData.fromExtensionTheme, true, ProductIconThemeData.defaultTheme, true); this.onProductIconThemeChange = new Emitter(); this.currentProductIconTheme = ProductIconThemeData.createUnloadedTheme(''); diff --git a/src/vs/workbench/services/themes/common/themeExtensionPoints.ts b/src/vs/workbench/services/themes/common/themeExtensionPoints.ts index 53ff6442917..6e19728441f 100644 --- a/src/vs/workbench/services/themes/common/themeExtensionPoints.ts +++ b/src/vs/workbench/services/themes/common/themeExtensionPoints.ts @@ -10,7 +10,7 @@ import * as resources from 'vs/base/common/resources'; import { ExtensionMessageCollector, IExtensionPoint, ExtensionsRegistry } from 'vs/workbench/services/extensions/common/extensionsRegistry'; import { ExtensionData, IThemeExtensionPoint, VS_LIGHT_THEME, VS_DARK_THEME, VS_HC_THEME } from 'vs/workbench/services/themes/common/workbenchThemeService'; -import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; +import { IExtensionService, checkProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions'; import { Event, Emitter } from 'vs/base/common/event'; import { URI } from 'vs/base/common/uri'; @@ -128,7 +128,8 @@ export class ThemeRegistry { private readonly themesExtPoint: IExtensionPoint, private create: (theme: IThemeExtensionPoint, themeLocation: URI, extensionData: ExtensionData) => T, private idRequired = false, - private builtInTheme: T | undefined = undefined + private builtInTheme: T | undefined = undefined, + private isProposedApi = false ) { this.extensionThemes = []; this.initialize(); @@ -144,6 +145,10 @@ export class ThemeRegistry { } this.extensionThemes.length = 0; for (let ext of extensions) { + if (this.isProposedApi) { + checkProposedApiEnabled(ext.description); + return; + } let extensionData: ExtensionData = { extensionId: ext.description.identifier.value, extensionPublisher: ext.description.publisher,