Oleksandr Kholiavko
f65b8464f6
csv_preview: Evolve into tabular data preview ( #60768 )
...
# Objective
The MVP version of CSV preview is ready. However it's trivial to extend
it to TSV & other formats.
## Solution
This PR does exactly that - switching from CSV only to any tabular data
(TSV/CSV/PSV/SSV).
1. added `tsv`/`psv`/`ssv` support
2. renamed action/eye button & crate
3. added `.psv`/`.ssv` types to use database icon (similar to
`csv`/`tsv`)
2. Added `Table` svg icon (was previously missing) so preview is not
longer using book icon (from markdown preview).
> NOTE: Crate renaming will be done separately (as it's mechanical work
& I don't want to mix it with logic changes)
## Testing
Opened csv/tsv/psv/ssv files in peview
## Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [x] 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)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
## Showcase
PSV/SSV file formats icon
| Before | After |
| --- | --- |
| <img width="141" height="136" alt="image"
src="https://github.com/user-attachments/assets/ff5ec1a2-10e3-4363-a467-d535c7f621c0"
/> | <img width="143" height="135" alt="image"
src="https://github.com/user-attachments/assets/f4a85276-beee-4d3e-bc59-319c4fc8812c"
/> |
Change namespace for actions (`csv` -> `tabular data`)
| Before | After |
| --- | --- |
| <img width="551" height="150" alt="image"
src="https://github.com/user-attachments/assets/f7b79a7f-b300-4d14-8565-b42b3bcb11c4"
/> | <img width="558" height="152" alt="image"
src="https://github.com/user-attachments/assets/be9dcc54-51a4-4736-9539-172fecabdf6d"
/> |
Update parser & detection logic to support preview for TSV/PSV/SSV
| Before | After |
| --- | --- |
| <img width="470" height="287" alt="image"
src="https://github.com/user-attachments/assets/d0222bd1-91a7-46e0-b4da-76be0642bf51"
/> | <img width="541" height="275" alt="image"
src="https://github.com/user-attachments/assets/3c4d237a-4956-46ad-b7d6-3a8782b41888"
/> |
Introduce table svg icon
| Before | After |
| --- | --- |
| <img width="349" height="66" alt="image"
src="https://github.com/user-attachments/assets/bd7999ef-516f-43d1-a0e6-50055c1c3bed"
/> | <img width="331" height="50" alt="image"
src="https://github.com/user-attachments/assets/fc534921-0c15-421c-b046-8c5967178d24"
/> |
---
Release Notes:
- N/A or Added/Fixed/Improved ...
2026-08-14 15:58:14 +00:00
..
2026-07-15 11:00:37 +00:00
2026-04-15 22:08:28 -03:00
2026-05-19 13:28:45 +00:00
2026-06-12 03:00:42 +00:00
2026-07-15 11:00:37 +00:00
2025-08-04 11:58:31 -03:00
2025-07-21 20:39:29 -03:00
2025-08-04 11:58:31 -03:00
2026-06-23 14:40:13 +00:00
2025-07-21 20:39:29 -03:00
2024-08-12 09:55:00 -04:00
2026-06-29 13:24:33 +00:00
2026-05-19 13:28:45 +00:00
2026-02-21 08:41:28 +00:00
2026-05-19 13:28:45 +00:00
2026-07-15 11:00:37 +00:00
2026-07-31 15:06:40 +00:00
2026-05-19 13:28:45 +00:00
2026-03-23 12:48:49 +00:00
2025-08-04 11:58:31 -03:00
2026-02-26 17:54:44 -05:00
2026-05-19 13:28:45 +00:00
2026-05-19 13:28:45 +00:00
2026-06-23 14:40:13 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-11-11 12:50:56 -03:00
2025-08-22 09:52:44 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-05-26 02:10:47 +00:00
2025-08-17 13:25:05 -03:00
2025-08-04 11:58:31 -03:00
2026-07-15 11:00:37 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-04-23 21:21:45 +00:00
2026-03-24 11:13:40 -03:00
2025-12-10 12:10:43 -08:00
2025-08-08 15:34:36 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-11-03 14:50:34 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-05-21 19:35:43 +00:00
2026-04-16 19:24:42 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-05-26 02:10:47 +00:00
2025-08-17 13:25:05 -03:00
2026-06-09 14:38:34 +00:00
2025-08-17 13:25:05 -03:00
2025-08-08 15:34:36 -03:00
2025-08-08 15:34:36 -03:00
2025-08-08 15:34:36 -03:00
2026-07-15 11:00:37 +00:00
2025-08-25 08:18:23 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-10 15:23:27 -03:00
2025-08-08 15:34:36 -03:00
2025-12-02 20:38:18 +00:00
2025-12-02 20:38:18 +00:00
2025-12-02 20:38:18 +00:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-05-19 13:28:45 +00:00
2026-05-19 13:28:45 +00:00
2026-05-19 13:28:45 +00:00
2026-05-19 13:28:45 +00:00
2026-05-19 13:28:45 +00:00
2026-05-19 13:28:45 +00:00
2025-08-08 15:34:36 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-03-13 19:37:18 -03:00
2025-08-17 13:25:05 -03:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2026-07-14 10:07:58 +00:00
2026-07-14 10:07:58 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-07-14 10:07:58 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-07-13 18:21:15 +00:00
2025-08-17 13:25:05 -03:00
2026-07-15 11:00:37 +00:00
2026-07-14 10:07:58 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-07-14 10:07:58 +00:00
2026-07-15 11:00:37 +00:00
2025-08-17 13:25:05 -03:00
2026-06-01 22:19:14 +00:00
2026-06-23 14:40:13 +00:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2026-06-23 14:40:13 +00:00
2026-07-01 16:55:07 +00:00
2026-07-01 16:55:07 +00:00
2026-06-23 14:40:13 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-05-26 02:10:47 +00:00
2026-06-23 14:40:13 +00:00
2025-08-17 13:25:05 -03:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2026-06-03 19:29:26 +00:00
2026-04-15 03:47:19 +00:00
2026-04-15 03:47:19 +00:00
2026-02-25 10:45:14 -03:00
2026-02-25 10:45:14 -03:00
2026-03-10 11:19:26 -03:00
2026-07-15 11:00:37 +00:00
2026-05-26 02:10:47 +00:00
2025-08-17 13:25:05 -03:00
2026-05-26 02:10:47 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-04-15 03:47:19 +00:00
2024-05-07 16:36:13 -04:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2024-04-19 14:27:56 -07:00
2025-08-17 13:25:05 -03:00
2025-10-29 13:15:08 -03:00
2026-07-15 11:00:37 +00:00
2026-03-09 10:59:32 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-06-29 10:12:28 +00:00
2026-06-29 10:12:28 +00:00
2026-07-15 11:00:37 +00:00
2026-03-31 21:23:42 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-07-21 19:34:49 +00:00
2025-08-17 13:25:05 -03:00
2024-01-03 11:45:41 -05:00
2024-01-03 11:45:41 -05:00
2025-09-30 12:27:23 -03:00
2025-08-22 08:28:03 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-03-02 13:02:30 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2024-03-18 10:59:19 -04:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-07-15 11:00:37 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-06-23 14:40:13 +00:00
2025-08-17 13:25:05 -03:00
2026-03-18 16:25:06 +01:00
2026-03-18 16:25:06 +01:00
2026-03-18 16:25:06 +01:00
2025-08-17 13:25:05 -03:00
2026-06-08 17:22:53 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-07-15 11:00:37 +00:00
2026-07-06 15:46:44 +00:00
2026-07-06 15:46:44 +00:00
2026-07-06 15:46:44 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2026-03-23 18:45:15 -03:00
2025-08-17 13:25:05 -03:00
2026-08-14 15:58:14 +00:00
2026-07-15 11:00:37 +00:00
2024-03-18 10:59:19 -04:00
2025-08-17 13:25:05 -03:00
2026-05-20 20:51:56 +00:00
2026-05-20 20:51:56 +00:00
2026-07-15 11:00:37 +00:00
2026-01-29 12:11:13 -03:00
2026-06-10 12:02:29 +00:00
2025-08-17 13:25:05 -03:00
2026-03-12 23:33:29 -03:00
2026-03-11 14:21:28 -03:00
2026-03-11 14:21:28 -03:00
2026-03-26 01:35:10 +00:00
2026-03-26 01:35:10 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-22 09:52:44 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-08 15:34:36 -03:00
2025-08-08 15:34:36 -03:00
2026-06-23 14:40:13 +00:00
2024-09-05 16:00:32 -03:00
2026-07-01 16:55:07 +00:00
2025-08-17 13:25:05 -03:00
2026-07-15 11:00:37 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-20 01:47:28 -03:00
2026-07-15 11:00:37 +00:00
2026-07-15 11:00:37 +00:00
2025-08-20 18:01:22 -03:00
2026-07-15 11:00:37 +00:00
2025-02-05 17:09:19 +00:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-08-17 13:25:05 -03:00
2025-11-03 22:22:50 -03:00
2025-11-03 22:22:50 -03:00