mirror of
https://github.com/zyedidia/micro.git
synced 2026-03-25 18:07:07 +09:00
action/command: Let reload really reload the settings.json
This commit is contained in:
@@ -357,10 +357,16 @@ func reloadRuntime(reloadPlugins bool) {
|
|||||||
err := config.ReadSettings()
|
err := config.ReadSettings()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
screen.TermMessage(err)
|
screen.TermMessage(err)
|
||||||
}
|
} else {
|
||||||
err = config.InitGlobalSettings()
|
parsedSettings := config.ParsedSettings()
|
||||||
if err != nil {
|
defaultSettings := config.DefaultAllSettings()
|
||||||
screen.TermMessage(err)
|
for k := range defaultSettings {
|
||||||
|
if _, ok := parsedSettings[k]; ok {
|
||||||
|
SetGlobalOptionNative(k, parsedSettings[k])
|
||||||
|
} else {
|
||||||
|
SetGlobalOptionNative(k, defaultSettings[k])
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if reloadPlugins {
|
if reloadPlugins {
|
||||||
@@ -393,6 +399,10 @@ func reloadRuntime(reloadPlugins bool) {
|
|||||||
screen.TermMessage(err)
|
screen.TermMessage(err)
|
||||||
}
|
}
|
||||||
for _, b := range buffer.OpenBuffers {
|
for _, b := range buffer.OpenBuffers {
|
||||||
|
config.InitLocalSettings(b.Settings, b.Path)
|
||||||
|
for k, v := range b.Settings {
|
||||||
|
b.SetOptionNative(k, v)
|
||||||
|
}
|
||||||
b.UpdateRules()
|
b.UpdateRules()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -154,10 +154,10 @@ var (
|
|||||||
func init() {
|
func init() {
|
||||||
ModifiedSettings = make(map[string]bool)
|
ModifiedSettings = make(map[string]bool)
|
||||||
VolatileSettings = make(map[string]bool)
|
VolatileSettings = make(map[string]bool)
|
||||||
parsedSettings = make(map[string]interface{})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadSettings() error {
|
func ReadSettings() error {
|
||||||
|
parsedSettings = make(map[string]interface{})
|
||||||
filename := filepath.Join(ConfigDir, "settings.json")
|
filename := filepath.Join(ConfigDir, "settings.json")
|
||||||
if _, e := os.Stat(filename); e == nil {
|
if _, e := os.Stat(filename); e == nil {
|
||||||
input, err := ioutil.ReadFile(filename)
|
input, err := ioutil.ReadFile(filename)
|
||||||
@@ -189,6 +189,14 @@ func ReadSettings() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ParsedSettings() map[string]interface{} {
|
||||||
|
s := make(map[string]interface{})
|
||||||
|
for k, v := range parsedSettings {
|
||||||
|
s[k] = v
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
func verifySetting(option string, value reflect.Type, def reflect.Type) bool {
|
func verifySetting(option string, value reflect.Type, def reflect.Type) bool {
|
||||||
var interfaceArr []interface{}
|
var interfaceArr []interface{}
|
||||||
switch option {
|
switch option {
|
||||||
|
|||||||
Reference in New Issue
Block a user