From 6e81c92e9b20f167d285e92bdfcb221dcdda92ab Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 8 Aug 2016 11:31:02 +0200 Subject: [PATCH] [glob] {**/package.json,**/project.json} matches too much (fixes #9917) --- src/vs/base/common/glob.ts | 8 ++++---- src/vs/base/test/common/glob.test.ts | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) 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 () {