81b98cd
go: Add ability to run testable examples (#39390)
Click to expand commit body
See related discussion #39381.
<img width="724" height="488"
src="https://github.com/user-attachments/assets/4a69e13e-783f-45d7-99f4-e23c0415a781"
/>
Release Notes:
- Added ability to run Go Testable Examples
Lev Zakharov
created
ca89a40
zeta2 inspector: Plan prompt locally (#39811)
Click to expand commit body
Plans and displays the prompt locally before the response arrives.
Helpful while debugging prompt planning.
Release Notes:
- N/A
---------
Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Agus Zubiaga
and
Michael Sloan
created
f5884e9
audio: Move `log::info` into a global import (#39810)
Click to expand commit body
I didn't find a commit, but it's now required for all platforms, I got
this compile error with 0.207.3 tag
```
error: cannot find macro `info` in this scope
--> crates\audio\src\audio.rs:121:13
|
121 | info!("Output stream: {:?}", output_handle);
| ^^^^
|
help: consider importing this macro
|
1 + use log::info;
|
error: could not compile `audio` (lib) due to 1 previous error
```
Closes #ISSUE
Release Notes:
- N/A
Release Notes:
- N/A
Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Agus Zubiaga
and
Michael Sloan
created
ef42314
lsp: Serialize LSP notifications on background threads (#39403)
Click to expand commit body
This should reduce hiccups when opening large files.
Release Notes:
- N/A
Piotr Osiewicz
created
cd65648
settings ui: Fix some layout regressions (#39804)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
1e149b7
gpui: Add support for floating windows (#39702)
Click to expand commit body
Closes #ISSUE
This allows new windows like the Rules library or the Settings UI window
to appear floating on window managers like hyprland:
https://github.com/user-attachments/assets/628db7f9-4459-4601-85f1-789923831182
Left is with `WindowKind::Floating` and right is with
`WindowKind::Normal`
Release Notes:
- Added support for floating windows on x11 and wayland
Alvaro Parker
created
e0eeda1
inspector_ui: Align with title bar, other visual tweaks (#39697)
Click to expand commit body
# How
Few tweaks for the GPUI Inspector panel, including toolbar align with
title bar, buffer font for source link, few other layout, spacing and
wording tweaks.
Release Notes:
- N/A
# Preview
### Before
<img width="1286" height="602" alt="Screenshot 2025-10-07 at 19 33 20"
src="https://github.com/user-attachments/assets/515ddcdf-a2c8-4f5f-b37e-b1668df2147f"
/>
### After
<img width="1286" height="542" alt="Screenshot 2025-10-07 at 19 09 24"
src="https://github.com/user-attachments/assets/3a777974-3427-4545-afda-37fabcb012ba"
/>
Release Notes:
- Added Codestral edit predictions provider which can be enabled by adding an API key in the Mistral section of agent settings.

## Config
Get API key from https://console.mistral.ai/codestral and add it in the Mistral section of the agent settings.
```
"features": {
"edit_prediction_provider": "codestral"
},
"edit_predictions": {
"codestral": {
"model": "codestral-latest",
"max_tokens": 150
}
},
```
---------
Co-authored-by: Michael Sloan <michael@zed.dev>
David
and
Michael Sloan
created
0969308
Make FoldAtLevel commands discoverable in command palette (#39422)
Click to expand commit body
## Description
Fixes #39376
Add individual FoldAtLevel1-9 actions so users can find fold commands in
the command palette while keeping existing keybindings.
Migrating user keymaps is necessary to have the keybinds show in the command palette.
Closes #39376
### Changes
- `crates/editor/src/actions.rs` - Added FoldAtLevel1-9 action structs
- `crates/editor/src/editor.rs` - Implemented fold_at_level_1-9 handler
methods
- `crates/editor/src/element.rs` - Registered new actions
- `assets/keymaps/*.json` - Updated keybindings to use new individual
actions
### Other Approaches considered
- Adding #[serde(default)] to existing FoldAtLevel(u32) - wouldn't make
it discoverable
- Creating a single action with enumerated variants - idk about this
that well.
### Release Notes
Release Notes:
- Added Fold At Level 1-9 actions to the command palette
---------
Co-authored-by: HactarCE <6060305+HactarCE@users.noreply.github.com>
Munish Mummadi
and
HactarCE
created
c7d5afe
docs: Add missing docs for CommandInterceptResult fields (#39676)
Click to expand commit body
Document the `string` and `positions` fields to resolve TODO comments.
Release Notes:
- N/A
Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu
created
d6b1801
inspector_ui: Split out size from bounds string (#39703)
Click to expand commit body
# How
Tweak the way in which inspected element bounds and size are printed to
improved readability of GPUI Inspector data.
> [!note]
> It looks like the only place in the workspace where bounds are used
within formatted print is GPUI Inspector panel, but I decided to do not
alter [GPUI `geometry.rs` default
format](https://github.com/zed-industries/zed/blob/a7e7f460205bc6eaa397f20c1bcf8c4105d93403/crates/gpui/src/geometry.rs#L1579-L1587),
since adding multiline output and additional labels in there does not
feel like the beast approach, but maybe I'm wrong?
Release Notes:
- N/A
# Preview
<img width="1168" height="224" alt="Screenshot 2025-10-07 at 20 08 35"
src="https://github.com/user-attachments/assets/97753fc1-68d7-4cf8-ad92-afe85319f3d8"
/>
<img width="1168" height="228" alt="Screenshot 2025-10-07 at 20 09 24"
src="https://github.com/user-attachments/assets/beed2a92-0817-4ed2-bb62-4d7b931e8709"
/>
Bartosz Kaszubowski
created
7c55f71
Fix configuring shell in project settings (#39795)
Click to expand commit body
I mistakenly broke this when refactoring settings
Closes #39479
Release Notes:
- Fixed a bug where you could no longer configure `terminal.shell` in
project settings
Conrad Irwin
created
4684d6b
terminal: Fix escaping arguments when using CMD as the shell (#39701)
Click to expand commit body
A couple of caveats:
- We should not auto-escape arguments with Alacritty's `escape_args`
option if using CMD otherwise, the generated command will have way too
many escaped characters for CMD to parse correctly.
- When composing a full command for CMD, we need to put it in double
quotes manually: `cmd /C "activate.bat& pwsh.exe -C do_something"` so
that CMD executes the entire string as a sequence of commands.
- CMD requires `&` as a chaining operator for commands (`;` for other
shells).
Release Notes:
- N/A
Jakub Konka
created
578e7e4
settings_ui: Focus content controls when opened from nav bar (#39792)
a960db6
keymap editor: Adjust the "edit in keymap.json" button (#39789)
Click to expand commit body
Making its visuals and positioning more consistent with the same button
in the settings UI.
Release Notes:
- N/A
Danilo Leal
created
5a0f796
agent2: Expand auto-retries for completion errors (#39787)
Click to expand commit body
This PR expands our automatic retry behavior for certain classes of
completion errors (e.g., rate limit errors).
Previously this was only available when using burn mode.
We now auto-retry when:
- Using the Zed provider while on a token-based plan
- Using the Zed provider while on a legacy plan with burn mode enabled
- Using a non-Zed provider
Release Notes:
- Expanded automatic retry behavior for errors in the Agent. Errors
classified as "retryable" (such as rate limit errors) will now
automatically be retried when:
- Using the Zed provider while on a token-based plan
- Using the Zed provider while on a legacy plan with burn mode enabled
- Using a non-Zed provider
---------
Co-authored-by: David Kleingeld <davidsk@zed.dev>
Marshall Bowers
and
David Kleingeld
created
604d566
file_finder: Fix path matching on starting slash (#39480)
Click to expand commit body
These changes update the way the file finder decides wether to only look
for an absolute path or for a relative path too.
When the provided query started with a slash (`/`) the file finder would
assume this to be an absolute path so would always try to find an
absolute path and return no matches if none was found. This is meant to
support situtations where, for example, a CLI tool might output the
absolute path of a file and the user can copy and paste that in the file
finder.
However, it's should be possible to use slash (`/`) at the start of the
query to specify that only relative files inside a folder should be
matched, which would not work in this scenario.
With these changes, the file finder will first check if the path is
absolute and, if it is and no absolute matches were found, it'll still
try to find relative matches, otherwise it'll simply look for relative
matches.
Closes #39350
Release Notes:
- Fixed project files matches when using slash (`/`) at the start in
order to consider relative paths
---------
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Dino
,
Piotr Osiewicz
, and
Piotr Osiewicz
created
1d1c799
Reland "Remove cx from ThemeSettings" (#39720)
dd3b65f
acp: Don't display failed terminal call on display only terminals (#39780)
Click to expand commit body
We don't get an ExitStatus from a remote terminal, so this check was
failing.
Ideally we move all of this to just needing an exit code, but we will
have to revisit that later.
Release Notes:
- N/A
Update Vim's `%` motion to first attempt finding the exact matching
bracket/tag under the cursor, then fall back to the previous
nearest-enclosing logic if none is found. This prevents accidentally
jumping to nested pairs in languages like TSX and Svelte where `<>`,
`</>`, and `/>` are also treated as brackets.
Closes #39368
Release Notes:
- Fixed an edge case with the `%` motion in vim, where the cursor could
end up in a closing HTML tag instead of the matching bracket
Dino
created
a9455eb
migrator: Avoid attempting to migrate empty content (#39771)
Click to expand commit body
This commit fixes an issue where opening zed using `--user-data-dir`
with an empty directory would cause the first run to display a "Failed
to migrate settings" error.
This was caused by the migrator attempting to migrate an empty string,
so if that's the case, we'll simply return `Ok(None)` and avoid
attempting to migrate anything at all.
Relates to #39400
Release Notes:
- N/A
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Dino
and
Smit Barmase
created
db3c186
language_model: Add image decoding support for BMP and TIFF image formats (#39767)
Click to expand commit body
Related: #39745
Release Notes:
- Added support for pasting TIFF and BMP images in the agent panel.
Finn Evers
created
7185670
agent2: Fix `test_save_load_thread` for Windows paths (#39753)
Click to expand commit body
Use path! macro for platform-specific path formatting in test
assertions, fixing hardcoded Unix-style paths that failed on Windows.
Release Notes:
- N/A
Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
And remove the feature flag for now.
Release Notes:
- N/A
Mikayla Maki
created
4152942
markdown: Add support for `HTML` block quotes (#39755)
Click to expand commit body
This PR adds support for HTML block quotes, that also allows you to have
nested variant of it.
<img width="1441" height="804" alt="Screenshot 2025-10-08 at 10 25 57"
src="https://github.com/user-attachments/assets/4e1da766-fb54-4e87-8654-1ea14330bc97"
/>
Code example used in screenshot:
```html
<blockquote>
<p>
Words can be like X-rays, if you use them properly—they’ll go through
anything. You read and you’re pierced.
</p>
<blockquote>
<p>
lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.
</p>
</blockquote>
</blockquote>
```
Release Notes:
- Markdown: Added support for `HTML` block quotes
Remco Smits
created
bbf4bfa
Implement the unimplemented setting (#39747)
1265b22
Update doc comments for `agent_buffer_font_size` (#39743)
Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/39468.
Unlike `agent_ui_font_size`, the `agent_buffer_font_size` setting does
have a default value, which means it does not fall back to the regular
UI font size, but rather to its default value.
Release Notes:
- N/A
Danilo Leal
created
294ca25
settings ui: Add another batch of UX fixes and improvements (#39742)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
5c7907a
settings_ui: Pre preview launch cleanup (#39733)
d615525
ui: Rename and simplify NumberField component (#39731)
Danilo Leal
created
8bf37dd
settings ui: Add more UX improvements (#39700)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
8cb67ec
remote: Fix opening a remote terminal failing on certain systems (#39715)
Click to expand commit body
Closes #38538
Release Notes:
- Fixed an issue where opening a remote terminal failed on systems like
BusyBox, Alpine, Amazon Linux 2, some CentOS images, etc., due to an
invalid option 'C'.
Smit Barmase
created
cd67941
settings_ui: Preserve selected nav entry when changing files (#39721)
669db62
settings ui: Move selected nav bar entry on scroll (#39633)
Click to expand commit body
This PR makes selecting a sub-entry in the settings UI nav bar scroll to
that section in the settings page. It also updates the selected
sub-entry when scrolling through a settings page to match what a user is
viewing on the page.
I also added a new helper method to `ScrollHandle` type called
`scroll_to_top_of_item` that scrolls until an item is the top element
visible.
Release Notes:
- N/A
Anthony Eid
created
41f1835
project_panel: Fix clicking away to create file or directory doesn't create it (#39716)
Click to expand commit body
Closes #38919
Now, when unfocusing the filename editor while creating a file or
directory in the project panel, it will create it by default unless the
name is empty or already exists.
Release Notes:
- Improved behavior where unfocusing while creating a new file or
directory in the project panel now creates it instead of discarding it.
Smit Barmase
created
791ba9c
settings_ui: Soft fail on no default & fix language default loading (#39709)
Did not found any code reference or direct dependants of this package in
the workspace.
Release Notes:
- N/A
Bartosz Kaszubowski
created
15580a8
windows: Fix handling of AltGr to avoid conflicts (#38925)
Click to expand commit body
The previous modifier detection treated `AltGr` presses as `Ctrl+Alt`,
which broke entering characters produced by AltGr. For example, on a
Hungarian layout `{` is typed with `AltGr+B`; our code saw that as
`Ctrl+Alt+B` and the keybind took precedence, so the character couldn’t
be entered.
On Windows, AltGr isn’t a first-class modifier. It’s emulated as a
combination of `Right Alt (VK_RMENU)` plus a synthetic `Left Ctrl
(VK_LCONTROL)` press. When users press AltGr, `GetKeyState` reports both
Ctrl and Alt as down, which makes AltGr indistinguishable from a real
`Ctrl+Alt` chord if we only look at aggregate modifier state.
Fix: detect the AltGr pattern by checking `VK_RMENU && VK_LCONTROL`.
When that pattern is present, treat it as text-entry intent and suppress
`control` and `alt` in `current_modifiers()`. This prevents
AltGr-produced characters from colliding with `Ctrl+Alt` keybinds while
keeping other modifiers intact.
Limitation: there is no Windows API to tell whether the active layout
actually has AltGr. As a result, on non-AltGr layouts (e.g. US),
pressing `Right Alt + Left Ctrl` will be interpreted as AltGr and will
not trigger `Ctrl+Alt` keybinds. This is an acceptable trade-off to
ensure AltGr layouts can reliably enter characters; users can still
invoke `Ctrl+Alt` keybinds using `Left Alt` or by choosing bindings that
avoid common AltGr pairs.
I based this on https://github.com/zed-industries/zed/pull/36115 after
trying other different approaches, but this one is a bit more specific.
Does this approach make sense, or is slightly breaking US input in favor
of fixing international input a no-go? I think the benefit - being able
to type certain characters _at all_ - outweighs the shortcomings.
Otherwise, there's a way to detect if the keyboard layout uses AltGr or
not, but it's quite hacky, and involves reading the registry to find the
current layout dll's name, opening that dll, manually declaring struct
layouts that it uses, then parsing out the AltGr flag from a function
call result. I don't think that's worth it, but if needed, I can give
that a shot, let me know.
Release Notes:
- windows: Fixed handling of AltGr to avoid keybinds preventing
character input
Antal Szabó
created
f7bb22f
settings ui: Add missing setting elements (#39644)
Click to expand commit body
Added the following settings to the UI
Editor Page - Scrollbar Section (9 settings)
- Show
- Cursors
- Git Diff
- Search Results
- Selected Text
- Selected Symbol
- Diagnostics
- Horizontal Scrollbar
- Vertical Scrollbar
Editor Page - Minimap Section (6 settings)
- Show
- Display In
- Thumb
- Thumb Border
- Current Line Highlight
- Max Width Columns
Editor Page - Editor Behavior Section (3 settings)
- Expand Excerpt Lines
- Excerpt Context Lines
- Minimum Contrast For Highlights
Debugger Page (7 settings)
- Stepping Granularity
- Save Breakpoints
- Timeout
- Dock
- Log DAP Communications
- Format DAP Log Messages
- Button
Panels Page - Git Panel Section (3 settings)
- Button
- Dock
- Default Width
Collaboration Page - Experimental Section (4 settings)
- Auto Microphone Volume
- Auto Speaker Volume
- Denoise
- Legacy Audio Compatible
Release Notes:
- N/A