X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=internal%2Fconfig%2Fsettings.go;h=0c24987bb8fc965596dc103f292c194cf7c8d024;hb=eff89a98a7fb16afc920cd8d26a80061378f5f46;hp=f11443fe29eb5fa1bda9293bd30abe5a89161aa3;hpb=31936358c16452b6cadb834fef1aed4a8241a453;p=micro.git diff --git a/internal/config/settings.go b/internal/config/settings.go index f11443fe..0c24987b 100644 --- a/internal/config/settings.go +++ b/internal/config/settings.go @@ -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