@@ -186,11 +186,19 @@ 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+ // Support non-prefixed glob settings but internally convert
197+ // them to prefixed ones for simplicity.
198+ delete (parsedSettings , k )
199+ k = "glob:" + k
200+ parsedSettings [k ] = v
201+ }
194202 for k1 , v1 := range v .(map [string ]any ) {
195203 if _ , ok := defaults [k1 ]; ok {
196204 if e := verifySetting (k1 , v1 , defaults [k1 ]); e != nil {
@@ -312,8 +320,9 @@ func InitGlobalSettings() error {
312320// Must be called after ReadSettings
313321func UpdatePathGlobLocals (settings map [string ]any , path string ) {
314322 for k , v := range parsedSettings {
315- if strings .HasPrefix (reflect .TypeOf (v ).String (), "map" ) && ! strings .HasPrefix (k , "ft:" ) {
316- g , _ := glob .Compile (k )
323+ if strings .HasPrefix (reflect .TypeOf (v ).String (), "map" ) && strings .HasPrefix (k , "glob:" ) {
324+ tk := strings .TrimPrefix (k , "glob:" )
325+ g , _ := glob .Compile (tk )
317326 if g .MatchString (path ) {
318327 for k1 , v1 := range v .(map [string ]any ) {
319328 settings [k1 ] = v1
0 commit comments