Skip to content

Commit f063803

Browse files
committed
Fix crash with file globbing matching micro option names
1 parent 42d0ddf commit f063803

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

internal/config/settings.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,17 @@ func validateParsedSettings() error {
186186
}
187187
}
188188
} else {
189-
if _, e := glob.Compile(k); e != nil {
190-
err = errors.New("Error with glob setting " + k + ": " + e.Error())
189+
tk := strings.TrimPrefix(k, "glob:")
190+
if _, e := glob.Compile(tk); e != nil {
191+
err = errors.New("Error with glob setting " + tk + ": " + e.Error())
191192
delete(parsedSettings, k)
192193
continue
193194
}
195+
if !strings.HasPrefix(k, "glob:") {
196+
delete(parsedSettings, k)
197+
k = "glob:" + k
198+
parsedSettings[k] = v
199+
}
194200
for k1, v1 := range v.(map[string]any) {
195201
if _, ok := defaults[k1]; ok {
196202
if e := verifySetting(k1, v1, defaults[k1]); e != nil {
@@ -309,8 +315,9 @@ func InitGlobalSettings() error {
309315
// Must be called after ReadSettings
310316
func UpdatePathGlobLocals(settings map[string]any, path string) {
311317
for k, v := range parsedSettings {
312-
if strings.HasPrefix(reflect.TypeOf(v).String(), "map") && !strings.HasPrefix(k, "ft:") {
313-
g, _ := glob.Compile(k)
318+
if strings.HasPrefix(reflect.TypeOf(v).String(), "map") && strings.HasPrefix(k, "glob:") {
319+
tk := strings.TrimPrefix(k, "glob:")
320+
g, _ := glob.Compile(tk)
314321
if g.MatchString(path) {
315322
for k1, v1 := range v.(map[string]any) {
316323
settings[k1] = v1

runtime/help/options.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -671,10 +671,10 @@ Or similarly you can match with globs:
671671

672672
```json
673673
{
674-
"*.go": {
674+
"glob:*.go": {
675675
"tabstospaces": false
676676
},
677-
"*.rb": {
677+
"glob:*.rb": {
678678
"tabsize": 2
679679
},
680680
"tabstospaces": true,

0 commit comments

Comments
 (0)