diff --git a/src/vs/base/common/glob.ts b/src/vs/base/common/glob.ts index ba810ac8624..922b10c545d 100644 --- a/src/vs/base/common/glob.ts +++ b/src/vs/base/common/glob.ts @@ -207,14 +207,14 @@ function parseRegExp(pattern: string): string { } // regexes to check for trival glob patterns that just check for String#endsWith -const T1 = /^\*\*\/\*\.[\w\.-]+$/; // **/*.something -const T2 = /^\*\*\/[\w\.-]+$/; // **/something -const T3 = /^{\*\*\/\*\.[\w\.-]+(,\*\*\/\*\.[\w\.-]+)*}$/; // {**/*.something,**/*.else} +const T1 = /^\*\*\/\*\.[\w\.-]+$/; // **/*.something +const T2 = /^\*\*\/[\w\.-]+$/; // **/something +const T3 = /^{\*\*\/[\*\.]?[\w\.-]+(,\*\*\/[\*\.]?[\w\.-]+)*}$/; // {**/*.something,**/*.else} or {**/package.json,**/project.json} enum Trivia { T1, // **/*.something T2, // **/something - T3 // {**/*.something,**/*.else} + T3, // {**/*.something,**/*.else} or {**/package.json,**/project.json} } interface IParsedPattern { diff --git a/src/vs/base/test/common/glob.test.ts b/src/vs/base/test/common/glob.test.ts index 66fd77b8305..4cb94369786 100644 --- a/src/vs/base/test/common/glob.test.ts +++ b/src/vs/base/test/common/glob.test.ts @@ -291,6 +291,12 @@ suite('Glob', () => { assert(!glob.match(p, 'some/test/tempting')); assert(!glob.match(p, 'some\\test\\tempting')); assert(!glob.match(p, 'C:\\\\some\\test\\tempting')); + + p = '{**/package.json,**/project.json}'; + assert(glob.match(p, 'package.json')); + assert(glob.match(p, '/package.json')); + assert(!glob.match(p, 'xpackage.json')); + assert(!glob.match(p, '/xpackage.json')); }); test('brace expansion', function () {