mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
Fix #41571
This commit is contained in:
parent
9fda9a1bfd
commit
cac52572c9
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue