feat: generate Conjure color palette
This commit is contained in:
@@ -40,6 +40,9 @@ func applyApps(zedSource string) error {
|
||||
if err := writeHerdrTheme(colors, ui, syntax); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := writeConjureTheme(colors, ui); err != nil {
|
||||
return err
|
||||
}
|
||||
return writeZedTheme(zedSource)
|
||||
}
|
||||
|
||||
@@ -186,6 +189,29 @@ func semanticTheme(colors, ui, syntax map[string]string) (map[string]string, map
|
||||
return omp, herdr
|
||||
}
|
||||
|
||||
func writeConjureTheme(colors, ui map[string]string) error {
|
||||
mapping := map[string]string{
|
||||
"background": pick(ui, "global.background.normal", colors, "base00"),
|
||||
"text": pick(ui, "global.foreground.normal", colors, "base05"),
|
||||
"secondaryText": pick(ui, "global.foreground.dark", colors, "base04"),
|
||||
"accent": pick(ui, "accent.normal", colors, "base0D"),
|
||||
"glow": pick(ui, "status.error", colors, "base08"),
|
||||
"keyBackground": pick(ui, "chrome.background.normal", colors, "base01"),
|
||||
"error": pick(ui, "status.error", colors, "base08"),
|
||||
}
|
||||
validColor := regexp.MustCompile(`^#[0-9a-fA-F]{6}$`)
|
||||
for key, value := range mapping {
|
||||
if !validColor.MatchString(value) {
|
||||
return fmt.Errorf("invalid Conjure color %s: %q", key, value)
|
||||
}
|
||||
}
|
||||
configHome := os.Getenv("XDG_CONFIG_HOME")
|
||||
if !filepath.IsAbs(configHome) {
|
||||
configHome = filepath.Join(homeDir(), ".config")
|
||||
}
|
||||
return writeJSON(filepath.Join(configHome, "conjure", "theme.json"), map[string]any{"colors": mapping})
|
||||
}
|
||||
|
||||
func writeOMPTheme(colors, ui, syntax map[string]string) error {
|
||||
semantic, _ := semanticTheme(colors, ui, syntax)
|
||||
theme := map[string]any{
|
||||
|
||||
Reference in New Issue
Block a user