From bd6854bccd8298d87e0dc1f5e714132eed10a079 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Thu, 20 Mar 2025 11:13:48 -0700 Subject: [PATCH] Clean up types and unused parameters --- .../preferences/browser/preferencesSearch.ts | 31 ++++++----- .../preferences/browser/settingsEditor2.ts | 52 +++++++------------ .../contrib/preferences/common/preferences.ts | 2 +- .../preferences/common/preferences.ts | 1 - .../preferences/common/preferencesModels.ts | 15 ------ 5 files changed, 38 insertions(+), 63 deletions(-) diff --git a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts index f65e7db2e6868..704f2e433d3a0 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts @@ -89,7 +89,7 @@ export class LocalSearchProvider implements ISearchProvider { this._filter = cleanFilter(this._filter); } - searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise { + searchModel(preferencesModel: ISettingsEditorModel, token: CancellationToken): Promise { if (!this._filter) { return Promise.resolve(null); } @@ -99,7 +99,6 @@ export class LocalSearchProvider implements ISearchProvider { this._filter, setting, true, - (filter, setting) => preferencesModel.findValueMatches(filter, setting), this.configurationService ); if (matchType === SettingMatchType.None || matches.length === 0) { @@ -150,7 +149,6 @@ export class SettingMatches { searchString: string, setting: ISetting, private searchDescription: boolean, - valuesMatcher: (filter: string, setting: ISetting) => IRange[], private readonly configurationService: IConfigurationService ) { this.matches = distinct(this._findMatchesInSetting(searchString, setting), (match) => `${match.startLineNumber}_${match.startColumn}_${match.endLineNumber}_${match.endColumn}_`); @@ -419,7 +417,7 @@ class AiRelatedInformationSearchProvider implements IRemoteSearchProvider { this._filter = cleanFilter(filter); } - async searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken | undefined): Promise { + async searchModel(preferencesModel: ISettingsEditorModel, token: CancellationToken): Promise { if ( !this._filter || !this.aiRelatedInformationService.isEnabled() @@ -434,14 +432,14 @@ class AiRelatedInformationSearchProvider implements IRemoteSearchProvider { }; } - private async getAiRelatedInformationItems(token?: CancellationToken | undefined) { + private async getAiRelatedInformationItems(token: CancellationToken) { const settingsRecord = this._keysProvider.getSettingsRecord(); const filterMatches: ISettingMatch[] = []; const relatedInformation = await this.aiRelatedInformationService.getRelatedInformation( this._filter, [RelatedInformationType.SettingInformation], - token ?? CancellationToken.None + token ) as SettingInformationResult[]; relatedInformation.sort((a, b) => b.weight - a.weight); @@ -497,7 +495,7 @@ class TfIdfSearchProvider implements IRemoteSearchProvider { return result; } - async searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken | undefined): Promise { + async searchModel(preferencesModel: ISettingsEditorModel, token: CancellationToken): Promise { if (!this._filter) { return null; } @@ -528,11 +526,11 @@ class TfIdfSearchProvider implements IRemoteSearchProvider { }; } - private async getTfIdfItems(token?: CancellationToken | undefined): Promise { + private async getTfIdfItems(token: CancellationToken): Promise { const filterMatches: ISettingMatch[] = []; const tfIdfCalculator = new TfIdfCalculator(); tfIdfCalculator.updateDocuments(this._documents); - const tfIdfRankings = tfIdfCalculator.calculateScores(this._filter, token ?? CancellationToken.None); + const tfIdfRankings = tfIdfCalculator.calculateScores(this._filter, token); tfIdfRankings.sort((a, b) => b.score - a.score); const maxScore = tfIdfRankings[0].score; @@ -585,9 +583,9 @@ class RemoteSearchProvider implements IRemoteSearchProvider { this.tfIdfSearchProvider!.setFilter(filter); } - searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise { + async searchModel(preferencesModel: ISettingsEditorModel, token: CancellationToken): Promise { if (!this.filter) { - return Promise.resolve(null); + return null; } if (!this.adaSearchProvider) { @@ -595,9 +593,14 @@ class RemoteSearchProvider implements IRemoteSearchProvider { } // Use TF-IDF search as a fallback, ref https://github.com/microsoft/vscode/issues/224946 - return this.adaSearchProvider.searchModel(preferencesModel, token).then((results) => { - return results?.filterMatches.length ? results : this.tfIdfSearchProvider!.searchModel(preferencesModel, token); - }); + const results = await this.adaSearchProvider.searchModel(preferencesModel, token); + if (results?.filterMatches.length) { + return results; + } + if (!token.isCancellationRequested) { + return this.tfIdfSearchProvider!.searchModel(preferencesModel, token); + } + return null; } } diff --git a/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts b/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts index 5b1143c5dbfb6..f17e9b3700ec2 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts @@ -1720,19 +1720,22 @@ export class SettingsEditor2 extends EditorPane { this.renderTree(undefined, true); } - private localFilterPreferences(query: string, token?: CancellationToken): Promise { + private localFilterPreferences(query: string, token: CancellationToken): Promise { const localSearchProvider = this.preferencesSearchService.getLocalSearchProvider(query); - return this.filterOrSearchPreferences(query, SearchResultIdx.Local, localSearchProvider, token); + return this.searchWithProvider(SearchResultIdx.Local, localSearchProvider, token); } - private remoteSearchPreferences(query: string, token?: CancellationToken): Promise { + private remoteSearchPreferences(query: string, token: CancellationToken): Promise { const remoteSearchProvider = this.preferencesSearchService.getRemoteSearchProvider(query); - return this.filterOrSearchPreferences(query, SearchResultIdx.Remote, remoteSearchProvider, token); + if (!remoteSearchProvider) { + return Promise.resolve(null); + } + return this.searchWithProvider(SearchResultIdx.Remote, remoteSearchProvider, token); } - private async filterOrSearchPreferences(query: string, type: SearchResultIdx, searchProvider?: ISearchProvider, token?: CancellationToken): Promise { - const result = await this._filterOrSearchPreferencesModel(query, this.defaultSettingsEditorModel, searchProvider, token); - if (token?.isCancellationRequested) { + private async searchWithProvider(type: SearchResultIdx, searchProvider: ISearchProvider, token: CancellationToken): Promise { + const result = await this._searchPreferencesModel(this.defaultSettingsEditorModel, searchProvider, token); + if (token.isCancellationRequested) { // Handle cancellation like this because cancellation is lost inside the search provider due to async/await return null; } @@ -1785,31 +1788,16 @@ export class SettingsEditor2 extends EditorPane { } } - private _filterOrSearchPreferencesModel(filter: string, model: ISettingsEditorModel, provider?: ISearchProvider, token?: CancellationToken): Promise { - const searchP = provider ? provider.searchModel(model, token) : Promise.resolve(null); - return searchP - .then(undefined, err => { - if (isCancellationError(err)) { - return Promise.reject(err); - } else { - // type SettingsSearchErrorEvent = { - // 'message': string; - // }; - // type SettingsSearchErrorClassification = { - // owner: 'rzhao271'; - // comment: 'Helps understand when settings search errors out'; - // 'message': { 'classification': 'CallstackOrException'; 'purpose': 'FeatureInsight'; 'owner': 'rzhao271'; 'comment': 'The error message of the search error.' }; - // }; - - // const message = getErrorMessage(err).trim(); - // if (message && message !== 'Error') { - // // "Error" = any generic network error - // this.telemetryService.publicLogError2('settingsEditor.searchError', { message }); - // this.logService.info('Setting search error: ' + message); - // } - return null; - } - }); + private async _searchPreferencesModel(model: ISettingsEditorModel, provider: ISearchProvider, token: CancellationToken): Promise { + try { + return await provider.searchModel(model, token); + } catch (err) { + if (isCancellationError(err)) { + return Promise.reject(err); + } else { + return null; + } + } } private layoutSplitView(dimension: DOM.Dimension): void { diff --git a/src/vs/workbench/contrib/preferences/common/preferences.ts b/src/vs/workbench/contrib/preferences/common/preferences.ts index 10244f4354b32..c2d3fe0ddae4e 100644 --- a/src/vs/workbench/contrib/preferences/common/preferences.ts +++ b/src/vs/workbench/contrib/preferences/common/preferences.ts @@ -43,7 +43,7 @@ export interface IPreferencesSearchService { } export interface ISearchProvider { - searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise; + searchModel(preferencesModel: ISettingsEditorModel, token: CancellationToken): Promise; } export interface IRemoteSearchProvider extends ISearchProvider { diff --git a/src/vs/workbench/services/preferences/common/preferences.ts b/src/vs/workbench/services/preferences/common/preferences.ts index 79b764b569d52..316500ca054be 100644 --- a/src/vs/workbench/services/preferences/common/preferences.ts +++ b/src/vs/workbench/services/preferences/common/preferences.ts @@ -201,7 +201,6 @@ export interface ISettingsEditorModel extends IPreferencesEditorModel readonly onDidChangeGroups: Event; settingsGroups: ISettingsGroup[]; filterSettings(filter: string, groupFilter: IGroupFilter, settingMatcher: ISettingMatcher): ISettingMatch[]; - findValueMatches(filter: string, setting: ISetting): IRange[]; updateResultGroup(id: string, resultGroup: ISearchResultGroup | undefined): IFilterResult | undefined; } diff --git a/src/vs/workbench/services/preferences/common/preferencesModels.ts b/src/vs/workbench/services/preferences/common/preferencesModels.ts index 44f3e8035de46..dbb67285d19cd 100644 --- a/src/vs/workbench/services/preferences/common/preferencesModels.ts +++ b/src/vs/workbench/services/preferences/common/preferencesModels.ts @@ -116,8 +116,6 @@ abstract class AbstractSettingsModel extends EditorModel { abstract settingsGroups: ISettingsGroup[]; - abstract findValueMatches(filter: string, setting: ISetting): IRange[]; - protected abstract update(): IFilterResult | undefined; } @@ -158,10 +156,6 @@ export class SettingsEditorModel extends AbstractSettingsModel implements ISetti return this.settingsModel.getValue(); } - findValueMatches(filter: string, setting: ISetting): IRange[] { - return this.settingsModel.findMatches(filter, setting.valueRange, false, false, null, false).map(match => match.range); - } - protected isSettingsProperty(property: string, previousParents: string[]): boolean { return previousParents.length === 0; // Settings is root } @@ -255,11 +249,6 @@ export class Settings2EditorModel extends AbstractSettingsModel implements ISett this.additionalGroups = groups; } - findValueMatches(filter: string, setting: ISetting): IRange[] { - // TODO @roblou - return []; - } - protected update(): IFilterResult { throw new Error('Not supported'); } @@ -951,10 +940,6 @@ export class DefaultSettingsEditorModel extends AbstractSettingsModel implements }; } - findValueMatches(filter: string, setting: ISetting): IRange[] { - return []; - } - override getPreference(key: string): ISetting | undefined { for (const group of this.settingsGroups) { for (const section of group.sections) {