Dom Porada and Kirill Bulatov
887149bbdd
Ignore invalid file patterns individually ( #64525 )
...
## Objective
Prevent one invalid file pattern from discarding valid patterns or
causing settings loading to panic.
The pre-existing exclusion-matcher bug was reported during review of
#64492 (part of #64399 ).
## Solution
Ignore invalid entries individually and log their errors in
`file_scan_exclusions`, `file_scan_inclusions`, `file_types`,
`hidden_files`, `private_files`, and `read_only_files`.
Preserve valid inherited entries without changing `"..."`, replacement,
or empty list behavior. Valid brace inclusion patterns remain usable,
including when an alternative spans multiple directories.
## Testing
Reproduced matcher loss and inclusion and file type panic paths before
fixing them. Targeted tests pass on macOS for mixed, inherited,
replacement, empty, and all-invalid lists, including inherited `.git`
exclusions, private file protections, and inclusion rescans with brace
patterns.
Windows and Linux execution remains untested.
## 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
---
Release Notes:
- Fixed invalid file patterns discarding valid exclusions, hidden file
rules, or read-only rules, or causing inclusion settings to panic. Also
fixed invalid private file patterns discarding valid protections and
invalid file type patterns causing settings loading to panic.
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev >
2026-09-20 19:09:14 +00:00
..
2026-09-14 14:04:09 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 18:44:49 +00:00
2026-09-16 16:03:09 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 18:44:49 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 18:44:49 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-20 10:08:48 +00:00
2026-09-16 21:41:45 +00:00
2026-08-19 14:32:19 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-09 22:29:52 +00:00
2026-08-28 11:51:00 +00:00
2026-08-31 11:58:50 +00:00
2026-08-26 14:33:13 +00:00
2026-09-03 14:38:23 +00:00
2026-02-25 08:12:04 +01:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 19:53:58 +00:00
2026-08-27 16:21:41 +00:00
2026-06-05 10:32:57 +00:00
2026-09-15 09:58:45 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-28 18:06:41 +00:00
2026-09-18 18:44:49 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-26 14:33:13 +00:00
2026-08-20 10:08:48 +00:00
2026-04-24 10:29:51 +00:00
2026-09-17 08:49:31 +00:00
2026-05-13 23:35:10 +00:00
2026-09-08 07:12:28 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-27 12:55:42 +00:00
2026-08-09 22:29:52 +00:00
2026-09-17 08:49:31 +00:00
2026-09-07 19:01:41 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-07 16:23:05 +00:00
2026-09-18 11:24:01 +00:00
2026-06-05 19:24:28 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-11 09:13:44 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-07 19:01:41 +00:00
2026-09-07 19:01:41 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 10:40:43 +00:00
2026-08-27 20:11:28 +00:00
2026-09-18 19:53:58 +00:00
2026-02-19 18:57:49 +01:00
2026-09-07 15:18:49 +00:00
2026-07-30 12:59:16 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 19:53:58 +00:00
2026-09-17 08:49:31 +00:00
2026-08-20 10:08:48 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 10:50:41 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-20 08:26:45 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 16:37:56 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-26 21:36:59 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-20 10:08:48 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-20 19:09:14 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-16 16:03:30 +00:00
2026-09-18 18:44:49 +00:00
2026-09-18 18:44:49 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-27 16:21:41 +00:00
2026-09-09 14:31:14 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-26 14:33:13 +00:00
2026-09-17 01:46:02 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-16 16:02:58 +00:00
2026-09-09 13:47:28 +00:00
2026-09-16 16:04:13 +00:00
2026-09-09 14:31:14 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-02 18:21:25 +00:00
2026-09-11 21:33:11 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-16 16:04:24 +00:00
2026-08-20 10:08:48 +00:00
2026-09-08 21:44:06 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 18:44:49 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-28 03:28:04 +00:00
2026-09-12 19:03:48 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-16 16:03:09 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-06-13 05:21:05 +00:00
2026-09-18 19:53:58 +00:00
2026-09-07 19:01:41 +00:00
2026-09-18 10:40:43 +00:00
2026-08-28 11:51:00 +00:00
2026-09-17 08:49:31 +00:00
2026-09-09 14:55:56 +00:00
2026-07-23 22:46:06 +00:00
2026-09-10 17:54:38 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-07 15:18:49 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 10:24:51 +00:00
2026-09-07 19:01:41 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-11 09:13:44 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 10:50:41 +00:00
2026-08-20 10:08:48 +00:00
2026-08-31 11:41:34 +00:00
2026-08-24 10:41:04 +00:00
2026-09-20 19:09:14 +00:00
2026-09-19 09:32:40 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-06-23 09:33:47 +00:00
2026-09-19 09:32:40 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 07:17:01 +00:00
2026-07-20 11:17:43 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-08-20 10:08:48 +00:00
2026-09-17 08:49:31 +00:00
2026-08-28 03:28:04 +00:00
2026-09-17 08:49:31 +00:00
2026-09-09 09:09:25 +00:00
2026-09-17 08:49:31 +00:00
2026-09-19 01:57:44 +00:00
2026-09-19 01:57:44 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-18 16:34:33 +00:00
2026-09-07 15:18:49 +00:00
2026-08-28 18:05:57 +00:00
2026-09-11 15:19:53 +00:00
2026-09-17 08:49:31 +00:00
2026-07-29 20:59:24 +00:00
2026-08-27 16:21:41 +00:00
2026-09-11 15:19:53 +00:00
2026-05-28 19:43:30 +00:00
2026-09-16 21:41:45 +00:00
2026-09-17 08:49:31 +00:00
2026-09-19 02:12:46 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-20 19:09:14 +00:00
2026-09-17 08:49:31 +00:00
2026-09-15 15:27:26 +00:00
2026-09-17 08:49:31 +00:00
2026-09-10 06:33:43 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 09:17:09 +00:00
2026-09-17 08:49:31 +00:00
2026-09-16 16:03:50 +00:00
2026-09-20 19:09:14 +00:00
2026-09-07 19:01:41 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-16 16:00:19 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00
2026-09-17 08:49:31 +00:00