Skip to content

Commit d88e713

Browse files
committed
Fix remote search metadata missing from copySetting telemetry,
and highlighted editable results out of sync with default settings
1 parent e272880 commit d88e713

1 file changed

Lines changed: 18 additions & 11 deletions

File tree

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

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { CodeEditor } from 'vs/editor/browser/codeEditor';
2525
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
2626
import {
2727
IPreferencesService, ISettingsGroup, ISetting, IFilterResult, IPreferencesSearchService,
28-
CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_SEARCH_FOCUS, SETTINGS_EDITOR_COMMAND_SEARCH, SETTINGS_EDITOR_COMMAND_FOCUS_FILE, ISettingsEditorModel, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING, IFilterMetadata
28+
CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_SEARCH_FOCUS, SETTINGS_EDITOR_COMMAND_SEARCH, SETTINGS_EDITOR_COMMAND_FOCUS_FILE, ISettingsEditorModel, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING, IFilterMetadata, IPreferencesSearchModel
2929
} from 'vs/workbench/parts/preferences/common/preferences';
3030
import { SettingsEditorModel, DefaultSettingsEditorModel } from 'vs/workbench/parts/preferences/common/preferencesModels';
3131
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
@@ -387,6 +387,7 @@ class PreferencesRenderers extends Disposable {
387387
private _settingsNavigator: SettingsNavigator;
388388
private _filtersInProgress: TPromise<any>[];
389389
private _searchCriteria: ISearchCriteria;
390+
private _currentSearchModel: IPreferencesSearchModel;
390391

391392
private _onTriggeredFuzzy: Emitter<void> = this._register(new Emitter<void>());
392393
public onTriggeredFuzzy: Event<void> = this._onTriggeredFuzzy.event;
@@ -404,6 +405,10 @@ class PreferencesRenderers extends Disposable {
404405
return this._defaultPreferencesRenderer;
405406
}
406407

408+
get editablePreferencesRenderer(): IPreferencesRenderer<ISetting> {
409+
return this._editablePreferencesRenderer;
410+
}
411+
407412
set defaultPreferencesRenderer(defaultPreferencesRenderer: IPreferencesRenderer<ISetting>) {
408413
if (this._defaultPreferencesRenderer !== defaultPreferencesRenderer) {
409414
this._defaultPreferencesRenderer = defaultPreferencesRenderer;
@@ -427,11 +432,13 @@ class PreferencesRenderers extends Disposable {
427432
this._editablePreferencesRendererDisposables = dispose(this._editablePreferencesRendererDisposables);
428433
if (this._editablePreferencesRenderer) {
429434
(<ISettingsEditorModel>this._editablePreferencesRenderer.preferencesModel).onDidChangeGroups(() => {
430-
this._filterEditablePreferences()
431-
.then(() => {
432-
const count = this.consolidateAndUpdate();
433-
this._onDidFilterResultsCountChange.fire(count);
434-
});
435+
if (this._currentSearchModel) {
436+
this._filterEditablePreferences()
437+
.then(() => {
438+
const count = this.consolidateAndUpdate();
439+
this._onDidFilterResultsCountChange.fire(count);
440+
});
441+
}
435442
}, this, this._editablePreferencesRendererDisposables);
436443
}
437444
}
@@ -445,6 +452,7 @@ class PreferencesRenderers extends Disposable {
445452
this._filtersInProgress.forEach(p => p.cancel && p.cancel());
446453
}
447454

455+
this._currentSearchModel = this.preferencesSearchService.startSearch(this._searchCriteria.filter, criteria.fuzzy);
448456
this._filtersInProgress = [this._filterDefaultPreferences(), this._filterEditablePreferences()];
449457

450458
return TPromise.join<IFilterResult>(this._filtersInProgress).then(() => {
@@ -473,15 +481,15 @@ class PreferencesRenderers extends Disposable {
473481

474482
private _filterDefaultPreferences(): TPromise<void> {
475483
if (this._searchCriteria && this._defaultPreferencesRenderer) {
476-
return this._filterPreferences(this._searchCriteria, this._defaultPreferencesRenderer)
484+
return this._filterPreferences(this._searchCriteria, this._defaultPreferencesRenderer, this._currentSearchModel)
477485
.then(filterResult => { this._defaultPreferencesFilterResult = filterResult; });
478486
}
479487
return TPromise.wrap(null);
480488
}
481489

482490
private _filterEditablePreferences(): TPromise<void> {
483491
if (this._searchCriteria && this._editablePreferencesRenderer) {
484-
return this._filterPreferences({ filter: this._searchCriteria.filter, fuzzy: false }, this._editablePreferencesRenderer)
492+
return this._filterPreferences(this._searchCriteria, this._editablePreferencesRenderer, this._currentSearchModel)
485493
.then(filterResult => { this._editablePreferencesFilterResult = filterResult; });
486494
}
487495
return TPromise.wrap(null);
@@ -500,9 +508,8 @@ class PreferencesRenderers extends Disposable {
500508
return preferencesRenderer ? (<ISettingsEditorModel>preferencesRenderer.preferencesModel).settingsGroups : [];
501509
}
502510

503-
private _filterPreferences(searchCriteria: ISearchCriteria, preferencesRenderer: IPreferencesRenderer<ISetting>): TPromise<IFilterResult> {
504-
if (preferencesRenderer) {
505-
const searchModel = this.preferencesSearchService.startSearch(searchCriteria.filter, searchCriteria.fuzzy);
511+
private _filterPreferences(searchCriteria: ISearchCriteria, preferencesRenderer: IPreferencesRenderer<ISetting>, searchModel: IPreferencesSearchModel): TPromise<IFilterResult> {
512+
if (preferencesRenderer && searchCriteria) {
506513
const prefSearchP = searchModel.filterPreferences(<ISettingsEditorModel>preferencesRenderer.preferencesModel);
507514

508515
return prefSearchP.then(filterResult => {

0 commit comments

Comments
 (0)