@@ -630,7 +630,7 @@ func doSetGlobalOptionNative(option string, nativeValue any) error {
630630 return nil
631631}
632632
633- func SetGlobalOptionNative (option string , nativeValue any ) error {
633+ func SetGlobalOptionNative (option string , nativeValue any , writeToFile bool ) error {
634634 if err := config .OptionIsValid (option , nativeValue ); err != nil {
635635 return err
636636 }
@@ -653,6 +653,10 @@ func SetGlobalOptionNative(option string, nativeValue any) error {
653653 delete (b .LocalSettings , option )
654654 }
655655
656+ if ! writeToFile {
657+ return nil
658+ }
659+
656660 err := config .WriteSettings (filepath .Join (config .ConfigDir , "settings.json" ))
657661 if err != nil {
658662 if errors .Is (err , util .ErrOverwrite ) {
@@ -665,7 +669,7 @@ func SetGlobalOptionNative(option string, nativeValue any) error {
665669 return nil
666670}
667671
668- func SetGlobalOption (option , value string ) error {
672+ func SetGlobalOption (option , value string , writeToFile bool ) error {
669673 if _ , ok := config .GlobalSettings [option ]; ! ok {
670674 return config .ErrInvalidOption
671675 }
@@ -675,7 +679,15 @@ func SetGlobalOption(option, value string) error {
675679 return err
676680 }
677681
678- return SetGlobalOptionNative (option , nativeValue )
682+ return SetGlobalOptionNative (option , nativeValue , writeToFile )
683+ }
684+
685+ func SetGlobalOptionNativePlug (option string , nativeValue any ) error {
686+ return SetGlobalOptionNative (option , nativeValue , false )
687+ }
688+
689+ func SetGlobalOptionPlug (option , value string ) error {
690+ return SetGlobalOption (option , value , false )
679691}
680692
681693// ResetCmd resets a setting to its default value
@@ -689,7 +701,7 @@ func (h *BufPane) ResetCmd(args []string) {
689701 defaults := config .DefaultAllSettings ()
690702
691703 if _ , ok := defaults [option ]; ok {
692- SetGlobalOptionNative (option , defaults [option ])
704+ SetGlobalOptionNative (option , defaults [option ], true )
693705 return
694706 }
695707 InfoBar .Error (config .ErrInvalidOption )
@@ -705,7 +717,7 @@ func (h *BufPane) SetCmd(args []string) {
705717 option := args [0 ]
706718 value := args [1 ]
707719
708- err := SetGlobalOption (option , value )
720+ err := SetGlobalOption (option , value , true )
709721 if err == config .ErrInvalidOption {
710722 err := h .Buf .SetOption (option , value )
711723 if err != nil {
@@ -761,7 +773,7 @@ func (h *BufPane) toggleOption(option string, local bool) error {
761773 return err
762774 }
763775 } else {
764- if err := SetGlobalOptionNative (option , newVal ); err != nil {
776+ if err := SetGlobalOptionNative (option , newVal , true ); err != nil {
765777 return err
766778 }
767779 }
0 commit comments