Browse Source

refactor: couple unrelated fields

ayn2op 1 year ago
parent
commit
8f4848f5c2
1 changed files with 11 additions and 14 deletions
  1. 11 14
      internal/config/config.go

+ 11 - 14
internal/config/config.go

@@ -10,31 +10,28 @@ import (
 )
 
 type Config struct {
-	Mouse bool `toml:"mouse"`
+	Mouse         bool   `toml:"mouse"`
+	MessagesLimit uint8  `toml:"messages_limit"`
+	Editor        string `toml:"editor"`
 
 	Timestamps             bool   `toml:"timestamps"`
 	TimestampsBeforeAuthor bool   `toml:"timestamps_before_author"`
 	TimestampsFormat       string `toml:"timestamps_format"`
 
-	MessagesLimit uint8 `toml:"messages_limit"`
-
-	Editor string `toml:"editor"`
-
 	Keys  Keys  `toml:"keys"`
 	Theme Theme `toml:"theme"`
 }
 
-func DefaultConfig() Config {
-	return Config{
-		Mouse: true,
+func defaultConfig() *Config {
+	return &Config{
+		Mouse:         true,
+		MessagesLimit: 50,
+		Editor:        "default",
 
 		Timestamps:             false,
 		TimestampsBeforeAuthor: false,
 		TimestampsFormat:       time.Kitchen,
 
-		MessagesLimit: 50,
-		Editor:        "default",
-
 		Keys:  defaultKeys(),
 		Theme: defaultTheme(),
 	}
@@ -42,11 +39,10 @@ func DefaultConfig() Config {
 
 // Reads the configuration file and parses it.
 func Load() (*Config, error) {
-	cfg := DefaultConfig()
 	path := filepath.Join(constants.ConfigDirPath, "config.toml")
 	f, err := os.Open(path)
 	if os.IsNotExist(err) {
-		return &cfg, nil
+		return defaultConfig(), nil
 	}
 
 	if err != nil {
@@ -54,9 +50,10 @@ func Load() (*Config, error) {
 	}
 	defer f.Close()
 
+	var cfg *Config
 	if _, err := toml.NewDecoder(f).Decode(&cfg); err != nil {
 		return nil, err
 	}
 
-	return &cfg, nil
+	return cfg, nil
 }