diff --git a/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts b/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts index 218078a996d1a4c1263866b458c12eb1d4a48b2e..c22b90f40b9a1a553495f1715cf8c2015207b25c 100644 --- a/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts @@ -6,12 +6,14 @@ import * as glob from 'vs/base/common/glob'; import * as paths from 'vs/base/common/paths'; import * as path from 'path'; +import * as platform from "vs/base/common/platform"; import * as watcher from 'vs/workbench/services/files/node/watcher/common'; import * as nsfw from 'nsfw'; import { IWatcherService, IWatcherRequest } from 'vs/workbench/services/files/node/watcher/nsfw/watcher'; import { TPromise, ProgressCallback, TValueCallback } from 'vs/base/common/winjs.base'; import { ThrottledDelayer } from 'vs/base/common/async'; import { FileChangeType } from 'vs/platform/files/common/files'; +import { normalizeNFC } from "vs/base/common/strings"; const nsfwActionToRawChangeType: { [key: number]: number } = []; nsfwActionToRawChangeType[nsfw.actions.CREATED] = FileChangeType.ADDED; @@ -94,6 +96,11 @@ export class NsfwWatcherService implements IWatcherService { const events = undeliveredFileEvents; undeliveredFileEvents = []; + // Mac uses NFD unicode form on disk, but we want NFC + if (platform.isMacintosh) { + events.forEach(e => e.path = normalizeNFC(e.path)); + } + // Broadcast to clients normalized const res = watcher.normalize(events); this._progressCallback(res);