This commit is contained in:
Sandeep Somavarapu 2018-02-14 18:37:01 +01:00
parent 9fda9a1bfd
commit cac52572c9
2 changed files with 17 additions and 2 deletions

View file

@ -92,10 +92,13 @@ export class WorkspaceConfiguration extends Disposable {
this._workspaceConfigPath = workspaceConfigPath;
this.stopListeningToWatcher();
return new TPromise<void>((c, e) => {
const defaultConfig = new WorkspaceConfigurationModelParser(this._workspaceConfigPath.fsPath);
defaultConfig.parse(JSON.stringify({ folders: [] } as IStoredWorkspace, null, '\t'));
if (this._workspaceConfigurationWatcher) {
this.stopListeningToWatcher();
this._workspaceConfigurationWatcher.dispose();
}
this._workspaceConfigurationWatcher = new ConfigWatcher(this._workspaceConfigPath.fsPath, {
changeBufferDelay: 300,
onError: error => errors.onUnexpectedError(error),
@ -144,7 +147,6 @@ export class WorkspaceConfiguration extends Disposable {
}
private listenToWatcher() {
this._workspaceConfigurationWatcherDisposables.push(this._workspaceConfigurationWatcher);
this._workspaceConfigurationWatcher.onDidUpdateConfiguration(() => this._onDidUpdateConfiguration.fire(), this, this._workspaceConfigurationWatcherDisposables);
}

View file

@ -274,6 +274,19 @@ suite('WorkspaceContextService - Workspace', () => {
});
});
test('remove folders and add them back by writing into the file', done => {
const folders = testObject.getWorkspace().folders;
return testObject.removeFolders([folders[0].uri])
.then(() => {
testObject.onDidChangeWorkspaceFolders(actual => {
assert.deepEqual(actual.added.map(r => r.uri.toString()), [folders[0].uri.toString()]);
done();
});
const workspace = { folders: [{ path: folders[0].uri.fsPath }, { path: folders[1].uri.fsPath }] };
fs.writeFileSync(testObject.getWorkspace().configuration.fsPath, JSON.stringify(workspace, null, '\t'));
});
});
test('update folders (remove last and add to end)', () => {
const target = sinon.spy();
testObject.onDidChangeWorkspaceFolders(target);