@@ -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 {
@@ -256,6 +264,9 @@ func ReadSettings() error {
256264func ParsedSettings () map [string ]any {
257265 s := make (map [string ]any )
258266 for k , v := range parsedSettings {
267+ if strings .HasPrefix (reflect .TypeOf (v ).String (), "map" ) {
268+ continue
269+ }
259270 s [k ] = v
260271 }
261272 return s
@@ -309,8 +320,9 @@ func InitGlobalSettings() error {
309320// Must be called after ReadSettings
310321func UpdatePathGlobLocals (settings map [string ]any , path string ) {
311322 for k , v := range parsedSettings {
312- if strings .HasPrefix (reflect .TypeOf (v ).String (), "map" ) && ! strings .HasPrefix (k , "ft:" ) {
313- 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 )
314326 if g .MatchString (path ) {
315327 for k1 , v1 := range v .(map [string ]any ) {
316328 settings [k1 ] = v1
0 commit comments