Have go plugin create its own options

This commit is contained in:
Zachary Yedidia
2016-04-30 12:13:21 -04:00
parent 05e2886dca
commit 908bcb22ae
4 changed files with 27 additions and 18 deletions

View File

@@ -195,7 +195,6 @@ func main() {
LoadSyntaxFiles()
// Load the help files
LoadHelp()
LoadPlugins()
buf := NewBuffer(string(input), filename)
@@ -219,6 +218,10 @@ func main() {
L.SetGlobal("view", luar.New(L, view))
L.SetGlobal("settings", luar.New(L, &settings))
L.SetGlobal("messenger", luar.New(L, messenger))
L.SetGlobal("GetOption", luar.New(L, GetOption))
L.SetGlobal("AddOption", luar.New(L, AddOption))
LoadPlugins()
for {
// Display everything

View File

@@ -55,6 +55,20 @@ func WriteSettings(filename string) error {
return err
}
// AddOption creates a new option. This is meant to be called by plugins to add options.
func AddOption(name string, value interface{}) {
settings[name] = value
err := WriteSettings(configDir + "/settings.json")
if err != nil {
TermMessage("Error writing settings.json file: " + err.Error())
}
}
// GetOption returns the specified option. This is meant to be called by plugins to add options.
func GetOption(name string) interface{} {
return settings[name]
}
// DefaultSettings returns the default settings for micro
func DefaultSettings() map[string]interface{} {
return map[string]interface{}{
@@ -64,8 +78,6 @@ func DefaultSettings() map[string]interface{} {
"syntax": true,
"tabsToSpaces": false,
"ruler": true,
"gofmt": false,
"goimports": false,
}
}