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>
This commit is contained in:
1 parent
1f37291957
commit
313f63eb71
7 files changed
+561
-67
No files matched your search
@@ -88,6 +88,7 @@ The following VS Code settings are automatically imported when you use **Import
|
||||
| `files.autoSave` | `autosave` |
|
||||
| `files.autoSaveDelay` | `autosave.milliseconds` |
|
||||
| `files.insertFinalNewline` | `ensure_final_newline_on_save` |
|
||||
| `files.readonlyInclude` | `read_only_files` |
|
||||
| `files.simpleDialog.enable` | `use_system_path_prompts` |
|
||||
| `files.watcherExclude` | `file_scan_exclusions` |
|
||||
| `search.smartCase` | `use_smartcase_search` |
|
||||
@@ -173,14 +174,15 @@ Zed doesn’t import extensions or keybindings, but this import gets core editor
|
||||
You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run {#action zed::OpenSettingsFile} from the Command Palette to edit your settings file directly.
|
||||
|
||||
Here’s how common VS Code settings translate:
|
||||
| VS Code | Zed | Notes |
|
||||
| --- | --- | --- |
|
||||
| editor.fontFamily | buffer_font_family | Zed uses Zed Mono by default |
|
||||
| editor.fontSize | buffer_font_size | Set in pixels |
|
||||
| editor.tabSize | tab_size | Can override per language |
|
||||
| editor.insertSpaces | insert_spaces | Boolean |
|
||||
| editor.formatOnSave | format_on_save | Works with formatter enabled |
|
||||
| editor.wordWrap | soft_wrap | Supports optional wrap column |
|
||||
|
||||
| VS Code | Zed | Notes |
|
||||
| ------------------- | ------------------ | ----------------------------- |
|
||||
| editor.fontFamily | buffer_font_family | Zed uses Zed Mono by default |
|
||||
| editor.fontSize | buffer_font_size | Set in pixels |
|
||||
| editor.tabSize | tab_size | Can override per language |
|
||||
| editor.insertSpaces | insert_spaces | Boolean |
|
||||
| editor.formatOnSave | format_on_save | Works with formatter enabled |
|
||||
| editor.wordWrap | soft_wrap | Supports optional wrap column |
|
||||
|
||||
Zed also supports per-project settings. You can find these in the Settings Editor as well.
|
||||
|
||||
|
||||
Reference in new issue
Block a user