summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/themes
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/themes')
-rw-r--r--packages/cli/src/ui/themes/theme-manager.ts18
1 files changed, 12 insertions, 6 deletions
diff --git a/packages/cli/src/ui/themes/theme-manager.ts b/packages/cli/src/ui/themes/theme-manager.ts
index 5a880705..4a8cc32c 100644
--- a/packages/cli/src/ui/themes/theme-manager.ts
+++ b/packages/cli/src/ui/themes/theme-manager.ts
@@ -19,8 +19,9 @@ export interface ThemeDisplay {
active: boolean;
}
+export const DEFAULT_THEME: Theme = VS2015;
+
class ThemeManager {
- private static readonly DEFAULT_THEME: Theme = VS2015;
private readonly availableThemes: Theme[];
private activeTheme: Theme;
@@ -35,7 +36,7 @@ class ThemeManager {
XCode,
ANSI,
];
- this.activeTheme = ThemeManager.DEFAULT_THEME;
+ this.activeTheme = DEFAULT_THEME;
}
/**
@@ -52,10 +53,8 @@ class ThemeManager {
* Sets the active theme.
* @param themeName The name of the theme to activate.
*/
- setActiveTheme(themeName: string): void {
- const foundTheme = this.availableThemes.find(
- (theme) => theme.name === themeName,
- );
+ setActiveTheme(themeName: string | undefined): void {
+ const foundTheme = this.findThemeByName(themeName);
if (foundTheme) {
this.activeTheme = foundTheme;
@@ -64,6 +63,13 @@ class ThemeManager {
}
}
+ findThemeByName(themeName: string | undefined): Theme | undefined {
+ if (!themeName) {
+ return DEFAULT_THEME;
+ }
+ return this.availableThemes.find((theme) => theme.name === themeName);
+ }
+
/**
* Returns the currently active theme object.
*/