Skip to content

Commit

Permalink
chickodarservice: setVerboseLogging & stop
Browse files Browse the repository at this point in the history
  • Loading branch information
aeschli committed Sep 20, 2018
1 parent 0c0d368 commit 023af41
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ export class ChokidarWatcherService implements IWatcherService {
private _watchers: { [watchPath: string]: IWatcher };
private _watcherCount: number;

private _options: IWatcherOptions & IChockidarWatcherOptions;
private _pollingInterval: number;
private _verboseLogging: boolean;

private spamCheckStartTime: number;
private spamWarningLogged: boolean;
Expand All @@ -54,13 +55,19 @@ export class ChokidarWatcherService implements IWatcherService {
private _onWatchEvent = new Emitter<watcherCommon.IRawFileChange[] | IWatchError>();
readonly onWatchEvent = this._onWatchEvent.event;

watch(options: IWatcherOptions & IChockidarWatcherOptions): Event<watcherCommon.IRawFileChange[] | IWatchError> {
this._options = options;
public watch(options: IWatcherOptions & IChockidarWatcherOptions): Event<watcherCommon.IRawFileChange[] | IWatchError> {
this._verboseLogging = options.verboseLogging;
this._pollingInterval = options.pollingInterval;
this._watchers = Object.create(null);
this._watcherCount = 0;
return this.onWatchEvent;
}

public setVerboseLogging(enabled: boolean): TPromise<void> {
this._verboseLogging = enabled;
return TPromise.as(null);
}

public setRoots(requests: IWatcherRequest[]): TPromise<void> {
const watchers = Object.create(null);
const newRequests = [];
Expand Down Expand Up @@ -97,11 +104,11 @@ export class ChokidarWatcherService implements IWatcherService {
}

private _watch(basePath: string, requests: IWatcherRequest[]): IWatcher {
if (this._options.verboseLogging) {
if (this._verboseLogging) {
console.log(`Start watching: ${basePath}]`);
}

const pollingInterval = this._options.pollingInterval || 1000;
const pollingInterval = this._pollingInterval || 1000;

const watcherOpts: chokidar.IOptions = {
ignoreInitial: true,
Expand Down Expand Up @@ -144,7 +151,7 @@ export class ChokidarWatcherService implements IWatcherService {
requests,
stop: () => {
try {
if (this._options.verboseLogging) {
if (this._verboseLogging) {
console.log(`Stop watching: ${basePath}]`);
}
if (chokidarWatcher) {
Expand Down Expand Up @@ -206,7 +213,7 @@ export class ChokidarWatcherService implements IWatcherService {
let event = { type: eventType, path };

// Logging
if (this._options.verboseLogging) {
if (this._verboseLogging) {
console.log(`${eventType === FileChangeType.ADDED ? '[ADDED]' : eventType === FileChangeType.DELETED ? '[DELETED]' : '[CHANGED]'} ${path}`);
}

Expand All @@ -233,7 +240,7 @@ export class ChokidarWatcherService implements IWatcherService {
this._onWatchEvent.fire(res);

// Logging
if (this._options.verboseLogging) {
if (this._verboseLogging) {
res.forEach(r => {
console.log(` >> normalized ${r.type === FileChangeType.ADDED ? '[ADDED]' : r.type === FileChangeType.DELETED ? '[DELETED]' : '[CHANGED]'} ${r.path}`);
});
Expand Down
2 changes: 2 additions & 0 deletions src/vs/workbench/services/files/node/watcher/unix/watcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ export interface IWatchError {
export interface IWatcherService {
watch(options: IWatcherOptions): Event<IRawFileChange[] | IWatchError>;
setRoots(roots: IWatcherRequest[]): TPromise<void>;
setVerboseLogging(enabled: boolean): TPromise<void>;
stop(): TPromise<void>;
}
13 changes: 12 additions & 1 deletion src/vs/workbench/services/files/node/watcher/unix/watcherIpc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export interface IWatcherChannel extends IChannel {
listen<T>(event: string, arg?: any): Event<T>;

call(command: 'setRoots', request: IWatcherRequest[]): TPromise<void>;
call(command: 'setVerboseLogging', request: boolean): TPromise<void>;
call<T>(command: string, arg?: any): TPromise<T>;
}

Expand All @@ -30,9 +31,11 @@ export class WatcherChannel implements IWatcherChannel {
throw new Error('No events');
}

call(command: string, arg: any): TPromise<any> {
call(command: string, arg?: any): TPromise<any> {
switch (command) {
case 'setRoots': return this.service.setRoots(arg);
case 'setVerboseLogging': return this.service.setVerboseLogging(arg);
case 'stop': return this.service.stop();
}
return undefined;
}
Expand All @@ -46,7 +49,15 @@ export class WatcherChannelClient implements IWatcherService {
return this.channel.listen('watch', options);
}

setVerboseLogging(enable: boolean): TPromise<void> {
return this.channel.call('setVerboseLogging', enable);
}

setRoots(roots: IWatcherRequest[]): TPromise<void> {
return this.channel.call('setRoots', roots);
}

stop(): TPromise<void> {
return this.channel.call('stop');
}
}

0 comments on commit 023af41

Please sign in to comment.