mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-12 02:58:31 -05:00
84 lines
2.2 KiB
TypeScript
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;
|
|
}
|
|
}
|