From 6fbae9a6a65bdcf5506f0b2c9ca5f95f41b29287 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Thu, 23 Jan 2025 15:28:16 -0800 Subject: [PATCH] Rename keyMatchSize to keyMatchScore (#238625) --- .../preferences/browser/preferencesSearch.ts | 17 ++++++++++------- .../preferences/browser/settingsEditor2.ts | 2 +- .../preferences/browser/settingsTreeModels.ts | 2 +- .../services/preferences/common/preferences.ts | 4 ++-- .../preferences/common/preferencesModels.ts | 4 ++-- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts index 463b9facdaf0f..ba3ab00f1c09f 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts @@ -99,7 +99,7 @@ export class LocalSearchProvider implements ISearchProvider { let orderedScore = LocalSearchProvider.START_SCORE; // Sort is not stable const settingMatcher = (setting: ISetting) => { - const { matches, matchType, keyMatchSize } = new SettingMatches(this._filter, setting, true, true, (filter, setting) => preferencesModel.findValueMatches(filter, setting), this.configurationService); + const { matches, matchType, keyMatchScore } = new SettingMatches(this._filter, setting, true, true, (filter, setting) => preferencesModel.findValueMatches(filter, setting), this.configurationService); const score = strings.equalsIgnoreCase(this._filter, setting.key) ? LocalSearchProvider.EXACT_MATCH_SCORE : orderedScore--; @@ -108,7 +108,7 @@ export class LocalSearchProvider implements ISearchProvider { { matches, matchType, - keyMatchSize, + keyMatchScore, score } : null; @@ -139,8 +139,11 @@ export class LocalSearchProvider implements ISearchProvider { export class SettingMatches { readonly matches: IRange[]; matchType: SettingMatchType = SettingMatchType.None; - /** A more precise match score for key matches. */ - keyMatchSize: number = 0; + /** + * A match score for key matches to allow comparing key matches against each other. + * Otherwise, all key matches are treated the same, and sorting is done by ToC order. + */ + keyMatchScore: number = 0; constructor( searchString: string, @@ -186,7 +189,7 @@ export class SettingMatches { } if (keyMatchingWords.size) { this.matchType |= SettingMatchType.KeyMatch; - this.keyMatchSize = keyMatchingWords.size; + this.keyMatchScore = keyMatchingWords.size; } // Also check if the user tried searching by id. @@ -407,7 +410,7 @@ class AiRelatedInformationSearchProvider implements IRemoteSearchProvider { setting: settingsRecord[pick], matches: [settingsRecord[pick].range], matchType: SettingMatchType.RemoteMatch, - keyMatchSize: 0, + keyMatchScore: 0, score: info.weight }); } @@ -503,7 +506,7 @@ class TfIdfSearchProvider implements IRemoteSearchProvider { setting: this._settingsRecord[pick], matches: [this._settingsRecord[pick].range], matchType: SettingMatchType.RemoteMatch, - keyMatchSize: 0, + keyMatchScore: 0, score: info.score }); } diff --git a/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts b/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts index 5de358b38d510..de486320c0411 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts @@ -1679,7 +1679,7 @@ export class SettingsEditor2 extends EditorPane { for (const g of this.defaultSettingsEditorModel.settingsGroups.slice(1)) { for (const sect of g.sections) { for (const setting of sect.settings) { - fullResult.filterMatches.push({ setting, matches: [], matchType: SettingMatchType.None, keyMatchSize: 0, score: 0 }); + fullResult.filterMatches.push({ setting, matches: [], matchType: SettingMatchType.None, keyMatchScore: 0, score: 0 }); } } } diff --git a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts index 646164d1c8415..d8712dc5e91e8 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts @@ -963,7 +963,7 @@ export class SearchResultModel extends SettingsTreeModel { } else if (a.matchType === SettingMatchType.KeyMatch) { // The match types are the same and are KeyMatch. // Sort by the number of words matched in the key. - return b.keyMatchSize - a.keyMatchSize; + return b.keyMatchScore - a.keyMatchScore; } else if (a.matchType === SettingMatchType.RemoteMatch) { // The match types are the same and are RemoteMatch. // Sort by score. diff --git a/src/vs/workbench/services/preferences/common/preferences.ts b/src/vs/workbench/services/preferences/common/preferences.ts index 835993ab9029b..f9cb32deed32c 100644 --- a/src/vs/workbench/services/preferences/common/preferences.ts +++ b/src/vs/workbench/services/preferences/common/preferences.ts @@ -146,7 +146,7 @@ export interface ISettingMatch { setting: ISetting; matches: IRange[] | null; matchType: SettingMatchType; - keyMatchSize: number; + keyMatchScore: number; score: number; } @@ -186,7 +186,7 @@ export interface IPreferencesEditorModel { } export type IGroupFilter = (group: ISettingsGroup) => boolean | null; -export type ISettingMatcher = (setting: ISetting, group: ISettingsGroup) => { matches: IRange[]; matchType: SettingMatchType; keyMatchSize: number; score: number } | null; +export type ISettingMatcher = (setting: ISetting, group: ISettingsGroup) => { matches: IRange[]; matchType: SettingMatchType; keyMatchScore: number; score: number } | null; export interface ISettingsEditorModel extends IPreferencesEditorModel { readonly onDidChangeGroups: Event; diff --git a/src/vs/workbench/services/preferences/common/preferencesModels.ts b/src/vs/workbench/services/preferences/common/preferencesModels.ts index f6c0bc95c132d..44f3e8035de46 100644 --- a/src/vs/workbench/services/preferences/common/preferencesModels.ts +++ b/src/vs/workbench/services/preferences/common/preferencesModels.ts @@ -71,7 +71,7 @@ abstract class AbstractSettingsModel extends EditorModel { setting, matches: settingMatchResult && settingMatchResult.matches, matchType: settingMatchResult?.matchType ?? SettingMatchType.None, - keyMatchSize: settingMatchResult?.keyMatchSize ?? 0, + keyMatchScore: settingMatchResult?.keyMatchScore ?? 0, score: settingMatchResult?.score ?? 0 }); } @@ -900,7 +900,7 @@ export class DefaultSettingsEditorModel extends AbstractSettingsModel implements setting: filteredMatch.setting, score: filteredMatch.score, matchType: filteredMatch.matchType, - keyMatchSize: filteredMatch.keyMatchSize, + keyMatchScore: filteredMatch.keyMatchScore, matches: filteredMatch.matches && filteredMatch.matches.map(match => { return new Range( match.startLineNumber - filteredMatch.setting.range.startLineNumber,