✨ Added theme switching
This commit is contained in:
@@ -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{
|
||||
// 预留给未来的快捷键配置
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user