]> git.lizzy.rs Git - micro.git/blobdiff - internal/config/settings.go
Fix v2 import path for go mod
[micro.git] / internal / config / settings.go
index f11443fe29eb5fa1bda9293bd30abe5a89161aa3..0c24987bb8fc965596dc103f292c194cf7c8d024 100644 (file)
@@ -12,7 +12,7 @@ import (
 
        "github.com/zyedidia/glob"
        "github.com/zyedidia/json5"
-       "github.com/zyedidia/micro/internal/util"
+       "github.com/zyedidia/micro/v2/internal/util"
        "golang.org/x/text/encoding/htmlindex"
 )
 
@@ -35,7 +35,7 @@ func init() {
 
 // Options with validators
 var optionValidators = map[string]optionValidator{
-       // "autosave":     validateNonNegativeValue,
+       "autosave":     validateNonNegativeValue,
        "tabsize":      validatePositiveValue,
        "scrollmargin": validateNonNegativeValue,
        "scrollspeed":  validateNonNegativeValue,
@@ -58,6 +58,18 @@ func ReadSettings() error {
                        if err != nil {
                                return errors.New("Error reading settings.json: " + err.Error())
                        }
+
+                       // check if autosave is a boolean and convert it to float if so
+                       if v, ok := parsedSettings["autosave"]; ok {
+                               s, ok := v.(bool)
+                               if ok {
+                                       if s {
+                                               parsedSettings["autosave"] = 8.0
+                                       } else {
+                                               parsedSettings["autosave"] = 0.0
+                                       }
+                               }
+                       }
                }
        }
        return nil
@@ -135,7 +147,7 @@ func RegisterCommonOptionPlug(pl string, name string, defaultvalue interface{})
        if v, ok := GlobalSettings[name]; !ok {
                defaultCommonSettings[name] = defaultvalue
                GlobalSettings[name] = defaultvalue
-               err := WriteSettings(filepath.Join(ConfigDir, "/settings.json"))
+               err := WriteSettings(filepath.Join(ConfigDir, "settings.json"))
                if err != nil {
                        return errors.New("Error writing settings.json file: " + err.Error())
                }
@@ -153,14 +165,14 @@ func RegisterGlobalOptionPlug(pl string, name string, defaultvalue interface{})
 // RegisterGlobalOption creates a new global-only option
 func RegisterGlobalOption(name string, defaultvalue interface{}) error {
        if v, ok := GlobalSettings[name]; !ok {
-               defaultGlobalSettings[name] = defaultvalue
+               DefaultGlobalOnlySettings[name] = defaultvalue
                GlobalSettings[name] = defaultvalue
                err := WriteSettings(filepath.Join(ConfigDir, "settings.json"))
                if err != nil {
                        return errors.New("Error writing settings.json file: " + err.Error())
                }
        } else {
-               defaultGlobalSettings[name] = v
+               DefaultGlobalOnlySettings[name] = v
        }
        return nil
 }
@@ -172,13 +184,15 @@ func GetGlobalOption(name string) interface{} {
 
 var defaultCommonSettings = map[string]interface{}{
        "autoindent":     true,
+       "autosu":         false,
        "backup":         true,
        "basename":       false,
        "colorcolumn":    float64(0),
        "cursorline":     true,
+       "diffgutter":     false,
        "encoding":       "utf-8",
-       "eofnewline":     false,
-       "fastdirty":      true,
+       "eofnewline":     true,
+       "fastdirty":      false,
        "fileformat":     "unix",
        "filetype":       "unknown",
        "ignorecase":     false,
@@ -231,8 +245,8 @@ func DefaultCommonSettings() map[string]interface{} {
 
 // a list of settings that should only be globally modified and their
 // default values
-var defaultGlobalSettings = map[string]interface{}{
-       // "autosave":    float64(0),
+var DefaultGlobalOnlySettings = map[string]interface{}{
+       "autosave":       float64(0),
        "colorscheme":    "default",
        "infobar":        true,
        "keymenu":        false,
@@ -242,6 +256,7 @@ var defaultGlobalSettings = map[string]interface{}{
        "sucmd":          "sudo",
        "pluginchannels": []string{"https://raw.githubusercontent.com/micro-editor/plugin-channel/master/channel.json"},
        "pluginrepos":    []string{},
+       "xterm":          false,
 }
 
 // a list of settings that should never be globally modified
@@ -257,7 +272,7 @@ func DefaultGlobalSettings() map[string]interface{} {
        for k, v := range defaultCommonSettings {
                globalsettings[k] = v
        }
-       for k, v := range defaultGlobalSettings {
+       for k, v := range DefaultGlobalOnlySettings {
                globalsettings[k] = v
        }
        return globalsettings
@@ -270,7 +285,7 @@ func DefaultAllSettings() map[string]interface{} {
        for k, v := range defaultCommonSettings {
                allsettings[k] = v
        }
-       for k, v := range defaultGlobalSettings {
+       for k, v := range DefaultGlobalOnlySettings {
                allsettings[k] = v
        }
        return allsettings