Skip to content

Commit 7c272ed

Browse files
committed
Settings search - clear settings.json Problems when settings editor is closed
1 parent f6b128d commit 7c272ed

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

src/vs/workbench/parts/preferences/browser/preferencesEditor.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ export class PreferencesEditor extends BaseEditor {
222222
public clearInput(): void {
223223
this.defaultSettingsEditorContextKey.set(false);
224224
this.sideBySidePreferencesWidget.clearInput();
225+
this.preferencesRenderers.onHidden();
225226
super.clearInput();
226227
}
227228

@@ -426,6 +427,11 @@ class PreferencesRenderersController extends Disposable {
426427
await this.remoteSearchPreferences(this._lastQuery, true);
427428
}
428429

430+
onHidden(): void {
431+
this._prefsModelsForSearch.forEach(model => model.dispose());
432+
this._prefsModelsForSearch = new Map<string, ISettingsEditorModel>();
433+
}
434+
429435
remoteSearchPreferences(query: string, updateCurrentResults?: boolean): TPromise<void> {
430436
if (this._remoteFilterInProgress && this._remoteFilterInProgress.cancel) {
431437
// Resolved/rejected promises have no .cancel()
@@ -466,7 +472,7 @@ class PreferencesRenderersController extends Disposable {
466472
}
467473

468474
filterPs.push(this._filterOrSearchPreferences(query, this.editablePreferencesRenderer, searchProvider, groupId, groupLabel, groupOrder),
469-
this.updateSettingsTargetCounts(query, searchProvider, groupId, groupLabel, groupOrder));
475+
this.searchAllSettingsTargets(query, searchProvider, groupId, groupLabel, groupOrder));
470476

471477
return TPromise.join(filterPs).then(results => {
472478
const [defaultFilterResult, editableFilterResult] = results;
@@ -481,7 +487,12 @@ class PreferencesRenderersController extends Disposable {
481487
});
482488
}
483489

484-
private updateSettingsTargetCounts(query: string, searchProvider: ISearchProvider, groupId: string, groupLabel: string, groupOrder: number): TPromise<void> {
490+
private searchAllSettingsTargets(query: string, searchProvider: ISearchProvider, groupId: string, groupLabel: string, groupOrder: number): TPromise<void> {
491+
if (!query) {
492+
// Don't open the other settings targets when query is empty
493+
return TPromise.wrap(null);
494+
}
495+
485496
const searchPs = [
486497
this.searchSettingsTarget(searchProvider, ConfigurationTarget.WORKSPACE, groupId, groupLabel, groupOrder),
487498
this.searchSettingsTarget(searchProvider, ConfigurationTarget.USER, groupId, groupLabel, groupOrder)

0 commit comments

Comments
 (0)