diff --git a/internal/config/colorscheme.go b/internal/config/colorscheme.go index 5376c845..1058ab52 100644 --- a/internal/config/colorscheme.go +++ b/internal/config/colorscheme.go @@ -55,6 +55,14 @@ func InitColorscheme() error { c, err := LoadDefaultColorscheme() if err == nil { Colorscheme = c + } else { + // The colorscheme setting seems broken (maybe because we have not validated + // it earlier, see comment in verifySetting()). So reset it to the default + // colorscheme and try again. + GlobalSettings["colorscheme"] = DefaultGlobalOnlySettings["colorscheme"] + if c, err2 := LoadDefaultColorscheme(); err2 == nil { + Colorscheme = c + } } return err diff --git a/internal/config/settings.go b/internal/config/settings.go index 14e5f18b..895d9db5 100644 --- a/internal/config/settings.go +++ b/internal/config/settings.go @@ -270,6 +270,12 @@ func verifySetting(option string, value interface{}, def interface{}) error { return fmt.Errorf("Error: setting '%s' has incorrect type (%s), using default value: %v (%s)", option, valType, def, defType) } + if option == "colorscheme" { + // Plugins are not initialized yet, so do not verify if the colorscheme + // exists yet, since the colorscheme may be added by a plugin later. + return nil + } + if err := OptionIsValid(option, value); err != nil { return err }