Skip to content

csv_preview: #8 Refine filter popover UI - #61138

Merged
Anthony-Eid merged 4 commits into
zed-industries:mainfrom
HalavicH:feat/csv-preview/refine-filter-popover-ui
Jul 26, 2026
Merged

csv_preview: #8 Refine filter popover UI#61138
Anthony-Eid merged 4 commits into
zed-industries:mainfrom
HalavicH:feat/csv-preview/refine-filter-popover-ui

Conversation

@HalavicH

Copy link
Copy Markdown
Contributor

Objective

  • The column filter popover was a static ContextMenu: no search, and it didn't scale to columns with many unique values.

Solution

  • Replaced it with a Picker<ColumnFilterDelegate> with fuzzy search and match highlighting over the column's unique values.
  • Row order is frozen at open time (available first, then values hidden by other filters under a "Hidden by other filters" header) so toggling a value doesn't reshuffle the list.
  • Added a footer with {selected} / {total} rows selected and "Clear all".
  • Added fuzzy and picker deps to csv_preview.

Testing

  • Search narrows to fuzzy matches with highlighting.
  • Toggling a value updates its checkmark and footer count without closing or reordering the list.
  • Values excluded by another column's filter show disabled under "Hidden by other filters".
  • "Clear all" clears the column's filters and keeps the popover open.

Self-Review Checklist:

  • I've reviewed my own diff for quality, security, and reliability
  • Unsafe blocks (if any) have justifying comments
  • The content adheres to Zed's UI standards (UX/UI and icon guidelines)
  • Tests cover the new/changed behavior
  • Performance impact has been considered and is acceptable

Showcase

Before After
image image

+ search
image


Release Notes:

  • N/A

@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label Jul 16, 2026
@HalavicH
HalavicH force-pushed the feat/csv-preview/refine-filter-popover-ui branch from 60c052b to ff29b46 Compare July 16, 2026 20:03
@HalavicH
HalavicH marked this pull request as ready for review July 16, 2026 20:05
@HalavicH
HalavicH force-pushed the feat/csv-preview/refine-filter-popover-ui branch from ff29b46 to 8c3de28 Compare July 17, 2026 16:52
@ChristopherBiscardi ChristopherBiscardi added the area:preview/csv Feedback for Zed's CSV support label Jul 21, 2026
@HalavicH
HalavicH force-pushed the feat/csv-preview/refine-filter-popover-ui branch from 8c3de28 to 21336bb Compare July 22, 2026 18:44
HalavicH added 3 commits July 23, 2026 12:48
Flatten the nested match/branch structure in the sort-cycle logic and
drop an unused intermediate binding.
Swap the static ContextMenu for a Picker-based popover so column
filters can be searched, with a plain case-insensitive substring
match for now.
Swap the plain substring filter for async fuzzy matching (with
in-flight cancellation) and highlight matched characters in the list.
@HalavicH
HalavicH force-pushed the feat/csv-preview/refine-filter-popover-ui branch from 21336bb to 2ba1c7b Compare July 23, 2026 10:48
@Anthony-Eid
Anthony-Eid enabled auto-merge July 26, 2026 10:17
@Anthony-Eid
Anthony-Eid added this pull request to the merge queue Jul 26, 2026
Merged via the queue into zed-industries:main with commit 1764c2f Jul 26, 2026
36 checks passed
@HalavicH HalavicH changed the title csv_preview: Refine filter popover UI csv_preview: #8 Refine filter popover UI Jul 28, 2026
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
# Objective

- The column filter popover was a static `ContextMenu`: no search, and
it didn't scale to columns with many unique values.

## Solution

- Replaced it with a `Picker<ColumnFilterDelegate>` with fuzzy search
and match highlighting over the column's unique values.
- Row order is frozen at open time (available first, then values hidden
by other filters under a "Hidden by other filters" header) so toggling a
value doesn't reshuffle the list.
- Added a footer with `{selected} / {total} rows selected` and "Clear
all".
- Added `fuzzy` and `picker` deps to `csv_preview`.

## Testing

- Search narrows to fuzzy matches with highlighting.
- Toggling a value updates its checkmark and footer count without
closing or reordering the list.
- Values excluded by another column's filter show disabled under "Hidden
by other filters".
- "Clear all" clears the column's filters and keeps the popover open.

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable



## Showcase

| Before | After |
| --- | --- |
| <img width="660" height="351" alt="image"
src="https://github.com/user-attachments/assets/c78084a2-d327-4d48-9c05-f35383455713"
/> | <img width="660" height="354" alt="image"
src="https://github.com/user-attachments/assets/910d52ef-4530-4ac7-91ac-3db318cf6c19"
/> |

**+ search**
<img width="972" height="574" alt="image"
src="https://github.com/user-attachments/assets/1a26d0fc-c96c-4973-818d-7d053e8cce73"
/>

---

Release Notes:

- N/A
playdohface pushed a commit to playdohface/zed that referenced this pull request Aug 29, 2026
# Objective

- The column filter popover was a static `ContextMenu`: no search, and
it didn't scale to columns with many unique values.

## Solution

- Replaced it with a `Picker<ColumnFilterDelegate>` with fuzzy search
and match highlighting over the column's unique values.
- Row order is frozen at open time (available first, then values hidden
by other filters under a "Hidden by other filters" header) so toggling a
value doesn't reshuffle the list.
- Added a footer with `{selected} / {total} rows selected` and "Clear
all".
- Added `fuzzy` and `picker` deps to `csv_preview`.

## Testing

- Search narrows to fuzzy matches with highlighting.
- Toggling a value updates its checkmark and footer count without
closing or reordering the list.
- Values excluded by another column's filter show disabled under "Hidden
by other filters".
- "Clear all" clears the column's filters and keeps the popover open.

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable



## Showcase

| Before | After |
| --- | --- |
| <img width="660" height="351" alt="image"
src="https://github.com/user-attachments/assets/c78084a2-d327-4d48-9c05-f35383455713"
/> | <img width="660" height="354" alt="image"
src="https://github.com/user-attachments/assets/910d52ef-4530-4ac7-91ac-3db318cf6c19"
/> |

**+ search**
<img width="972" height="574" alt="image"
src="https://github.com/user-attachments/assets/1a26d0fc-c96c-4973-818d-7d053e8cce73"
/>

---

Release Notes:

- N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:preview/csv Feedback for Zed's CSV support cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants