Files
azuredatastudio/src/vs/platform/theme/test/common/testThemeService.ts

84 lines
2.2 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Event, Emitter } from 'vs/base/common/event';
import { IThemeService, IColorTheme, DARK, IFileIconTheme, ITokenStyle } from 'vs/platform/theme/common/themeService';
import { Color } from 'vs/base/common/color';
export class TestColorTheme implements IColorTheme {
public readonly label = 'test';
constructor(private colors: { [id: string]: string; } = {}, public type = DARK) {
}
getColor(color: string, useDefault?: boolean): Color | undefined {
let value = this.colors[color];
if (value) {
return Color.fromHex(value);
}
return undefined;
}
defines(color: string): boolean {
throw new Error('Method not implemented.');
}
getTokenStyleMetadata(type: string, modifiers: string[], modelLanguage: string): ITokenStyle | undefined {
return undefined;
}
readonly semanticHighlighting = false;
get tokenColorMap(): string[] {
return [];
}
}
export class TestFileIconTheme implements IFileIconTheme {
hasFileIcons = false;
hasFolderIcons = false;
hidesExplorerArrows = false;
}
export class TestThemeService implements IThemeService {
_serviceBrand: undefined;
_colorTheme: IColorTheme;
_fileIconTheme: IFileIconTheme;
_onThemeChange = new Emitter<IColorTheme>();
_onFileIconThemeChange = new Emitter<IFileIconTheme>();
constructor(theme = new TestColorTheme(), iconTheme = new TestFileIconTheme()) {
this._colorTheme = theme;
this._fileIconTheme = iconTheme;
}
getColorTheme(): IColorTheme {
return this._colorTheme;
}
setTheme(theme: IColorTheme) {
this._colorTheme = theme;
this.fireThemeChange();
}
fireThemeChange() {
this._onThemeChange.fire(this._colorTheme);
}
public get onDidColorThemeChange(): Event<IColorTheme> {
return this._onThemeChange.event;
}
getFileIconTheme(): IFileIconTheme {
return this._fileIconTheme;
}
public get onDidFileIconThemeChange(): Event<IFileIconTheme> {
return this._onFileIconThemeChange.event;
}
}