Skip to content

Commit da02f83

Browse files
authored
Merge pull request zyedidia#3761 from dmaluka/colorscheme-plugins-regression-fix
Fix non-working colorscheme plugins
2 parents 4db233a + e923640 commit da02f83

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

cmd/micro/micro.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -374,11 +374,6 @@ func main() {
374374
action.InitBindings()
375375
action.InitCommands()
376376

377-
err = config.InitColorscheme()
378-
if err != nil {
379-
screen.TermMessage(err)
380-
}
381-
382377
err = config.RunPluginFn("preinit")
383378
if err != nil {
384379
screen.TermMessage(err)
@@ -407,6 +402,11 @@ func main() {
407402
screen.TermMessage(err)
408403
}
409404

405+
err = config.InitColorscheme()
406+
if err != nil {
407+
screen.TermMessage(err)
408+
}
409+
410410
if clipErr != nil {
411411
log.Println(clipErr, " or change 'clipboard' option")
412412
}

internal/config/colorscheme.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ func InitColorscheme() error {
5555
c, err := LoadDefaultColorscheme()
5656
if err == nil {
5757
Colorscheme = c
58+
} else {
59+
// The colorscheme setting seems broken (maybe because we have not validated
60+
// it earlier, see comment in verifySetting()). So reset it to the default
61+
// colorscheme and try again.
62+
GlobalSettings["colorscheme"] = DefaultGlobalOnlySettings["colorscheme"]
63+
if c, err2 := LoadDefaultColorscheme(); err2 == nil {
64+
Colorscheme = c
65+
}
5866
}
5967

6068
return err

internal/config/settings.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,12 @@ func verifySetting(option string, value interface{}, def interface{}) error {
273273
return fmt.Errorf("Error: setting '%s' has incorrect type (%s), using default value: %v (%s)", option, valType, def, defType)
274274
}
275275

276+
if option == "colorscheme" {
277+
// Plugins are not initialized yet, so do not verify if the colorscheme
278+
// exists yet, since the colorscheme may be added by a plugin later.
279+
return nil
280+
}
281+
276282
if err := OptionIsValid(option, value); err != nil {
277283
return err
278284
}

0 commit comments

Comments
 (0)