Added theme switching

This commit is contained in:
2025-06-08 21:29:48 +08:00
parent 61f293ce6f
commit d5a0b07f2a
13 changed files with 806 additions and 93 deletions

View File

@@ -26,6 +26,36 @@ const (
LangEnUS LanguageType = "en-US"
)
// ThemeType 主题类型定义
type ThemeType string
const (
// ThemeDefaultDark 默认深色主题
ThemeDefaultDark ThemeType = "default-dark"
// ThemeDracula Dracula主题
ThemeDracula ThemeType = "dracula"
// ThemeAura Aura主题
ThemeAura ThemeType = "aura"
// ThemeGithubDark GitHub深色主题
ThemeGithubDark ThemeType = "github-dark"
// ThemeGithubLight GitHub浅色主题
ThemeGithubLight ThemeType = "github-light"
// ThemeMaterialDark Material深色主题
ThemeMaterialDark ThemeType = "material-dark"
// ThemeMaterialLight Material浅色主题
ThemeMaterialLight ThemeType = "material-light"
// ThemeSolarizedDark Solarized深色主题
ThemeSolarizedDark ThemeType = "solarized-dark"
// ThemeSolarizedLight Solarized浅色主题
ThemeSolarizedLight ThemeType = "solarized-light"
// ThemeTokyoNight Tokyo Night主题
ThemeTokyoNight ThemeType = "tokyo-night"
// ThemeTokyoNightStorm Tokyo Night Storm主题
ThemeTokyoNightStorm ThemeType = "tokyo-night-storm"
// ThemeTokyoNightDay Tokyo Night Day主题
ThemeTokyoNightDay ThemeType = "tokyo-night-day"
)
// GeneralConfig 通用设置配置
type GeneralConfig struct {
AlwaysOnTop bool `json:"alwaysOnTop" yaml:"always_on_top" mapstructure:"always_on_top"` // 窗口是否置顶
@@ -65,6 +95,7 @@ type EditingConfig struct {
// AppearanceConfig 外观设置配置
type AppearanceConfig struct {
Language LanguageType `json:"language" yaml:"language" mapstructure:"language"` // 界面语言
Theme ThemeType `json:"theme" yaml:"theme" mapstructure:"theme"` // 编辑器主题
}
// KeyBindingsConfig 快捷键设置配置
@@ -132,6 +163,7 @@ func NewDefaultAppConfig() *AppConfig {
},
Appearance: AppearanceConfig{
Language: LangZhCN,
Theme: ThemeDefaultDark, // 默认使用深色主题
},
KeyBindings: KeyBindingsConfig{
// 预留给未来的快捷键配置

View File

@@ -125,6 +125,7 @@ func setDefaults(v *viper.Viper) {
// 外观设置默认值
v.SetDefault("appearance.language", defaultConfig.Appearance.Language)
v.SetDefault("appearance.theme", defaultConfig.Appearance.Theme)
// 元数据默认值
v.SetDefault("metadata.version", defaultConfig.Metadata.Version)
@@ -258,6 +259,7 @@ func (cs *ConfigService) ResetConfig() {
// 外观设置 - 批量设置到viper中
cs.viper.Set("appearance.language", defaultConfig.Appearance.Language)
cs.viper.Set("appearance.theme", defaultConfig.Appearance.Theme)
// 元数据 - 批量设置到viper中
cs.viper.Set("metadata.version", defaultConfig.Metadata.Version)