Skip to content

Rank Quick Access results by a continuous relevance score#4099

Draft
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-scoring
Draft

Rank Quick Access results by a continuous relevance score#4099
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-scoring

Conversation

@vogella

@vogella vogella commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Quick Access ranked results by provider order then alphabetically, with only a binary prefix boost and a round-robin slot quota per provider, so a weak match in one provider could outrank a strong match in another and the per-entry match quality barely affected the order.

This adds a continuous fzf-style relevance score in QuickAccessMatching (word-boundary, consecutive-character and prefix bonuses, with light leading-gap and length penalties), ranks all candidates with a single stable comparator, and fills the table with the globally highest-scoring entries instead of a per-provider quota. Results stay grouped per provider in registration order, and each provider's natural order (recency for previous picks, alphabetical otherwise) is preserved on ties. The matcher is now reused across a compute pass so the wildcard and whitespace patterns compile once per filter rather than once per element.

Draft for early feedback on the ranking direction before the larger flat-list redesign discussion.

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Test Results

   864 files  ± 0     864 suites  ±0   58m 4s ⏱️ + 13m 12s
 8 058 tests + 8   7 814 ✅ + 7  243 💤 ±0  1 ❌ +1 
20 613 runs  +29  19 957 ✅ +28  655 💤 ±0  1 ❌ +1 

For more details on these failures, see this check.

Results for commit af76ea0. ± Comparison against base commit 4f9ee7a.

♻️ This comment has been updated with latest results.

Quick Access ranked results by provider order, then alphabetically, with
only a binary prefix boost and a round-robin slot quota per provider. A
weak Preferences hit could therefore outrank a strong Command hit, and
the per-entry match quality barely affected the order.

Add an fzf-style relevance score in QuickAccessMatching that rewards
word-boundary, consecutive-character and prefix matches and lightly
penalises leading gaps and length. QuickAccessContents now scores every
candidate, ranks them with a single comparator (score, then match
quality) applied with a stable sort, and fills the table with the
globally highest-ranked entries instead of a round-robin quota. Results
stay grouped per provider in registration order, and each provider's
natural order (recency for previous picks, alphabetical otherwise) is
preserved on ties.

QuickAccessMatcher is reused across all candidates of a compute pass so
the wildcard and whitespace patterns are compiled once per filter rather
than once per element.
@vogella vogella force-pushed the lv/quickaccess-scoring branch from 9f207d7 to af76ea0 Compare June 15, 2026 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant