cnlh 5 lat temu
rodzic
commit
151a3f7b98
2 zmienionych plików z 32 dodań i 17 usunięć
  1. 21 14
      core/config.go
  2. 11 3
      core/struct.go

+ 21 - 14
core/config.go

@@ -1,27 +1,34 @@
+// Copyright 2014 nps Author. All Rights Reserved.
 package core
 
-// This structure is used to describe the plugin configuration item name and description.
+import "regexp"
+
+// this structure is used to describe the plugin configuration item name and description.
 type Config struct {
-	ConfigName  string
-	Description string
-	ConfigLevel ConfigLevel
+	ConfigName    string         // single configuration item name
+	ZhTitle       string         // single configuration item chinese title
+	EnTitle       string         // single configuration item english title
+	ZhDescription string         // single configuration item chinese description
+	EnDescription string         // single configuration item english description
+	LimitReg      *regexp.Regexp // regular expression to restrict input
+	ConfigLevel   ConfigLevel    // configuration sector
 }
 
+// multiple configuration collections for plugins
 type NpsConfigs struct {
-	configs []*Config
-}
-
-func NewNpsConfigs(name, des string, level ConfigLevel) *NpsConfigs {
-	c := &NpsConfigs{}
-	c.configs = make([]*Config, 0)
-	c.Add(name, des, level)
-	return c
+	ZhTitle       string    // chinese title for configuration collection
+	EnTitle       string    // chinese description of the configuration collection
+	EnDescription string    // english description of the configuration collection
+	ZhDescription string    // chinese description for english collection
+	configs       []*Config // all configurations
 }
 
-func (config *NpsConfigs) Add(name, des string, level ConfigLevel) {
-	config.configs = append(config.configs, &Config{ConfigName: name, Description: des, ConfigLevel: level})
+// insert one config into configs
+func (config *NpsConfigs) Add(cfg *Config) {
+	config.configs = append(config.configs, cfg)
 }
 
+// get all configs
 func (config *NpsConfigs) GetAll() []*Config {
 	return config.configs
 }

+ 11 - 3
core/struct.go

@@ -22,9 +22,17 @@ const (
 type ConfigLevel uint8
 
 const (
-	CONFIG_LEVEL_CLIENT ConfigLevel = iota
-	CONFIG_LEVEL_PLUGIN
-	CONFIG_LEVEL_GLOBAL
+	CONFIG_LEVEL_CLIENT ConfigLevel = iota // client-level configuration
+	CONFIG_LEVEL_PLUGIN                    // plugin level control
+	CONFIG_LEVEL_GLOBAL                    // global configuration
+)
+
+type ConfigInputType uint8
+
+const (
+	CONFIG_INPUT_TEXT     ConfigInputType = iota // show as single line input box
+	CONFIG_INPUT_SWITCH                          // show as switch
+	CONFIG_INPUT_TEXTAREA                        // show as a multi-line input box
 )
 
 var (