> “Smart quotes” are the ideal form of quotation marks and apostrophes,
and are commonly curly or sloped. "Dumb quotes," or straight quotes, are
a vestigial constraint from typewriters when using one key for two
different marks helped save space on a keyboard.
Also helps us be consistent. I’m going to make a PR to our marketing
site to fix these issues as well, to bring further consistency to our
copy (docs / marketing / otherwise). Starting with v0.5.0 and up,
[`smart-punctuation`](https://github.com/rust-lang/mdBook/blob/6bf7fadc295a862f1f4b2f2d4a9c4c0b1e998dff/CHANGELOG.md#config-changes)
is enabled by default, so we just need this temporarily.
Good read: https://smartquotesforsmartpeople.com/
---
Release Notes:
- N/A
Three pieces of state combined to break `path:line` queries when the
target file was already open:
- The `CreateNew` lookup ran against `query.raw_query.as_str()`, so a
path with a row suffix never matched the existing file and a stray
`Create file: foo.rs:3` row was always pushed.
- `calculate_selected_index` applied `skip_focus_for_active_in_search`
even when the query carried a row/column, jumping past the file the user
was asking to navigate inside.
- The preserved-selection path only invalidated on `path_query()`
changes. Appending `:3` to a typed-out path therefore kept the
previously skipped-to fuzzy neighbor selected, hiding the fix above when
the query was built up character by character.
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#55551
Release Notes:
- Fixed File Finder offering to create a file instead of navigating to a
line when the target file is already open
JSX and TSX only treated the dot as a tag-name character during
linked-editing, so renaming a tag to a custom element name such as
`custom-el` stopped mirroring the closing tag at the dash.
A follow-up to https://github.com/zed-industries/zed/pull/43179, really.
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#58553.
Release Notes:
- Added support for linked-editing of custom elements in JSX/TSX
---------
Co-authored-by: MrSubidubi <finn@zed.dev>
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#52205.
Release Notes:
- Enabled Emmet completions in return and arrow function bodies for
JSX/TSX
---------
Co-authored-by: MrSubidubi <finn@zed.dev>
I ran into this while conducting some tests. If you search for a channel
name in the Collab Panel and then try to “Add a Contact,” it seeds the
query with your search term from the current contents of that channel
search editor.
Opted to just drop that method altogether as it’s not being used
anywhere else.
## Self-Review Checklist:
- [x] 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](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
- [ ] Performance impact has been considered and is acceptable
---
Release Notes:
- Fixed the contact finder inheriting the channel search query in the
Collab Panel
The `go-subtest` task template wrapped the `-run` arg in single quotes
for shell safety. This works for Run Test (terminal strips quotes), but
Debug Test sends the arg through Delve’s DAP protocol with no shell
involved, so the literal quote characters ended up in the regex and
prevented any match.
All other Go task templates (`go-test`, `go-testify-suite`,
`go-table-test-case`) use the backslash-escaped format which `GoLocator`
already knows how to handle. Align the `go-subtest` template to the same
format.
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
Closes#53230.
Release Notes:
- Fixed Debug Test for Go subtests
---------
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Fresh new updates from OpenCode dropped recently.
Closes#59225.
## Self-Review Checklist:
- [x] 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](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
- [ ] Performance impact has been considered and is acceptable
Release Notes:
- Added GLM 5.2 + Kimi K2.7 Code (OpenCode Go) and DeepSeek V4 Pro
(OpenCode Zen); removed/restricted models deprecated upstream (MiniMax
M3 Free removed; GLM 5, Kimi K2.5, MiniMax M2.5 now Zen-only)
The `ToggleInlineValues` action was added when inline value hints were
introduced, but the action was never registered, so it was not
dispatchable: it never appeared in the command palette and any
keybinding bound to it had no effect.
Follow-up to #28656.
Self-Review Checklist:
- [x] 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](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
- [ ] Performance impact has been considered and is acceptable
Closes#58890.
Release Notes:
- Fixed “editor: toggle inline values” not appearing in the command
palette or responding to keybindings
Bash listed `fish` in `modeline_aliases`, so a `filetype=fish` modeline
resolved to Shell Script before the real [Fish
language](https://zed.dev/extensions/fish) could match by name or
grammar. Fish is intentionally non-POSIX, so the Bash grammar is the
wrong fit here.
| Header | After |
|--------|--------|
| <img width="1912" height="1237" alt="image"
src="https://github.com/user-attachments/assets/ed212a24-92aa-4ede-a432-47c6c6724f08"
/> | <img width="1732" height="1125" alt="image"
src="https://github.com/user-attachments/assets/934140b3-9473-4cca-a3e5-84aa3c4d827a"
/> |
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#58532.
Release Notes:
- Dropped `fish` from `modeline_aliases` which forced the file to be
detected as Shell Script instead of Fish
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 is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#55939.
Release Notes:
- Fixed commit modal buttons being hidden for `ui_font_size` values
I use the One Dark theme, so to actually test if my fix worked, I had to
also do:
```jsonc
"experimental.theme_overrides": {
"warning": "#ff0000",
"modified": "#00ff00",
},
```
| Before | After |
|--------|--------|
| <img width="676" height="254" alt="image"
src="https://github.com/user-attachments/assets/a2831667-1113-49ac-b6aa-1221c71bf997"
/> | <img width="299" height="137" alt="image"
src="https://github.com/user-attachments/assets/ad6e85aa-ba24-47ad-b69d-6d0c3aa3a407"
/> |
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 is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#57443.
Release Notes:
- Fixed Project Panel git status indicator showing modified files with a
warning color instead of the modified color
Typing `@` immediately after `(`, `[`, or `{` did not open the Agent
Panel’s @-mention completion menu, so `(@file)`, `[@file]`, and
`{@file}` were unusable. This has been bothering me for quite some time
now. Overall, I believe this is a QoL improvement, albeit a small one.
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Release Notes:
- Fixed the Agent Panel’s @-mention menu not appearing when `@`
immediately follows `(`, `[`, or `{`.
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Settings search treated multi-word queries as OR, so “tab size” matched
any document whose words contained a prefix of “tab” or “size” --
flooding results with unrelated entries like “Show Tab Bar” and “Maximum
Tabs”.
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#56244.
Release Notes:
- Fixed settings UI search returning unrelated results for multi-word
queries
- The Inno Setup installer requires tasks to be specified with the
`/MERGETASKS` flag instead of bare arguments.
- Removed the `quicklaunchicon` task as it’s no longer relevant for
modern Windows 10 and up.
Ref: https://zed.dev/docs/installation#windows-1
Ref: https://documentation.help/Inno-Setup/topic_setupcmdline.htmCloses#47570.
Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- Fixed Windows installer task arguments syntax
I might turn this into a big PR with multiple fixes. So no, this is not
going stale. I’m updating this as and when I find broken refs or stale
content.
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Some language servers (notably `vtsls` with `completeFunctionCalls`)
update `insertText/textEdit` during `completionItem/resolve` to add
snippet content like function call parentheses. Previously,
`Completion.new_text` was only set from the initial completion response
and never re-derived after resolve, so the snippet text was silently
discarded.
Re-derive `new_text` from the resolved `lsp_completion`. Only the text
content is updated -- replace/insert ranges are left as anchors from the
original response since the LSP ranges in the resolved text_edit are
stale when completions are cached across keystrokes (re: #34094).
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 is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
Closes#53275.
Release Notes:
- Fixed the `vtsls` `completeFunctionCalls` setting being ignored
Split the shared `AgentFontSize` in-memory global into separate
`AgentBufferFontSize` and `AgentUiFontSize` globals. Previously, both
`adjust_agent_ui_font_size` and `adjust_agent_buffer_font_size` read
from and wrote to the same global, so calling them back-to-back in
`handle_font_size_action` applied the delta twice.
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 is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
Closes#53368.
Release Notes:
- Fixed Agent Panel font size incrementing by 2px instead of 1px
When opening a terminal in a remote project, skip local-only path
operations (home dir fallback, shell expansion, is_dir checks) so the
remote shell opens in the remote user’s home directory by default.
Closes#49613.
Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- Prevent local path resolution for remote terminals
Closes#48642.
- [ ] Tests or screenshots needed? - Tests written by AI. Not sure if
the test suite is setup correctly. I’ll come back later and see if the
tests are utter BS or not.
- [ ] Code Reviewed
- [x] Manual QA
Release Notes:
- Handle `menu::SecondaryConfirm` properly in the terminal
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
The Dev Container [metadata
reference](https://containers.dev/implementors/json_reference/#port-attributes)
defines all five `PortAttributes` fields (`elevateIfNeeded`, `label`,
`onAutoForward`, `protocol`, `requireLocalPort`) as optional with
defined defaults. The struct required all of them, causing
deserialization failures for any `portsAttributes` entry that omitted a
field.
Add `#[serde(default)]` to each field, wrap `label` and `protocol` in
`Option<T>` (spec default: not set), and derive `Default` on
`OnAutoForward` with `Notify` as the default variant (spec default:
`notify`). The bool fields already default to false via
`serde(default)`, matching the spec.
Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable
Closes#53686.
Release Notes:
- Made all `PortAttributes` fields optional according to the Dev
Container spec
Closes#50170.
Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- Enable parser options individually to avoid rendering issues
The main intention behind this change is to support uploading these
files
to GitHub. `.miniprof` is not a supported extension by GitHub, but
`.json` is.
The only “downside” to this change is that the cleanup process will have
to look
for `.miniprof` files AND `.miniprof.json` files. Maybe we can remove
that change
at a later date?
Ref:
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files
Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- Changed miniprofiler file extension to `.miniprof.json`
If I follow the steps outlined in https://zed.dev/docs/development/linux
then `cargo run` on my Fedora workstation fails because the install
script is missing `libva-devel` as a required dependency under `dnf` /
`yum` sections.
Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- N/A
Closes#50261.
Before you mark this PR as ready for review, make sure that you have:
- ~[ ] Added a solid test coverage and/or screenshots from doing manual
testing~ N/A
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- N/A
Move general type identifier rules before class-specific ones to ensure
proper precedence in the syntax highlighting query.
Closes#49226.
Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- Fixed an issue where class names were not highlighted correctly in
JavaScript files
Following up from https://github.com/zed-industries/zed/pull/50061: when
connecting to an ACP adapter fails before any thread is active, errors
would not display in the Agent Panel. Falling back to
`handle_load_error` to show the error UI properly as it already handles
this.
Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- Added fallback error handling for connect failures in the Agent Panel
Previously only `x86_64` Windows used ZIP archives, but ARM64 Windows
builds also use ZIP format.
Closes#50039.
> [!NOTE]
> The P1 is two-fold: the user cannot download the ZIP file on Windows
ARM. BUT -- the Agent Panel is stalled because of that. This ONLY makes
it so that the ZIP download doesn’t fail, but if for some reason the
download fails, the panel is genuinely stuck with no recovery path.
Every restart attempts the same download, hits the same GZIP error, and
silently drops it again.
Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- Broaden Windows asset detection to all architectures
When copying multiple selections with copy-and-trim, create a single
clipboard selection spanning the original buffer range rather than one
selection per trimmed line. This preserves correct paste behavior in Vim
mode when pasting trimmed content.
Closes#48869.
Release Notes:
- Fixed clipboard selection range for multi-line copy-and-trim
---------
Co-authored-by: dino <dinojoaocosta@gmail.com>
- Documentation URLs have been updated to point to `code.claude.com`
instead. This’ll prevent an unnecessary redirect for everyone.
- Added note about Agent teams feature not yet supported.
Closes#49663.
Before you mark this PR as ready for review, make sure that you have:
- ~[ ] Added a solid test coverage and/or screenshots from doing manual
testing~ N/A
- ~[ ] Done a self-review taking into account security and performance
aspects~ N/A
- ~[ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)~
N/A
Release Notes:
- N/A
---------
Co-authored-by: Katie Geer <katie@zed.dev>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove tracking of editor width in buffer search, removing the behavior
where the UI icons used in the search bar would be hidden if the search
query need to fill the whole element's width.
Closes#49446.
Release Notes:
- Don’t hide UI icons in buffer search if search query is too large
Co-authored-by: dino <dinojoaocosta@gmail.com>
Seems like a small oversight, or rather, we didn’t have this discussion
at that point? Either way @JosephTLyons feel free to merge once you
confirm this is the intended URL.
Closes#49119.
Release Notes:
- N/A
With #47768, all image pills automatically got snapped to the end of the
prompt message. This behavior is unexpected as other pills (`@symbol`,
`@thread` et al) respect the cursor position.
Closes#48731.
- [ ] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA
Release Notes:
- Insert images at cursor position in the Agent Panel
The `alt-tab` keybinding doesn’t work properly under the `AgentPanel`
context on Windows and certain Linux distros, so `alt-l` is provided as
an alternative for the same action.
In my testing, I could not trigger the `AcpThread > Editor` context, but
I added the keybinding there too just in case.
Closes#48347.
Release Notes:
- Added an alternate keybinding for `agent::CycleFavoriteModels` on
Linux and Windows to prevent conflict with global app switcher
The previous URL pointed to the model access page which no longer exists
(not a 404, tho). The model catalog page is the current location for
selecting and requesting access to Bedrock models.
| Before | After |
|--------|--------|
| <img width="1732" height="1125" alt="Screenshot 2026-02-04 at 12 50
13"
src="https://github.com/user-attachments/assets/f513e7c9-aa70-439a-afd0-ef8177ada463"
/> | <img width="1732" height="1125" alt="Screenshot 2026-02-04 at 12 52
11"
src="https://github.com/user-attachments/assets/6609215e-1bbb-4ed1-b57d-422ed7893498"
/> |
Release Notes:
- Fixed Bedrock model catalog URL in Agent Panel settings
Waiting is usually followed by “for,” which would make the label too
wordy. Awaiting is transitive and requires a direct object, in this case
your confirmation.
Really not a crazy change, but something that has been bothering me for
quite some time now. 😅
Release Notes:
- Improved wording of confirmation label text in agent thread
Warn users to review and remove secrets from logs and settings before
posting them in bug reports and crash reports.
Release Notes:
- N/A
---------
Co-authored-by: John D. Swanson <swannysec@users.noreply.github.com>
We added support for it in
https://github.com/zed-industries/zed/pull/45423. It’s already in
preview, but not yet in stable. So I’m going to keep this in my drafts
till then.
Release Notes:
- N/A
This is already noted in our `default-macos.json`, but was never
surfaced in our docs for some reason. A user noted their LSP completions
were not working because they were not aware of the conflicting global
shortcut.
Ref:
https://github.com/zed-industries/zed/issues/44970#issuecomment-3664118523
Release Notes:
- N/A