Skip to content

Commit 6b3521a

Browse files
authored
fix: file changes on windows not registering (#844)
1 parent 9754f29 commit 6b3521a

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/util.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ const regexNormalizeWindows = new RegExp("^\\\\(\\w:)", "g");
7575
export function fixPathSeparator(file: string) {
7676
file = file.replace(regexNormalizePath, path.sep);
7777
file = file.replace(regexNormalizeWindows, "$1"); // "\t:\test" => "t:\test"
78+
79+
if (path.sep === "\\") {
80+
file = file.charAt(0).toLowerCase() + file.slice(1);
81+
}
82+
7883
return file;
7984
}
8085

src/watchers/repositoryFilesWatcher.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1-
import { Event, Uri, workspace, EventEmitter } from "vscode";
1+
import { Event, Uri, workspace, EventEmitter, RelativePattern } from "vscode";
22
import { watch } from "fs";
33
import { exists } from "../fs";
4-
import { join, resolve } from "path";
4+
import { join } from "path";
55
import { debounce } from "../decorators";
6-
import { anyEvent, filterEvent, IDisposable, isDescendant } from "../util";
6+
import {
7+
anyEvent,
8+
filterEvent,
9+
IDisposable,
10+
isDescendant,
11+
fixPathSeparator
12+
} from "../util";
713

814
export class RepositoryFilesWatcher implements IDisposable {
915
private disposables: IDisposable[] = [];
@@ -29,7 +35,7 @@ export class RepositoryFilesWatcher implements IDisposable {
2935

3036
constructor(readonly root: string) {
3137
const fsWatcher = workspace.createFileSystemWatcher(
32-
join(resolve(root), "**")
38+
new RelativePattern(fixPathSeparator(root), "**")
3339
);
3440
this._onRepoChange = new EventEmitter<Uri>();
3541
this._onRepoCreate = new EventEmitter<Uri>();
@@ -58,8 +64,7 @@ export class RepositoryFilesWatcher implements IDisposable {
5864

5965
const isTmp = (uri: Uri) => /[\\\/]\.svn[\\\/]tmp/.test(uri.path);
6066

61-
const isRelevant = (uri: Uri) =>
62-
!isTmp(uri) && isDescendant(this.root, uri.fsPath);
67+
const isRelevant = (uri: Uri) => !isTmp(uri);
6368

6469
this.onDidChange = filterEvent(fsWatcher.onDidChange, isRelevant);
6570
this.onDidCreate = filterEvent(fsWatcher.onDidCreate, isRelevant);

0 commit comments

Comments
 (0)