diff --git a/src/utils/pattern.spec.ts b/src/utils/pattern.spec.ts index 02cde456..97c2d802 100644 --- a/src/utils/pattern.spec.ts +++ b/src/utils/pattern.spec.ts @@ -431,6 +431,14 @@ describe('Utils → Pattern', () => { assert.deepStrictEqual(actual, expected); }); + + it('should keep escaping after expansion', () => { + const expected = ['foo@(\\\\)/**/*.a', 'foo@(\\\\)/**/*.b']; + + const actual = util.expandBraceExpansion('foo@(\\\\)/**/{*.a,*.b}'); + + assert.deepStrictEqual(actual, expected); + }); }); describe('.getPatternParts', () => { diff --git a/src/utils/pattern.ts b/src/utils/pattern.ts index ffa6df43..9d789e79 100644 --- a/src/utils/pattern.ts +++ b/src/utils/pattern.ts @@ -156,7 +156,7 @@ export function expandPatternsWithBraceExpansion(patterns: Pattern[]): Pattern[] } export function expandBraceExpansion(pattern: Pattern): Pattern[] { - const patterns = micromatch.braces(pattern, { expand: true, nodupes: true }); + const patterns = micromatch.braces(pattern, { expand: true, nodupes: true, keepEscaping: true }); /** * Sort the patterns by length so that the same depth patterns are processed side by side.