@@ -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