Skip to content

Commit c25e7e9

Browse files
committed
Making IFileChange readonly
1 parent af4e348 commit c25e7e9

10 files changed

Lines changed: 27 additions & 22 deletions

File tree

src/vs/platform/files/common/files.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ export interface IFileSystemProvider {
209209

210210
readonly onDidErrorOccur?: Event<string>; // TODO@ben remove once file watchers are solid
211211

212-
readonly onDidChangeFile: Event<IFileChange[]>;
212+
readonly onDidChangeFile: Event<readonly IFileChange[]>;
213213
watch(resource: URI, opts: IWatchOptions): IDisposable;
214214

215215
stat(resource: URI): Promise<IStat>;
@@ -389,12 +389,12 @@ export interface IFileChange {
389389
/**
390390
* The type of change that occurred to the file.
391391
*/
392-
type: FileChangeType;
392+
readonly type: FileChangeType;
393393

394394
/**
395395
* The unified resource identifier of the file that changed.
396396
*/
397-
resource: URI;
397+
readonly resource: URI;
398398
}
399399

400400
export class FileChangesEvent {

src/vs/platform/files/node/diskFileSystemProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,8 +449,8 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro
449449
private _onDidWatchErrorOccur: Emitter<string> = this._register(new Emitter<string>());
450450
readonly onDidErrorOccur: Event<string> = this._onDidWatchErrorOccur.event;
451451

452-
private _onDidChangeFile: Emitter<IFileChange[]> = this._register(new Emitter<IFileChange[]>());
453-
get onDidChangeFile(): Event<IFileChange[]> { return this._onDidChangeFile.event; }
452+
private _onDidChangeFile = this._register(new Emitter<readonly IFileChange[]>());
453+
get onDidChangeFile(): Event<readonly IFileChange[]> { return this._onDidChangeFile.event; }
454454

455455
private recursiveWatcher: WindowsWatcherService | UnixWatcherService | NsfwWatcherService | undefined;
456456
private recursiveFoldersToWatch: { path: string, excludes: string[] }[] = [];

src/vs/platform/files/test/common/nullFileSystemProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class NullFileSystemProvider implements IFileSystemProvider {
1313
capabilities: FileSystemProviderCapabilities = FileSystemProviderCapabilities.Readonly;
1414

1515
onDidChangeCapabilities: Event<void> = Event.None;
16-
onDidChangeFile: Event<IFileChange[]> = Event.None;
16+
onDidChangeFile: Event<readonly IFileChange[]> = Event.None;
1717

1818
constructor(private disposableFactory: () => IDisposable = () => Disposable.None) { }
1919

@@ -30,4 +30,4 @@ export class NullFileSystemProvider implements IFileSystemProvider {
3030
close?(fd: number): Promise<void> { return Promise.resolve(undefined!); }
3131
read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return Promise.resolve(undefined!); }
3232
write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return Promise.resolve(undefined!); }
33-
}
33+
}

src/vs/platform/remote/common/remoteAgentFileSystemChannel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ export class RemoteExtensionsFileSystemProvider extends Disposable implements IF
2424

2525
private readonly session: string = generateUuid();
2626

27-
private readonly _onDidChange = this._register(new Emitter<IFileChange[]>());
28-
readonly onDidChangeFile: Event<IFileChange[]> = this._onDidChange.event;
27+
private readonly _onDidChange = this._register(new Emitter<readonly IFileChange[]>());
28+
readonly onDidChangeFile: Event<readonly IFileChange[]> = this._onDidChange.event;
2929

3030
private _onDidWatchErrorOccur: Emitter<string> = this._register(new Emitter<string>());
3131
readonly onDidErrorOccur: Event<string> = this._onDidWatchErrorOccur.event;

src/vs/workbench/api/browser/mainThreadFileSystem.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ export class MainThreadFileSystem implements MainThreadFileSystemShape {
123123

124124
class RemoteFileSystemProvider implements IFileSystemProvider {
125125

126-
private readonly _onDidChange = new Emitter<IFileChange[]>();
126+
private readonly _onDidChange = new Emitter<readonly IFileChange[]>();
127127
private readonly _registration: IDisposable;
128128

129-
readonly onDidChangeFile: Event<IFileChange[]> = this._onDidChange.event;
129+
readonly onDidChangeFile: Event<readonly IFileChange[]> = this._onDidChange.event;
130130

131131
readonly capabilities: FileSystemProviderCapabilities;
132132
readonly onDidChangeCapabilities: Event<void> = Event.None;

src/vs/workbench/services/log/common/keyValueLogProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ export abstract class KeyValueLogProvider extends Disposable implements IFileSys
1717
readonly capabilities: FileSystemProviderCapabilities = FileSystemProviderCapabilities.FileReadWrite;
1818
readonly onDidChangeCapabilities: Event<void> = Event.None;
1919

20-
private readonly _onDidChangeFile: Emitter<IFileChange[]> = this._register(new Emitter<IFileChange[]>());
21-
readonly onDidChangeFile: Event<IFileChange[]> = this._onDidChangeFile.event;
20+
private readonly _onDidChangeFile = this._register(new Emitter<readonly IFileChange[]>());
21+
readonly onDidChangeFile: Event<readonly IFileChange[]> = this._onDidChangeFile.event;
2222

2323
private readonly versions: Map<string, number> = new Map<string, number>();
2424

src/vs/workbench/services/userData/common/fileUserDataProvider.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ export class FileUserDataProvider extends Disposable implements IFileSystemProvi
1717
readonly capabilities: FileSystemProviderCapabilities = this.fileSystemProvider.capabilities;
1818
readonly onDidChangeCapabilities: Event<void> = Event.None;
1919

20-
private readonly _onDidChangeFile: Emitter<IFileChange[]> = this._register(new Emitter<IFileChange[]>());
21-
readonly onDidChangeFile: Event<IFileChange[]> = this._onDidChangeFile.event;
20+
private readonly _onDidChangeFile = this._register(new Emitter<readonly IFileChange[]>());
21+
readonly onDidChangeFile: Event<readonly IFileChange[]> = this._onDidChangeFile.event;
2222

2323
private readonly userDataHome: URI;
2424

@@ -103,7 +103,7 @@ export class FileUserDataProvider extends Disposable implements IFileSystemProvi
103103
return this.fileSystemProvider.delete(this.toFileSystemResource(resource), opts);
104104
}
105105

106-
private handleFileChanges(changes: IFileChange[]): void {
106+
private handleFileChanges(changes: readonly IFileChange[]): void {
107107
const userDataChanges: IFileChange[] = [];
108108
for (const change of changes) {
109109
const userDataResource = this.toUserDataResource(change.resource);
@@ -139,4 +139,4 @@ export class FileUserDataProvider extends Disposable implements IFileSystemProvi
139139
return null;
140140
}
141141

142-
}
142+
}

src/vs/workbench/services/userData/common/inMemoryUserDataProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,8 @@ export class InMemoryFileSystemProvider extends Disposable implements IFileSyste
205205

206206
// --- manage file events
207207

208-
private readonly _onDidChangeFile: Emitter<IFileChange[]> = this._register(new Emitter<IFileChange[]>());
209-
readonly onDidChangeFile: Event<IFileChange[]> = this._onDidChangeFile.event;
208+
private readonly _onDidChangeFile = this._register(new Emitter<readonly IFileChange[]>());
209+
readonly onDidChangeFile: Event<readonly IFileChange[]> = this._onDidChangeFile.event;
210210

211211
private _bufferedChanges: IFileChange[] = [];
212212
private _fireSoonHandle?: any;

src/vs/workbench/services/userData/test/electron-browser/fileUserDataProvider.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ suite('FileUserDataProvider', () => {
277277

278278
class TestFileSystemProvider implements IFileSystemProviderWithFileReadWriteCapability {
279279

280-
constructor(readonly onDidChangeFile: Event<IFileChange[]>) { }
280+
constructor(readonly onDidChangeFile: Event<readonly IFileChange[]>) { }
281281

282282
readonly capabilities: FileSystemProviderCapabilities = FileSystemProviderCapabilities.FileReadWrite;
283283

@@ -309,7 +309,7 @@ suite('FileUserDataProvider - Watching', () => {
309309
let userDataResource: URI;
310310
const disposables = new DisposableStore();
311311

312-
const fileEventEmitter: Emitter<IFileChange[]> = new Emitter<IFileChange[]>();
312+
const fileEventEmitter: Emitter<readonly IFileChange[]> = new Emitter<readonly IFileChange[]>();
313313
disposables.add(fileEventEmitter);
314314

315315
setup(() => {

src/vs/workbench/test/workbenchTestServices.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1346,7 +1346,12 @@ export class RemoteFileSystemProvider implements IFileSystemProvider {
13461346
readonly capabilities: FileSystemProviderCapabilities = this.diskFileSystemProvider.capabilities;
13471347
readonly onDidChangeCapabilities: Event<void> = this.diskFileSystemProvider.onDidChangeCapabilities;
13481348

1349-
readonly onDidChangeFile: Event<IFileChange[]> = Event.map(this.diskFileSystemProvider.onDidChangeFile, changes => changes.map(c => { c.resource = c.resource.with({ scheme: Schemas.vscodeRemote, authority: this.remoteAuthority }); return c; }));
1349+
readonly onDidChangeFile: Event<readonly IFileChange[]> = Event.map(this.diskFileSystemProvider.onDidChangeFile, changes => changes.map((c): IFileChange => {
1350+
return {
1351+
type: c.type,
1352+
resource: c.resource.with({ scheme: Schemas.vscodeRemote, authority: this.remoteAuthority }),
1353+
};
1354+
}));
13501355
watch(resource: URI, opts: IWatchOptions): IDisposable { return this.diskFileSystemProvider.watch(this.toFileResource(resource), opts); }
13511356

13521357
stat(resource: URI): Promise<IStat> { return this.diskFileSystemProvider.stat(this.toFileResource(resource)); }

0 commit comments

Comments
 (0)