diff --git a/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts b/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts index ec8c491949c360611e7460ea38fa1508901f7cb6..0b62ad64ee45923ac90b33b9518f846df1ae3f43 100644 --- a/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts @@ -113,7 +113,8 @@ export class ChokidarWatcherService implements IWatcherService { }; // if there's only one request, use the built-in ignore-filterering - if (requests.length === 1) { + const isSingleFolder = requests.length === 1; + if (isSingleFolder) { watcherOpts.ignored = requests[0].ignored; } @@ -194,8 +195,12 @@ export class ChokidarWatcherService implements IWatcherService { return; } - if (isIgnored(path, watcher.requests)) { - return; + // if there's more than one request we need to do + // extra filtering due to potentially overlapping roots + if (!isSingleFolder) { + if (isIgnored(path, watcher.requests)) { + return; + } } let event = { type: eventType, path };