MCPcopy
hub / github.com/micro-editor/micro / doSetGlobalOptionNative

Function doSetGlobalOptionNative

internal/action/command.go:574–631  ·  view source on GitHub ↗
(option string, nativeValue any)

Source from the content-addressed store, hash-verified

572}
573
574func doSetGlobalOptionNative(option string, nativeValue any) error {
575 if reflect.DeepEqual(config.GlobalSettings[option], nativeValue) {
576 return nil
577 }
578
579 config.GlobalSettings[option] = nativeValue
580 config.ModifiedSettings[option] = true
581 delete(config.VolatileSettings, option)
582
583 if option == "colorscheme" {
584 // LoadSyntaxFiles()
585 config.InitColorscheme()
586 for _, b := range buffer.OpenBuffers {
587 b.UpdateRules()
588 }
589 } else if option == "infobar" || option == "keymenu" {
590 Tabs.Resize()
591 } else if option == "mouse" {
592 if !nativeValue.(bool) {
593 screen.Screen.DisableMouse()
594 } else {
595 screen.Screen.EnableMouse()
596 }
597 } else if option == "autosave" {
598 if nativeValue.(float64) > 0 {
599 config.SetAutoTime(nativeValue.(float64))
600 } else {
601 config.SetAutoTime(0)
602 }
603 } else if option == "paste" {
604 screen.Screen.SetPaste(nativeValue.(bool))
605 } else if option == "clipboard" {
606 m := clipboard.SetMethod(nativeValue.(string))
607 err := clipboard.Initialize(m)
608 if err != nil {
609 return err
610 }
611 } else {
612 for _, pl := range config.Plugins {
613 if option == pl.Name {
614 if nativeValue.(bool) && !pl.Loaded {
615 pl.Load()
616 _, err := pl.Call("init")
617 if err != nil && err != config.ErrNoSuchFunction {
618 screen.TermMessage(err)
619 }
620 } else if !nativeValue.(bool) && pl.Loaded {
621 _, err := pl.Call("deinit")
622 if err != nil && err != config.ErrNoSuchFunction {
623 screen.TermMessage(err)
624 }
625 }
626 }
627 }
628 }
629
630 return nil
631}

Callers 2

reloadRuntimeFunction · 0.85
SetGlobalOptionNativeFunction · 0.85

Calls 9

InitColorschemeFunction · 0.92
SetAutoTimeFunction · 0.92
SetMethodFunction · 0.92
InitializeFunction · 0.92
TermMessageFunction · 0.92
UpdateRulesMethod · 0.80
LoadMethod · 0.80
CallMethod · 0.80
ResizeMethod · 0.65

Tested by

no test coverage detected