mirror of
https://github.com/zyedidia/micro.git
synced 2026-03-25 18:07:07 +09:00
settings: Add glob: as prefix for file globbing maps
This gives the advantage to differentiate internal options from user defined file globs with the same name.
This commit is contained in:
@@ -186,11 +186,19 @@ func validateParsedSettings() error {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if _, e := glob.Compile(k); e != nil {
|
||||
err = errors.New("Error with glob setting " + k + ": " + e.Error())
|
||||
tk := strings.TrimPrefix(k, "glob:")
|
||||
if _, e := glob.Compile(tk); e != nil {
|
||||
err = errors.New("Error with glob setting " + tk + ": " + e.Error())
|
||||
delete(parsedSettings, k)
|
||||
continue
|
||||
}
|
||||
if !strings.HasPrefix(k, "glob:") {
|
||||
// Support non-prefixed glob settings but internally convert
|
||||
// them to prefixed ones for simplicity.
|
||||
delete(parsedSettings, k)
|
||||
k = "glob:" + k
|
||||
parsedSettings[k] = v
|
||||
}
|
||||
for k1, v1 := range v.(map[string]any) {
|
||||
if _, ok := defaults[k1]; ok {
|
||||
if e := verifySetting(k1, v1, defaults[k1]); e != nil {
|
||||
@@ -312,8 +320,9 @@ func InitGlobalSettings() error {
|
||||
// Must be called after ReadSettings
|
||||
func UpdatePathGlobLocals(settings map[string]any, path string) {
|
||||
for k, v := range parsedSettings {
|
||||
if strings.HasPrefix(reflect.TypeOf(v).String(), "map") && !strings.HasPrefix(k, "ft:") {
|
||||
g, _ := glob.Compile(k)
|
||||
if strings.HasPrefix(reflect.TypeOf(v).String(), "map") && strings.HasPrefix(k, "glob:") {
|
||||
tk := strings.TrimPrefix(k, "glob:")
|
||||
g, _ := glob.Compile(tk)
|
||||
if g.MatchString(path) {
|
||||
for k1, v1 := range v.(map[string]any) {
|
||||
settings[k1] = v1
|
||||
|
||||
Reference in New Issue
Block a user