Have go plugin create its own options
This commit is contained in:
parent
05e2886dca
commit
908bcb22ae
4 changed files with 27 additions and 18 deletions
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -195,20 +195,7 @@ Here are the options that you can set:
|
|||
|
||||
default value: `on`
|
||||
|
||||
* `gofmt`: Run `gofmt` whenever the file is saved (this only applies to `.go`
|
||||
files)
|
||||
|
||||
default value: `off`
|
||||
|
||||
* `goimports`: run `goimports` whenever the file is saved (this only applies
|
||||
to `.go` files)
|
||||
|
||||
default value: `off`
|
||||
|
||||
Any option you set in the editor will be saved to the file
|
||||
~/.config/micro/settings.json so, in effect, your configuration file will be
|
||||
created for you. If you'd like to take your configuration with you to another
|
||||
machine, simply copy the settings.json to the other machine.
|
||||
|
||||
In the future, the `gofmt` and `goimports` will be refactored using a plugin
|
||||
system. However, currently they make it easier to program micro in micro.
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
if GetOption("goimports") == nil then
|
||||
AddOption("goimports", false)
|
||||
end
|
||||
if GetOption("gofmt") == nil then
|
||||
AddOption("gofmt", true)
|
||||
end
|
||||
|
||||
function go_onSave()
|
||||
if view.Buf.Filetype == "Go" then
|
||||
if settings.GoImports then
|
||||
if GetOption("goimports") then
|
||||
go_goimports()
|
||||
elseif settings.GoFmt then
|
||||
elseif GetOption("gofmt") then
|
||||
go_gofmt()
|
||||
end
|
||||
go_build()
|
||||
|
|
Loading…
Reference in a new issue