Skip to content
This repository was archived by the owner on Sep 23, 2025. It is now read-only.
This repository was archived by the owner on Sep 23, 2025. It is now read-only.

Improve search disambiguation QuickPick UX - make it more obvious #25

@nikomatsakis

Description

@nikomatsakis

Problem

When dialectic URLs have multiple matches, the disambiguation QuickPick dialog can be easy to overlook. Users often don't realize they need to make a selection and get confused when clicking in the editor doesn't position the cursor correctly.

Current Behavior

  1. User clicks dialectic link with multiple matches
  2. QuickPick appears (but may be missed)
  3. Live preview shows in background
  4. User thinks navigation is complete and clicks in editor
  5. Cursor jumps because QuickPick still has focus

Improvement Ideas

Option 1: Make QuickPick more prominent

  • Larger, more obvious QuickPick dialog
  • Different styling to make it clear it needs attention
  • Sound notification when disambiguation is needed

Option 2: Auto-select if there's a "clear winner"

  • Improve getBestSearchResult logic to be more aggressive
  • Only show disambiguation for truly ambiguous cases
  • Use heuristics like "exact word match" vs "partial match"

Option 3: Show disambiguation status in editor

  • Status bar message: "Multiple matches found - select from dropdown"
  • Temporary notification overlay in the editor

Option 4: Cursor-positioned popup

  • Show disambiguation popup literally at the cursor position
  • More contextual and harder to miss

Option 5: Different interaction model

  • Click once = show all matches with decorations in editor
  • Click again = cycle through matches
  • No QuickPick at all

Impact

This affects user experience when exploring code with ambiguous search patterns. The current implementation works but can be confusing when users don't notice the QuickPick dialog.

Current Workaround

Users need to look for the QuickPick dialog and make a selection before clicking in the editor.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions