6e762d9
Revert "Remove `into SelectionEffects` from .change_selections"
Click to expand commit body
This reverts commit 28380d714d6dd32f5d7e242d690483714fa3f969.
Conrad Irwin
created
28380d7
Remove `into SelectionEffects` from .change_selections
Click to expand commit body
In #32656 I generalized the argument to change selections to allow
controling both the scroll and the nav history (and the completion
trigger).
To avoid conflicting with ongoing debugger cherry-picks I left the
argument as an `impl Into<>`, but I think it's clearer to make callers
specify what they want here.
I converted a lot of `None` arguments to `SelectionEffects::no_scroll()`
to be exactly compatible; but I think many people used none as an "i
don't care" value in which case Default::default() might be more
appropraite
Conrad Irwin
created
f338c46
Fix line indices when using a selection in the context (#33549)
Click to expand commit body
Closes #33152.
The label for a file selection context had an off-by-one error on line
indices. This PR adjusts that.
Before:
<img width="1072" alt="Screenshot 2025-06-27 at 20 55 28"
src="https://github.com/user-attachments/assets/da0be503-056b-442b-9a79-38cf504d8a44"
/>
After:
<img width="1090" alt="Screenshot 2025-06-27 at 20 49 35"
src="https://github.com/user-attachments/assets/f98df57a-8f07-4ea5-a06b-a4b6fb8c2e4e"
/>
Release Notes:
- Fixed a off-by-one error on the line indices when using a selection as
context for the agent,
Alejandro Fernández Gómez
created
5fbb7b0
copilot: Only set Copilot-Vision-Request header for vision requests (#33552)
Click to expand commit body
Closes #31951
The fix is copied and translated from copilot chat actual implementation
code:
https://github.com/microsoft/vscode-copilot-chat/blob/ad7cbcae9a964e8efb869bf1426999e56ea63cf0/src/platform/openai/node/fetch.ts#L493C1-L495C3
Release Notes:
- Fix copilot failing due to missing `Copilot-Vision-Request` from
request.
Umesh Yadav
created
f12b0dd
Touch up extension DAP schemas fix (#33548)
Click to expand commit body
Updates #33546
Release Notes:
- N/A
Co-authored-by: Piotr <piotr@zed.dev>
Release Notes:
- remoting: Fix a crash on the remote side when encountering files from
before 1970.
Conrad Irwin
created
c9ce4ae
Fix debug adapters from extensions not being picked up (#33546)
Click to expand commit body
Copy the debug adapter schemas so that they're available to the
extension host, like we do for other extension assets.
Release Notes:
- N/A
Cole Miller
created
01dfb6f
Respect server capabilities on queries (#33538)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/33522
Turns out a bunch of Zed requests were not checking their capabilities
correctly, due to odd copy-paste and due to default that assumed that
the capabilities are met.
Adjust the code, which includes the document colors, add the test on the
colors case.
Release Notes:
- Fixed excessive document colors requests for unrelated files
From
https://github.com/zed-industries/zed/pull/10831#issuecomment-2078523272
> I agree with not prefilling the search bar with a multiline query.
Not sure if it's a bug that a one-line visual line selection does not
get pre filled, this PR corrects the query to use the visual line
selection instead of the 'normal' selection
Release Notes:
- N/A
5brian
created
7432e94
Add `element_selection_background` highlight to theme (#32388)
Click to expand commit body
Closes #32354
The issue is that we render selections over the text in the agent panel,
but under the text in editor, so themes that have no alpha for the
selection background color (defaults to 0xff) will just occlude the
selected region. Making the selection render under the text in markdown
would be a significant (and complicated) refactor, as selections can
cross element boundaries (i.e. spanning code block and a header after
the code block).
The solution is to add a new highlight to themes
`element_selection_background` that defaults to the local players
selection background with an alpha of 0.25 (roughly equal to 0x3D which
is the alpha we use for selection backgrounds in default themes) if the
alpha of the local players selection is 1.0. The idea here is to give
theme authors more control over how the selections look outside of
editor, as in the agent panel specifically, the background color is
different, so while an alpha of 0.25 looks acceptable, a different color
would likely be better.
CC: @iamnbutler. Would appreciate your thoughts on this.
> Note: Before and after using Everforest theme
| Before | After |
|-------| -----|
| <img width="618" alt="Screenshot 2025-06-09 at 5 23 10 PM"
src="https://github.com/user-attachments/assets/41c7aa02-5b3f-45c6-981c-646ab9e2a1f3"
/> | <img width="618" alt="Screenshot 2025-06-09 at 5 25 03 PM"
src="https://github.com/user-attachments/assets/dfb13ffc-1559-4f01-98f1-a7aea68079b7"
/> |
Clearly, the selection in the after doesn't look _that_ great, but it is
better than the before, and this PR makes the color of the selection
configurable by the theme so that this theme author could make it a
lighter color for better contrast.
Release Notes:
- agent panel: Fixed an issue with some themes where selections inside
the agent panel would occlude the selected text completely
Co-authored-by: Antonio <me@as-cii.com>
Release Notes:
- search: Pasted newlines are now rendered as "\n" (with an underline),
instead of line-wrapping. This should make it much clearer what you're
searching for.
<img width="675" alt="Screenshot 2025-06-27 at 00 34 52"
src="https://github.com/user-attachments/assets/67275bc6-bec1-463f-b351-6b9ed0a6df81"
/>
Closes #33438
Release Notes:
- git: Use git cli to perform checkouts (to avoid a crash seen in
libgit2)
Conrad Irwin
created
9e2023b
editor: Fix editor tests from changing on format on save (#33532)
Click to expand commit body
Use placeholder to prevent format-on-save from removing whitespace in
editor tests, which leads to unnecessary git diff and failing tests.
cc: https://github.com/zed-industries/zed/pull/32340
Release Notes:
- N/A
Smit Barmase
created
3ab4ad6
language_models: Use `JsonSchemaSubset` for Gemini models in OpenRouter (#33477)
Click to expand commit body
Closes #33466
Release Notes:
- N/A
Umesh Yadav
created
e3ce061
collab: Lookup avatars by GitHub ID instead of username (#33523)
Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/19207
This will correctly show Avatars for recently renamed/deleted users and
for enterprise users where the username avatar url triggers a redirect
to an auth prompt. Also saves a request (302 redirect) per avatar.
Tested locally and avatars loaded as expected.
Release Notes:
- N/A
https://github.com/user-attachments/assets/81da68fe-bbc5-4b23-8182-923c752a8bd2
* Removes all extra elements: headers, buttons, to simplify the menu
navigation approach and save space.
Implements the keyboard navigation and panel toggling.
* Keeps the status icon and the server name, and their ordering approach
(current buffer/other) in the menu.
The status icon can still be hovered, but that is not yet possible to
trigger from the keyboard: future ideas would be make a similar side
display instead of hover, as Zeta menu does:

* Allows to start (if all are stopped) and stop (if some are not
stopped) all servers at once now with the button at the bottom
Release Notes:
- N/A
Kirill Bulatov
created
2178f66
agent_ui: Rename MaxModeTooltip to BurnModeTooltip (#33521)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Umesh Yadav
created
338a739
Fix blend alpha colors with editor background in inline preview (#33513)
Click to expand commit body
Closes #33505
## Before
<img width="434" alt="Screenshot 2025-06-27 at 12 22 57"
src="https://github.com/user-attachments/assets/ac215a39-b3fe-4c9e-bd7d-0d7568d5fd1f"
/>
## After
<img width="441" alt="Screenshot 2025-06-27 at 12 22 47"
src="https://github.com/user-attachments/assets/28218ed6-c1aa-4d3f-a268-def2fa9f0340"
/>
Release Notes:
- Fixed inline color previews not correctly blending alpha/transparency
values with the editor background
ddoemonn
created
4c2415b
editor: Use `em_advance` everywhere for horizontal scroll position computations (#33514)
Click to expand commit body
Closes #33472
This PR fixes some regressions that were introduced in
https://github.com/zed-industries/zed/pull/32558, which updated the
editor scrolling to use `em_advance` instead of `em_width` for the
horizontal scroll position calculation.
However, not all occurrences were updated, which caused issues with wrap
guides and some small stuttering with horizontal autoscroll whilst
typing/navigating with the keyboard.
Release Notes:
- Fixed an issue where horizontal autoscrolling would stutter and indent
guides would drift when scrolling horizontally.
Closes #10454
Implements SVG file preview capability similar to the existing markdown
preview.
- Adds `svg_preview` crate with preview view and live reloading upon
file save.
- Integrates SVG preview button in quick action bar.
- File preview shortcuts (`ctrl/cmd+k v` and `ctrl/cmd+shift+v`) are
extension-aware.
Release Notes:
- Added SVG file preview, accessible via the quick action bar button or
keyboard shortcuts (`ctrl/cmd+k v` and `ctrl/cmd+shift+v`) when editing
SVG files.
Ron Harel
created
6c46e11
Cleanup remaining references to max mode (#33509)
Click to expand commit body
Release Notes:
- N/A
Ben Brandt
created
fbb5628
Reset selection goal after helix motion (#33184)
Click to expand commit body
Closes #33060
Motions like `NextWordStart` don't reset the selection goal in vim mode
`helix_normal` unlike in `normal` which can lead to the cursor jumping
back to the previous horizontal position after going up or down.
Release Notes:
- N/A
Closes #23527
Closes #30183
Closes some Discord chats
Release Notes:
- vim: Motions now push to the jump list using the same logic as vim
(i.e.
`G`/`g g`/`g d` always do, but `j`/`k` always don't). Most non-vim
actions
(including clicking with the mouse) continue to push to the jump list
only
when they move the cursor by 10 or more lines.
Conrad Irwin
created
ba1c05a
keymap: Add ability to update user keymaps (#33487)
Click to expand commit body
Closes #ISSUE
The ability to update user keybindings in their keymap is required for
#32436. This PR adds the ability to do so, reusing much of the existing
infrastructure for updating settings JSON files.
However, the existing JSON update functionality was intended to work
only with objects, therefore, this PR simply wraps the object updating
code with non-general keymap-specific array updating logic, that only
works for top-level arrays and can only append or update entries in said
top-level arrays. This limited API is reflected in the limited
operations that the new `update_keymap` method on `KeymapFile` can take
as arguments.
Additionally, this PR pulls out the existing JSON updating code into its
own module (where array updating code has been added) and adds a
significant number of tests (hence the high line count in the diff)
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
2823771
Add design improvements to the LSP popover (#33485)
Click to expand commit body
Not the ideal design just yet as that will probably require a different
approach altogether, but am pushing here just some reasonably small UI
adjustments that will make this feel slightly nicer!
Release Notes:
- N/A
When starting on the newline character at the end of a line the helix
word motions select that character, unlike in helix itself. This makes
it easy to accidentaly join two lines together.
Also, word motions that go backwards should stop at the start of a line.
I added that.
Release Notes:
- helix: Fix edge-cases with word motions and newlines
fantacell
created
35863c4
debugger: Fix treatment of node-terminal scenarios (#33432)
Click to expand commit body
- Normalize `node-terminal` to `pwa-node` before sending to DAP
- Split `command` into `program` and `args`
- Run in external console
Release Notes:
- debugger: Fixed debugging JavaScript tasks that used `"type":
"node-terminal"`.
Follow-up of https://github.com/zed-industries/zed/pull/32490
The tool still looks like designed by professional developers, and still
may change its UX based on the internal feedback.
Release Notes:
- N/A
Kirill Bulatov
created
8a1e795
agent: Move `ActiveThread` and `MessageEditor` into `ActiveView` (#33462)
Click to expand commit body
`ActiveThread` and `MessageEditor` only make sense when `active_view` is
`Thread`, so we moved them in there. This will make it easier to work on
new agent threads.
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Agus Zubiaga
,
Antonio Scandurra
,
Conrad Irwin
, and
Smit Barmase
created
7031ed8
ci: Fix duplicated/failed eval jobs (#33453)
Click to expand commit body
I think this should fix the CI issues with Eval jobs:
1. Duplicated workflows because `synchronize` / `opened` were triggering
distinct runs. This caused failed job entries because the duplicated
workflows had a shared concurrency group and so one would pre-empt the
other.
3. Removes the no-op job, introduced as an attempted workaround in
https://github.com/zed-industries/zed/pull/29420.
These should correctly show as "Skipped" now:
| Before | After |
| - | - |
| <img width="359" alt="Screenshot 2025-06-26 at 9 57 04"
src="https://github.com/user-attachments/assets/6ddd4f46-27c7-4d82-98ba-0f1166fc55e7"
/> | <img width="355" alt="Screenshot 2025-06-26 at 10 09 54"
src="https://github.com/user-attachments/assets/5faade2c-f17c-447a-9af9-6396f9e53016"
/> |
Release Notes:
- N/A
Peter Tripp
created
6073d2c
Automatically retry when API is Overloaded or 500s (#33275)
Click to expand commit body
<img width="484" alt="Screenshot 2025-06-25 at 2 26 16 PM"
src="https://github.com/user-attachments/assets/340f15d7-b115-4895-bae8-b12a915bfda1"
/>
<img width="460" alt="Screenshot 2025-06-25 at 2 26 08 PM"
src="https://github.com/user-attachments/assets/6e587a38-d542-405f-809f-402e87520538"
/>
Now we:
* Automatically retry up to 3 times on upstream Overloaded or 500 errors
(currently for Anthropic only; will add others in future PRs)
* Also automatically retry on rate limit errors (using the provided
duration to wait, if we were given one)
* Give you a notification if you don't have Zed open and we stopped the
thread because of an error
Still todo in future PRs:
* Update collab to report Overloaded and 500 errors differently if
collab itself is passing through an upstream error vs not (currently we
report these as "Zed's API is overloaded" when actually it's the
upstream one!)
* Updating providers other than Anthropic to categorize their errors so
that they benefit from this
* Expanding graceful error handling/retry to other things besides
Overloaded and 500 errors (e.g. connection reset)
Release Notes:
- Automatically retry in Agent Panel instead of erroring out when an
upstream AI API is overloaded or 500s
- Show a notification when an Agent thread errors out and Zed is not the
active window
Richard Feldman
created
00499aa
Add back default keybindings to Burn Mode and branch picker toggles (#33452)
Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/33190, as they
were removed because of conflict with VS Code's usage of those bindings
to toggle the right dock. `cmd-ctrl-b` seems like a safe alternative.
Note that this PR is macOS only, though. I couldn't find yet any good
options for Linux as they were all mostly conflicting with something
else.
Release Notes:
- N/A
Follow-up to: https://github.com/zed-industries/zed/pull/33398
Logic there was incomplete. Caused [this
failure](https://github.com/zed-industries/zed/actions/runs/15904169712/job/44854558276).
Release Notes:
- N/A
Peter Tripp
created
40cbfb7
docs: Add note about extension submodules needing to use HTTPS URLS (#33454)
Click to expand commit body
This PR adds a note to the extension publishing docs about extension
submodules needing to use HTTPS URLs.
Release Notes:
- N/A
Marshall Bowers
created
5d0f02d
Add cmd-alt-b (workspace::ToggleRightDock) on macOS (#33450)
Click to expand commit body
Release Notes:
- N/A
Peter Tripp
created
ca8e213
Suggest reST extension for .rst files (#33413)
Click to expand commit body
Suggest the reST extension when opening a .rst file for the first time.
Release Notes:
- N/A
Renze Post
created
90c8937
gpui: Prevent the same action name from being registered multiple times (#33359)
Click to expand commit body
Also removes duplicate `editor::RevertFile` and `vim::HelixDelete`
actions
Release Notes:
- N/A
Michael Sloan
created
d09c7eb
language: Add context-aware decrease indent for Python (#33370)
Click to expand commit body
Closes #33238, follow-up to
https://github.com/zed-industries/zed/pull/29625.
Changes:
- Removed `significant_indentation`, which was the way to introduce
indentation scoping in languages like Python. However, it turned out to
be unnecessarily complicated to define and maintain.
- Introduced `decrease_indent_patterns`, which takes a `pattern` keyword
to automatically outdent and `valid_after` keywords to treat as valid
code points to snap to. The outdent happens to the most recent
`valid_after` keyword that also has less or equal indentation than the
currently typed keyword.
Fixes:
1. In Python, typing `except`, `finally`, `else`, and so on now
automatically indents intelligently based on the context in which it
appears. For instance:
```py
try:
if a == 1:
try:
b = 2
^ # <-- typing "except:" here would indent it to inner try block
```
but,
```py
try:
if a == 1:
try:
b = 2
^ # <-- typing "except:" here would indent it to outer try block
```
2. Fixes comments not maintaining indent.
Release Notes:
- Improved auto outdent for Python while typing keywords like `except`,
`else`, `finally`, etc.
- Fixed the issue where comments in Python would not maintain their
indentation.
Smit Barmase
created
1753432
Fix tree sitter python try statement to accept missing else/except/finally (#33431)
Click to expand commit body
We have fork now:
https://github.com/zed-industries/tree-sitter-python/commit/218fcbf3fda3d029225f3dec005cb497d111b35e
Release Notes:
- N/A
Smit Barmase
created
d9218b1
Bump livekit-rust-sdks for candidate webrtc-sys build fix (#33387)
Click to expand commit body
Incorporates https://github.com/zed-industries/livekit-rust-sdks/pull/5
Don't merge yet, waiting until after new releases are cut in case of
unexpected breakage.
Release Notes:
- N/A
Cole Miller
created
dfdeb1b
linux: Don't insert characters if modifiers other than shift are held (#33424)
Click to expand commit body
Closes #32219 #29666
Release Notes:
- Linux: Now skips insertion of characters when modifiers are held. Before, characters were inserted if there's no match in the keymap.
Michael Sloan
created
b9f81c7
Restore missing initialization of text thread actions (#33422)
Click to expand commit body
Fixes a regression introduced in
https://github.com/zed-industries/zed/pull/33289
Release Notes:
- Fixed a bug where some text thread actions were accidentally removed.
Max Brunsfeld
created
b1450b6
Remove `git_panel::GenerateCommitMessage` in favor of `git::GenerateCommitMessage` (#33421)
Click to expand commit body
`git_panel::GenerateCommitMessage` has no handler,
`git::GenerateCommitMessage` should be preferred. Could add a
`#[action(deprecated_aliases = ["git_panel::GenerateCommitMessage"])]`,
but decided not to because that action didn't work. So instead uses of
it will show up as keymap errors.
Closes #32667
Release Notes:
- N/A
Michael Sloan
created
1af9f98
lsp-log: Avoid trimming leading space in language server logs (#33418)
Click to expand commit body
Not sure what the full intention/right fix for this is, but
https://github.com/zed-industries/zed/pull/32659 re-introduced trimming
of leading spaces. rust-analyzer has [a custom tracing
formatter](https://github.com/rust-lang/rust-analyzer/blob/317542c1e4a3ec3467d21d1c25f6a43b80d83e7d/crates/rust-analyzer/src/tracing/hprof.rs)
that is _super_ useful for profiling what the heck rust-analyzer is
doing. It makes prodigious use of whitespace to delineate to create a
tree-shaped structure. This change reintroduces the leading whitespace.
I made a previous change similar to this that removed a `stderr:` in
https://github.com/zed-industries/zed/pull/27213/. If this is a
direction y'all are happy to go with, I'd be happy to add a test for
this!
<details>
<summary>A screenshot of the before</summary>
<img width="1624" alt="Screenshot 2025-06-25 at 2 12 45 PM"
src="https://github.com/user-attachments/assets/a714d973-9377-41ca-8087-3b0e82b41620"
/>
</details>
<details>
<summary>A screenshot of the after</summary>
<img width="1136" alt="Screenshot 2025-06-25 at 2 40 07 PM"
src="https://github.com/user-attachments/assets/b798ca13-11fc-4f97-9602-55e782068a5a"
/>
</details>
cc: @mgsloan.
Release Notes:
- Fixed the removal of leading whitespace in a language server's stderr
logs.