Commit log

de8f1c3 WIP

Antonio Scandurra created

9351e95 WIP

Antonio Scandurra created

dac0838 WIP

Antonio Scandurra created

38d5f36 WIP

Antonio Scandurra created

e5bcd72 debugger: Add UI for tweaking breakpoint properties directly from breakpoint list (#33097)

Click to expand commit body
Release Notes:

- debugger: Breakpoint properties (log/hit condition/condition) can now
be set directly from breakpoint list.

Piotr Osiewicz created

41583fb Fix document colors issues with other inlays and multi buffers (#33598)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/33575

* Fixes inlay colors spoiled after document color displayed
* Optimizes the query pattern for large multi buffers

Release Notes:

- Fixed document colors issues with other inlays and multi buffers

Kirill Bulatov created

521a223 Add `editor::Rewrap` binding to Emacs keymaps (#33588)

Click to expand commit body
`M-q` is `fill-paragraph` which is like `editor::Rewrap`.

Release Notes:

- emacs: Bound `alt-q` to `editor::Rewrap` (like `M-q` or `M-x
fill-paragraph`)

Cole Miller created

c8c6468 vim: Non-interactive shell (#33568)

Click to expand commit body
Closes #33144

Release Notes:

- vim: Run r! in a non-interactive shell

Conrad Irwin created

3f4098e open_ai: Make OpenAI error message generic (#33383)

Click to expand commit body
Context: In this PR: https://github.com/zed-industries/zed/pull/33362,
we started to use underlying open_ai crate for making api calls for
vercel as well. Now whenever we get the error we get something like the
below. Where on part of the error mentions OpenAI but the rest of the
error returns the actual error from provider. This PR tries to make the
error generic for now so that people don't get confused seeing OpenAI in
their v0 integration.

```
Error interacting with language model
Failed to connect to OpenAI API: 403 Forbidden {"success":false,"error":"Premium or Team plan required to access the v0 API: https://v0.dev/chat/settings/billing"}
```

Release Notes:

- N/A

Umesh Yadav created

1d684c8 Add shadow back for blurred/transparent window on macOS (#27403)

Click to expand commit body
Closes #15383
Closes #10993

`NSVisualEffectView` is an official API for implementing blur effects
and, by traversing the layers, we **can remove the background color**
that comes with the view. This avoids using private APIs and aligns
better with macOS’s native design.

Currently, `GPUIView` serves as the content view of the window. To add
the blurred view, `GPUIView` is downgraded to a subview of the content
view, placed at the same level as the blurred view.

Release Notes:

- Fixed the missing shadow for blurred-background windows on macOS.

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

alphaArgon and Peter Tripp created

97c5c5a vim: Respect count for paragraphs (#33489)

Click to expand commit body
Closes #32462 

Release Notes:

- vim: Paragraph objects now support counts (`d2ap`, `v2ap`, etc.)

---------

Co-authored-by: Rift <no@e.mail>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Rift , Rift , and Conrad Irwin created

ba4fc1b vim: Add debug panel ex command (#33560)

Click to expand commit body
Added :Debug to open debug panel, also added
[:display](https://neovim.io/doc/user/change.html#%3Adisplay), alias to
:reg

Release Notes:

- N/A

5brian created

bbf16bd editor: Improve rewrap to respect indent and prefix boundaries (#33566)

Click to expand commit body
1. Fixes bug where this would not rewrap:

```rs
// This is the first long comment block to be wrapped.
fn my_func(a: u32);
// This is the second long comment block to be wrapped.
```
2. Comment prefix boundaries (Notice now they don't merge between
different comment prefix):

Initial text:
```rs
// A regular long long comment to be wrapped.
// A second regular long comment to be wrapped.
/// A documentation long comment to be wrapped.
```
Upon rewrap:
```rs
// A regular long long comment to be
// wrapped. A second regular long
// comment to be wrapped.
/// A documentation long comment to be
/// wrapped.
```
3. Indent boundaries (Notice now they don't merge between different
indentation):

Initial text:
```rs
fn foo() {
      // This is a long comment at the base indent.
      // This is a long comment at the base indent.
                 // This is a long comment at the next indent.
                 // This is a long comment at the next indent.
      // This is a long comment at the base indent.
}
```
Upon rewrap:
```rs
fn foo() {
      // This is a long comment at the base
      // indent. This is a long comment at the
      // base indent.
                 // This is a long comment at the 
                 // next indent. This is a long 
                 // comment at the next indent.
      // This is a long comment at the base
      // indent.
}
```

Release Notes:

- Fixed an issue where rewrap would not work with selection when two
comment blocks are separated with line of code.
- Improved rewrap to respect changes in indentation or comment prefix
(e.g. `//` vs `///`) as boundaries so that it doesn't merge them into
one mangled text.

Smit Barmase created

c56b890 Prevent branch name overflow in git panel selection (#33529)

Click to expand commit body
Closes #33527

Release Notes:

- Fixed long branch names overflowing to multiple lines in git panel
branch selector

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

ddoemonn and Danilo Leal created

695118d agent: Show provider icon in model selectors (#30595)

Click to expand commit body
I often switch between models, and I believe many people do. Currently,
it is difficult to determine which provider offers the selected model
because the same models are available from different providers. I
propose a simple change to the selector so that users can distinguish
between providers from the model they have chosen.

As a side note, I would actually prefer to have a text label with the
provider’s name next to the model name in the selector. However, I
understand that this is too opinionated and takes up too much space.

| Before | After |
| ------ | ------ |
|
![before_inline_assist](https://github.com/user-attachments/assets/35617ba5-e8d4-4dab-a997-f7286f73f2bf)
|
![after_inline_assist](https://github.com/user-attachments/assets/c37c81b4-73e4-49e2-955d-b8543b2855ad)
|
|
![before_text_thread](https://github.com/user-attachments/assets/af90303b-12d6-402c-90a5-8b36cd97396e)
|
![after_text_thread](https://github.com/user-attachments/assets/bca5b423-f12b-4eaf-a82e-424d09b7f447)
|
|
![before_thread](https://github.com/user-attachments/assets/0946775f-1d52-437b-a217-9708ee2e789a)
|
![after_thread](https://github.com/user-attachments/assets/f5e53968-9020-446f-9d5e-653ae9fdea3e)
|

Release Notes:

- The model selector has been improved with a provider icon, making it
easier to distinguish between providers.

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Artem Loenko , Danilo Leal , and Danilo Leal created

a675ca7 Remove `into SelectionEffects` from .change_selections (#33554)

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

Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

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>

Cole Miller and Piotr created

14bb10d Don't panic on vintage files (#33543)

Click to expand commit body
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

Kirill Bulatov created

f9987a1 vim: Grep in visual line (#33414)

Click to expand commit body
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>

Ben Kunkle and Antonio created

157199b Replace newlines in search bar (#33504)

Click to expand commit body
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"
/>

Conrad Irwin created

d74f3f4 Fix crash in git checkout (#33499)

Click to expand commit body
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

Peter Tripp created

865dd4c Rework LSP tool keyboard story (#33525)

Click to expand commit body
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:


![image](https://github.com/user-attachments/assets/c844bc39-00ed-4fe3-96d5-1c9d323a21cc)

* 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.

Finn Evers created

e6bc130 Add SVG preview (#32694)

Click to expand commit body
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

fantacell created

8c9116d Fix panic in ctrl-g (#33474)

Click to expand commit body
Release Notes:

- vim: Fixed a crash with ctrl-g

Conrad Irwin created

20a3e61 vim: Better jump list support (#33495)

Click to expand commit body
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

Danilo Leal created

343f155 Update docs for Swift debugging (#33483)

Click to expand commit body
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Cole Miller created

2dece13 nix: Update to access new rust toolchain version (#33476)

Click to expand commit body
Needed due to #33439

Release Notes:

- N/A

Julia Ryan created

985dcf7 chore: Bump Rust version to 1.88 (#33439)

Click to expand commit body
Goodies in this version:
- if-let chains 🎉
- Better compiler perf for Zed
(https://github.com/rust-lang/rust/pull/138522)

For more, see: https://releases.rs/docs/1.88.0/

Release Notes:

- N/A

---------

Co-authored-by: Junkui Zhang <364772080@qq.com>

Piotr Osiewicz and Junkui Zhang created

b079871 Fix subtraction with overflow (#33471)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

4983b01 helix: Change word motions (#33408)

Click to expand commit body
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"`.

Cole Miller created

a0bd25f Feature gate the LSP button (#33463)

Click to expand commit body
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