Commit log

bd4c9b4 editor: Fix signature help popover goes off screen (#28566)

Click to expand commit body
Closes #27731

Uses similar logic as other popovers for layouting signature help
popover.

Release Notes:

- Fixed case where signature help popover goes off the screen.

Smit Barmase created

d4736a5 debugger: Fix bug where deleting a breakpoint could delete multiple breakpoints (#28562)

Click to expand commit body
This PR fixes a bug when deleting a breakpoint with a (log, conditional,
hit condition) message by removing the message. All breakpoints that
contain that type of message were also deleted.

Release Notes:

- N/A

Anthony Eid created

353ae23 Fix staging/unstaging hunks remotely (#28560)

Click to expand commit body
Fixes a regression introduced in
https://github.com/zed-industries/zed/pull/28377 where the pending hunks
didn't get cleared properly when staging/unstaging hunks remotely. I
didn't add new tests, because the fix was to simplify some code.

Release Notes:

- N/A

Max Brunsfeld created

ad39d32 Add new actions `editor::FindNextMatch` and `editor::FindPreviousMatch` (#28559)

Click to expand commit body
Closes #7903

Release Notes:

- Add new actions `editor::FindNextMatch` and
`editor::FindPreviousMatch` that are similar to `editor::SelectNext` and
`editor::SelectPrevious` with `"replace_newest": true`, but jumps to the
first or last selection when there are multiple selections.

João Marcos created

c35238b debugger: Add support for setting multiple breakpoints via actions (#28437)

Click to expand commit body
Allow setting multiple breakpoints with multi cursors

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Remco Smits <djsmits12@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>

Piotr Osiewicz , Anthony Eid , Remco Smits , and Anthony created

5757e35 agent: Fix bug where wrong crease for @mention would be displayed (#28558)

Click to expand commit body
Release Notes:

- agent: Fix a bug where an inserted @mention did not show up as the one
that was selected

Bennet Bo Fenner created

c124838 agent: Fix "new text thread" action name (#28555)

Click to expand commit body
Moving from "NewPromptEditor" to "NewTextThread". We recently re-named
that and this was missing.

Release Notes:

- N/A

Danilo Leal created

5ebac7e agent: Clean up thread auto-capturing (#28550)

Click to expand commit body
This PR cleans up the thread auto-capturing added in #28271.

- Removed usage of `unsafe`
- Fixed feature flag check
- We were incorrectly not respecting the feature flag in release builds
- Made sure the telemetry event was being run on the background executor

Release Notes:

- N/A

Marshall Bowers created

c143846 Revert buggy pr (#28554)

Click to expand commit body
Earlier, I merged #24723

Before merging it, I made a change that was incorrect and fast followed
with a fix: #28548

Following that fix, @bennetbo discovered that the modals where no longer
highlighting correctly, particularly the outline modal.

So I'm going to revert it all.

Release Notes:

- N/A

Mikayla Maki created

71c2a11 agent: Make the message editor expandable (#28420)

Click to expand commit body
This PR allows expanding the message editor textarea to fit almost the
total height of the Agent Panel. Stylistically, I'm also changing the
font family we use in the textarea to use the buffer font; want to
experiment with this for a bit.

Release Notes:

- agent: The Agent Panel textarea can now be expanded to fill almost the
total height of the panel.

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Danilo Leal , Bennet Bo Fenner , and Bennet Bo Fenner created

2440faf Actually run the eval and fix a hang when retrieving outline (#28547)

Click to expand commit body
Release Notes:

- Fixed a regression that caused the agent to hang sometimes.

---------

Co-authored-by: Thomas Mickley-Doyle <tmickleydoyle@gmail.com>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Antonio Scandurra , Thomas Mickley-Doyle , Nathan Sobo , and Michael Sloan created

c0262cf Fix bug where all editor completions would be black (#28548)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

fd256d1 gpui: Keep drag cursor style when dragging (#24797)

Click to expand commit body
Release Notes:

- Improve to keep drag cursor style on dragging resize handles.

---

### Before


https://github.com/user-attachments/assets/d4100d01-ac02-42b8-b923-9f2b4633c458

### After


https://github.com/user-attachments/assets/b5a450cd-c6de-4b39-a79c-2d73fcbad209

With example:

```
cargo run -p gpui --example drag_drop
```


https://github.com/user-attachments/assets/4cba1966-1578-40ce-a435-64ec11bcace5

Jason Lee created

a2a3d1a editor: Refactor `EditorMode::Full` (#28546)

Click to expand commit body
This PR lightly refactors the `EditorMode::Full` exposing two new
methods: `is_full` and `set_mode`.

Motivation is to expose fields that modify the behavior when the editor
is in `Full` mode. By using is `mode.is_full()` instead of
`EditorMode::Full` we can introduce new fields without breaking other
places in the code.

Release Notes:

- N/A

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Danilo Leal and Bennet Bo Fenner created

294a1b6 Fix diff recalculation hang (#28377)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/26039

Release Notes:

- Fixed an issue where diffs stopped updating closing and reopening them
after staging hunks.
- Fixed a bug where staging a hunk while the cursor was in a deleted
line would move the cursor erroneously.

---------

Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: João Marcos <marcospb19@hotmail.com>

Max Brunsfeld , Cole Miller , and João Marcos created

ffdf725 gpui: Fix text hover & active style (#24723)

Click to expand commit body
Release Notes:

- N/A

---

Fix this long-standing issue so that we can support Link hover colors.

And renamed `text_layout` example to `text_style`.

---

I spent some time studying the process of this text style change and
found it a bit complicated.

At first, I thought there was a problem with refine and it was not
passed properly. After changing it, I found that it was not the problem.

Then I found that it was because `TextRun` had already stored the
`color`, `background`, `underline`, `strikethrough` in TextRun in the
`request_layout` stage. They area calculate at the `request_layout`
stage, but request_layout stage there was no `hitbox`, so the hover
state was not obtained.

```bash
cargo run -p gpui --example text_style
```


https://github.com/user-attachments/assets/24f88f73-775e-41d3-a502-75a7a39ac82b

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Jason Lee and Mikayla Maki created

8ee6a2b html: Fix leading slash on Windows paths (#28542)

Click to expand commit body
This PR builds on the fix proposed in
[zed-extensions/astro#5](https://github.com/zed-extensions/astro/pull/5)
and serves as a workaround for certain LSPs affected by
[zed-industries/zed#20559](https://github.com/zed-industries/zed/issues/20559)—specifically,
the HTML language server in this case.

Credit to @maxdeviant for identifying and implementing the original fix.
This PR extends that solution to other areas where it may be beneficial.

Release Notes:

- N/A

vipex created

cf65d94 debugger: Add console indicator and resolve debug configs from NewSessionModal (#28489)

Click to expand commit body
The debug console will now show an indicator when it's unopened and
there's unread messages.

`NewSessionModal` attempts to resolve debug configurations before using
the config to start debugging. This allows users to use zed's task
variables in the modal prompt.

I had to invert tasks_ui dependency on debugger_ui so `NewSessionModal`
could get the correct `TaskContexts` by calling tasks_ui functions. A
consequence of this workspace has a new event `ShowAttachModal` that I'm
not a big fan of. @osiewicz if you have time could you please take a
look to see if there's a way around adding the event. I'm open to pair
on it too.

Release Notes:

- N/A

Anthony Eid created

66dd672 zlog: Support configuring log levels with env var (#28544)

Click to expand commit body
Reimplemented logic from `env_logger` to parse log configuration from
environment variables.

Had to re-implement instead of using `env_filter` crate that
`env_logger` uses, as it does not export the information required to
integrate it.


Release Notes:

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

Ben Kunkle created

44cb8e5 markdown: Track code block metadata in parser (#28543)

Click to expand commit body
This allows us to not scan the codeblock content for newlines on every
frame in `active_thread`

Release Notes:

- N/A

Bennet Bo Fenner created

73305ce Change zed.dev's default model to Claude 3.7 Sonnet (#28541)

Click to expand commit body
From Claude 3.5 Sonnet to **Claude 3.7 Sonnet**.

Release Notes:

- Change the default model of Zed's hosted LLM service to Claude 3.7
Sonnet.

Danilo Leal created

94b75f3 gpui: Enable per-pixel, GPU composited transparency on Windows (#26645)

Click to expand commit body
Move the SetLayeredWindowAttributes call to immediately after window
construction, and initialize it with per-pixel transparency settings, no
color key and no global blending. The render pipeline will perform alpha
blending during compositing.

Cleaned up the DWM acrylic API calls some, to explicitly set to the
three appropriate modes depending on opaque, transparent or blurred
settings. The API internally hides versioning concerns from the caller.

Set the window class background color to black, this prevents a
flashbang on slow startup, e.g. debug builds on a heavily loaded system.

The outcome is that the window no longer receives paint demands for
underlying window updates, while also having per-pixel transparency -
opaque theme elements are now correctly opaque. The transparency
settings are now portable across windows and macOS having mostly similar
outcomes (modulo palette differences). Small fonts may still appear to
be alpha blended - this seems to be in the glyph atlas, their pixels are
not actually opaque. Larger fonts (or higher DPIs) don't suffer this and
are as opaque as expected. Layering the window atop one that is
rendering at 120fps, the editor window can drop to its 8fps idle state,
while still being composited with 120fps alpha blend in the background,
in both blur and transparent modes.

Updates #20400

Release Notes:

- Improved transparency on Windows to be more efficient, support fully
opaque elements and more closely match other platforms.

James Tucker created

384868e Add --user-data-dir CLI flag and propose renaming support_dir to data_dir (#26886)

Click to expand commit body
This PR introduces support for a `--user-data-dir` CLI flag to override
Zed's data directory and proposes renaming `support_dir` to `data_dir`
for better cross-platform clarity. It builds on the discussion in #25349
about custom data directories, aiming to provide a flexible
cross-platform solution.

### Changes

The PR is split into two commits:
1. **[feat(cli): add --user-data-dir to override data
directory](https://github.com/zed-industries/zed/pull/26886/commits/28e8889105847401e783d1739722d0998459fe5a)**
2. **[refactor(paths): rename support_dir to data_dir for cross-platform
clarity](https://github.com/zed-industries/zed/pull/26886/commits/affd2fc606b39af1b25432a688a9006229a8fc3a)**


### Context
Inspired by the need for custom data directories discussed in #25349,
this PR provides an immediate implementation in the first commit, while
the second commit suggests a naming improvement for broader appeal.
@mikayla-maki, I’d appreciate your feedback, especially on the rename
proposal, given your involvement in the original discussion!

### Testing
- `cargo build `
- `./target/debug/zed --user-data-dir ~/custom-data-dir`

Release Notes:
- Added --user-data-dir CLI flag

---------

Signed-off-by: Marko Kungla <marko.kungla@gmail.com>

Marko Kungla created

d88694f language_models: Fix non-streaming Copilot Chat models (#28537)

Click to expand commit body
This PR fixes usage of non-streaming Copilot Chat models.

Closes https://github.com/zed-industries/zed/issues/28528.

Release Notes:

- Fixed an issue with using non-streaming Copilot Chat models (e.g., o1,
o3-mini).

Marshall Bowers created

90f30b5 gpui: Allow DisplayId to be compared to u32 (#27895)

Click to expand commit body
allow DisplayId to be compared to u32. This is handy since gpui doesn't
provide a method to detect current active display of the user. So when
using mouse location to get the active display we need to then compare
that display u32 to DisplayID

Release Notes:
- added From to allow u32 comparison

Terminal created

24d4f8c gpui: Optimize coalesce float sign checking (#28072)

Click to expand commit body
Optimize away a multiplication during in the `coalesce` function. Our
goal is to check whether the sign of two floats is the same.

Instead of multiplying each `.signum()` and checking that the result is
positive, we can simply check that the signum's are the same. This
removes a float multiplication.

```rust
a.signum() * b.signum() >= 0.0
```

turns into

```rust
a.signum() == b.signum()
```



Release Notes:

- Fix documentation for `Pixels::signum`

tidely created

804066a Do not query for LSP tasks buffers that do not belong to the position given (#28536)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/28359

Release Notes:

- Fixed a panic when LSP tasks are queried in certain multi buffer
excerpts

Kirill Bulatov created

4a35646 rust: Enable required features when executing `main` functions in tasks (#27312)

Click to expand commit body
Closes #13344

This PR causes required features to be read from `cargo metadata` and
enabled when executing an example/bin in Rust.

Release Notes:

- Added enabling required features when executing a Rust example or bin
through a task

Niklas Eicker created

0921762 install_cli: Show feedback when installing CLI from welcome screen (#28532)

Click to expand commit body
Closes #28408

Release Notes:

- Fixed no feedback provided when installing CLI from welcome page.

Smit Barmase created

46b1df2 agent: Auto-capture telemetry feature flag (#28271)

Click to expand commit body
Release Notes:

- N/A

Thomas Mickley-Doyle created

986da33 Bump rustls (#28531)

Click to expand commit body
Closes #26699

Release Notes:

- Fixed a panic when enabling or disabling a VPN on macOS

Conrad Irwin created

dad33f7 Fix code action selection bug while using vim visual mode (#27817)

Click to expand commit body
## Problem

Code actions do not handle vim line mode correctly. See this video where
`Extract to function` doesn't extract both selected lines:


https://github.com/user-attachments/assets/8fa0fb28-0403-44f6-9e55-a59b6713dffd

## Solution

Use `selections.newest_adjusted` instead of `selections.newest_anchor`
so code actions consider the full selection.

Correct behavior:


https://github.com/user-attachments/assets/174d5a34-3873-4d20-b67d-103edec4cdbe

---

Release Notes:

- vim: Fixed code actions in visual line mode

Austin Merrick created

64241f7 editor: Fix extra characters were being written at the end of an HTML tag (#28529)

Click to expand commit body
Closes #25586

It is caused due to assumption all character being typed are word
characters and linked edit ranges can be used even when first non-word
character is typed. Because next character passes all the criteria like
being word character, anchor matching the previous range before typing
started, wrong edit take place.

This PR fixes it by clearing linked edit ranges when non-word character
is typed.

Before:

`<div cx^></div>cx` when typing fast.

After:

`<div cx^></div>` always.


Release Notes:

- Fixed a case where extra characters were being written at the end of
an HTML tag.

Smit Barmase created

fbbc23b editor: Restore selections to positions after last edit (#28527)

Click to expand commit body
Closes #22692

Makes it so when undoing a format operation, the selections are set to
where they were at the last edit.

Release Notes:

- Made it so the cursor position is reset to where it was after the last
edit when undoing a format operation. This will only result in different
behavior when you make an edit, scroll away, initiate formatting (either
by saving or manually) and then undo the format.

---------

Co-authored-by: Zed AI <ai@zed.dev>

Ben Kunkle and Zed AI created

26f4705 debugger: Add breakpoint list (#28496)

Click to expand commit body
![image](https://github.com/user-attachments/assets/2cbe60cc-bf04-4233-a7bc-32affff8eef5)
Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Piotr Osiewicz and Anthony Eid created

3abf952 Add progress bar component (#28518)

Click to expand commit body
- Adds the progress bar component

Release Notes:

- N/A

Nate Butler created

b0b52f2 docs: Prefer `bin/rails` when running Rails tests (#28167)

Andy Waite created

53cde32 Clean up formatting code and add testing for formatting with multiple formatters (including code actions!) (#28457)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Ben Kunkle and Max Brunsfeld created

b55b310 Downgrade environment-related logging (#28509)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Cole Miller created

8ab25e2 Fix merge conflicts jumping (#28508)

Click to expand commit body
This regressed in #27568, oops.

Release Notes:

- Fixed a bug causing conflicted files in the git panel to jump to the
"Tracked" section as soon as they were staged.

Cole Miller created

c10b1f7 docs: Update system requirements (#28504)

Click to expand commit body
Explicitly note that macOS 12.x Monterey is required for screen sharing.

Release Notes:

- N/A

Peter Tripp created

cb1ee01 agent: Add selected tool names to agent panel telemetry (#28247)

Click to expand commit body
Release Notes:

- N/A

Thomas Mickley-Doyle created

90bcde1 agent: Use current shell (#28470)

Click to expand commit body
Release Notes:

- agent: Replace `bash` tool with `terminal` tool which uses the current
shell

---------

Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>

Agus Zubiaga , Bennet , and Antonio created

8ac378b Lay the groundwork for a Rust-based eval (#28488)

Click to expand commit body
Also, we moved the logic for driving the agentic loop into `Thread` so
that we don't have to re-implement it.

Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

5576029 agent: Optimize render_markdown_block function (#28487)

Click to expand commit body
Co-Authored-by: Agus <agus@zed.dev>

Closes #ISSUE

Release Notes:

- N/A

Co-authored-by: Agus <agus@zed.dev>

Bennet Bo Fenner and Agus created

9dfb907 Revert "Add reminder message about system prompt" (#28482)

Click to expand commit body
This breaks the agentic loop.

Antonio Scandurra created

e20daa7 agent: Fix toolbar spacing (#28485)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

b46ab36 agent: Add button to open thread as markdown (#28481)

Click to expand commit body
<img
src="https://github.com/user-attachments/assets/92ca8f64-a949-4cc1-a657-3978a2c65839"
width="600"/>

Release Notes:

- agent: The action to open the current active thread in Markdown is now
exposed in the UI.

Danilo Leal created

12212dc agent: Prevent sending whitespace only messages (#28409)

Click to expand commit body
Prevent this from happening when sending a prompt with only spaces and
newlines:


![image](https://github.com/user-attachments/assets/b275f4c5-c013-4695-8fb4-e3ad75d41750)

Release Notes:

- agent: Prevent from sending messages containing only white space.

5brian created

324e465 Reset modifiers when the window active state changes (#28348)

Click to expand commit body
Closes #23449

Release Notes:

- Fixed a bug causing shift to get stuck down when the window focus
changes

---------

Co-authored-by: Dino <dinojoaocosta@gmail.com>

Conrad Irwin and Dino created