Commit log

9377ef9 feature_flags: Do not enable feature flags by default in dev builds (#27065)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

c3b5046 editor: Do not use breakpoint color for run indicators (#27063)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

44fff08 util: Include path to asset in panic message from asset_str (#27059)

Click to expand commit body
Somebody on Discord ran into issues with running the debugger which goes
down to an unwrap in asset_str. Let's print a path that was accessed.

Release Notes:

- N/A

Piotr Osiewicz created

d4daa0a Show debug console evaluation response (#27050)

Click to expand commit body
We weren't incrementing the output token when getting responses from the
debug evaluation request which caused some output to not be displayed.
(Usually the evaluation response, but that could cascade into other
output events not showing)


Release Notes:
- N/A

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

Anthony Eid , Remco Smits , and Max Brunsfeld created

81582cd Don't render breakpoint indicators on top of expand arrows (#27048)

Click to expand commit body
Closes #ISSUE

cc @Anthony-Eid. One thing I noticed while doing this is that we do an
invalid cast here from DisplayPoint.row to MultiBufferRow. These are not
the same if you have soft-wrap enabled (or anything else in the display
map that's not in the editor).

Release Notes:

- N/A

Conrad Irwin created

0f5a3af Support built-in Zed prompts for all platforms (#26201)

Click to expand commit body
This pull request does two things:

1. Adds a setting to force Zed to use the built-in prompts, instead of
the system provided ones. I've personally found the system prompts on
macOS often fail to respond to keyboard input, are slow to render
initially, and don't match Zed's style.
2. Makes the previously Linux-only Zed provided prompts available to
everybody using the above setting.

Release Notes:
- Added support for a built-in prompting system, regardless of platform.
Use the new `use_system_prompts` setting to control whether to use the
system provided prompts or Zed's built-in system. Note that on Linux,
this setting has no effect, as Linux doesn't have a system prompting
mechanism.

Ryan Hawkins created

382f9f6 language_tools: Fix buffer search keeping focusing when pressing enter in vim mode (#26266)

Click to expand commit body
Closes #25643 

Release Notes:

- Fixed buffer search keep focus when pressing enter in vim mode

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

CharlesChen0823 and Conrad Irwin created

15d2420 `workspace::Open`: Fix trapped cursor/selection on update (#25402)

Click to expand commit body
Closes #ISSUE

Issue: Selection index does not reset when the matches update, which can
lead to the selection getting trapped when that index does not exist in
the next matches.


https://github.com/user-attachments/assets/d3fab23f-750c-47fb-bd3b-a0c42f214c83

This is in workspace::Open with   "use_system_path_prompts": false

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

5brian and Conrad Irwin created

026c727 workspace: Add function to save new file in directory nearest tab (#22563)

Click to expand commit body
Closes #15685

Release Notes:

- save new file in directory neasrest tab

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

CharlesChen0823 and Conrad Irwin created

1aefa51 Move "async move" a few characters to the left in cx.spawn() (#26758)

Click to expand commit body
This is the core change:
https://github.com/zed-industries/zed/pull/26758/files#diff-044302c0d57147af17e68a0009fee3e8dcdfb4f32c27a915e70cfa80e987f765R1052

TODO:
- [x] Use AsyncFn instead of Fn() -> Future in GPUI spawn methods
- [x] Implement it in the whole app
- [x] Implement it in the debugger 
- [x] Glance at the RPC crate, and see if those box future methods can
be switched over. Answer: It can't directly, as you can't make an
AsyncFn* into a trait object. There's ways around that, but they're all
more complex than just keeping the code as is.
- [ ] Fix platform specific code

Release Notes:

- N/A

Mikayla Maki created

7f2e3fb Fix git stage race condition with delayed fs events (#27036)

Click to expand commit body
This PR adds a failing test `test_staging_hunks_with_delayed_fs_event`
and makes it pass

Also skips a queued read for git diff states if another read was
requested (less work)

This still doesn't catch all race conditions, but the PR is getting long
so I'll yield this and start another branch

Release Notes:

- N/A

João Marcos created

68a5728 assistant edit tool: Improve bad search output (#27012)

Click to expand commit body
When we failed to match a search string, we were reporting the replace
string as not found, this confuses the model and can make it go into a
doom loop. This PR fixes that improves the error output in general to
help it recover faster.

Release Notes:

- N/A

Agus Zubiaga created

c042a02 debugger: First slight pass at UI (#27034)

Click to expand commit body
- Collapse Launch and Attach into a single split button
- Fix code actions indicator being colored red.

Release Notes:

- N/A

Piotr Osiewicz created

73ac3d9 nix: Fix LDFLAGS rpath (#26912)

Click to expand commit body
By default stdenv strips all unused rpaths, but we use a few libraries
that are `dlopen`'d so we need to stop it from removing those. The
[`dontPatchELF`
flag](https://ryantm.github.io/nixpkgs/stdenv/stdenv/#var-stdenv-dontPatchELF)
disables that and makes the nix build work on wayland again.

Fix #26905
Close #26864

Release Notes:

- N/A

Julia Ryan created

2269f99 Add more shortcuts for delete/restore in Git Panel (#27004)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

e9033a7 assistant2: Remove unneeded debug logging (#27030)

Click to expand commit body
This PR removes the debug logging added in
https://github.com/zed-industries/zed/pull/23722, as we no longer need
it.

Release Notes:

- N/A

Marshall Bowers created

a2ae6a1 assistant2: Add tool lists for each context server (#27029)

Click to expand commit body
This PR updates the list of context servers with the ability to view the
tools provided by the context server:

<img width="1394" alt="Screenshot 2025-03-18 at 5 53 05 PM"
src="https://github.com/user-attachments/assets/4ffe93dd-f9e9-44e7-877f-656ebf45a326"
/>

Release Notes:

- N/A

Marshall Bowers created

985ac4e gpui: Reduce `window.refresh` to improve cache hit of the cached views (#25009)

Click to expand commit body
Release Notes:

- Improved performance when using the scroll wheel and some other mouse
interactions.

Based on some cache details about GPUI `AnyView::cached` that I found in
the discussion of
https://github.com/zed-industries/zed/discussions/24260#discussioncomment-12135749,
and combined with the optimization points found in actual applications.

This change may have some scenarios that I have not considered, so I
just make a draft to put forward my ideas first for discussion.

From my analysis, `AnyView::cached` will always invalid by Div's mouse
events, because of it called `window.refresh`. I understand that (mouse
move event) this is because the interface changes related to hover and
mouse_move will be affected style, so `window.refresh` is required.
Since Div does not have the `entity_id` of View, it is impossible to
know which View should be refreshed, so the entire window can only be
refreshed.

With this change, we can reduce a lot of `render` method calls on
ScrollWheel or Mouse Event.

Jason Lee created

89ae4ca Fix debugger docs a bit (#27026)

Click to expand commit body
Tried adding a custom debugging tasks to discover two more required
properties missing from the docs.

Release Notes:

- N/A

Kirill Bulatov created

1d4afe6 assistant2: Add context server list to configuration view (#27028)

Click to expand commit body
This PR adds a context server list to the configuration view in
Assistant2:

<img width="1394" alt="Screenshot 2025-03-18 at 5 26 23 PM"
src="https://github.com/user-attachments/assets/58bf3920-1e35-4cb8-a32a-5ae9f98ce387"
/>

Release Notes:

- N/A

Marshall Bowers created

777c88b Clean up community_release_actions file (#27027)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

959a024 Omit `json-language-server` from the `scope_opt_in_language_servers` (#27023)

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

After that PR, settings.json stopped giving completions when `"` was
typed as a key:

https://github.com/user-attachments/assets/5ff03863-024c-4c28-a7cd-8ef48a1695d8

This goes down to 


https://github.com/zed-industries/zed/blob/fb12863999e601c4ffc9afbded036e4f1f064369/crates/language/src/language.rs#L1736-L1748

which was empty before the PR, hence leading to lower `true` branch.
Now, when typing `"`, there's no scope according to 


https://github.com/zed-industries/zed/blob/fb12863999e601c4ffc9afbded036e4f1f064369/crates/project/src/lsp_store.rs#L4529-L4532

return result.

Removing `json-language-server` from `scope_opt_in_language_servers`
seems to preserve the `:` fix and restore the completions behavior.


Release Notes:

- N/A

Kirill Bulatov created

ed510b5 Remove unused AssistantThreadFeedback event (#27021)

Click to expand commit body
It looks like:

- https://github.com/zed-industries/zed/pull/26780

accidentally added a new event type, `AssistantThreadFeedback`, using
the old event system, that it didn't end up actually using, as the code
actually relies on using the newer (preferred) `telemetry::event!()`.

Release Notes:

- N/A

Joseph T. Lyons created

674c572 ci: Run stalebot checks multiple times to ensure completion (#27017)

Click to expand commit body
Stalebot has a maximum operations-per-run which is set at 1000. As a
result it may require multiple runs to successfully complete.

This morning it took [three
runs](https://github.com/zed-industries/zed/actions/runs/13921563707/attempts/1)
so set it to run three times two hours apart to avoid hitting github API
limits.

Release Notes:

- N/A

Peter Tripp created

4a39fc2 gpui: Provide workaround for AMD Linux driver bug (#26890)

Click to expand commit body
There apparently is some amdgpu/radv bug that rendering with
multisample anti-aliasing (MSAA) results in a crash when the bounds
of a triangle list exceed 1024px, which in Zed happens with the default
buffer font size when you select a line with more than 144 characters.

This crash has been reported as #26143.

This commit introduces a workaround: you can set the
ZED_PATH_SAMPLE_COUNT=0
environment variable to disable MSAA and the error message we print
when a GPU crash is encountered with radv now suggests trying this
environment
variable as a workaround and links the respective issue.

Sidenote: MSAA was introduced in
f08b1d78ec1655a56b07c5efcd74d225d2a4b7d5
so you didn't run into this driver bug with versions < 0.173.8.

Release Notes:

- Added a workaround for an AMD Linux driver bug that causes Zed to
crash when selecting long lines.

Martin Fischer created

48fe134 assistant edit tool: Create file when search/replace is empty (#27009)

Click to expand commit body
We used to fail when this happened, but we saw the model use it as a way
to create empty files, which makes sense.

Release Notes:

- N/A

Agus Zubiaga created

22b8662 Fix syntax highlighting of git commit messages (#26988)

Click to expand commit body
- Load syntax colors into commit message editors
- Fix name mismatches that were preventing the git commit grammar and
language config from being matched up

Release Notes:

- Fixed git commit messages not being syntax-highlighted

Cole Miller created

cc36cd9 extensions_ui: Add ability to filter extensions by category (#27005)

Click to expand commit body
This PR adds the ability to filter the list of extensions by category:


https://github.com/user-attachments/assets/ea7b518e-4769-4e2e-8bbe-e75f9f01edf9

Release Notes:

- Added the ability to filter the list of extensions by category.

Marshall Bowers created

628a61d docs: Specify the command for activating prompt library from the command palette (#27007)

Click to expand commit body
Quickfix of the docs as I read through and get familiar with the
assistant interface.
`prompt-library: toggle` does not appear to be a live command in
`cmd-shift-p` - instead I see `assistant: deploy prompt library`. This
change to the docs reflects that. It also notes that this command can
only be activated from within the assistant panel (the command is not
accessible from a standard editor panel).

Release Notes:

- N/A

KyleBarton created

7f23875 Fold git merge messages into commit editor placeholder text (#26992)

Click to expand commit body
This PR changes the git commit message editors to surface git's
suggested merge message, if any, as placeholder text, as opposed to
"real" buffer text as was previously the case.

Release Notes:

- Changed git commit message editors to use placeholder text for git's
suggested merge messages

Cole Miller created

e7bba1c Improvements to interactive hard wrap behavior (#26953)

Click to expand commit body
Release Notes:

- Fixed involuntary joining of lines when typing in the commit message
editor
- Fixed being unable to type whitespace after a comment character at the
start of a line in the commit message editor

Cole Miller created

41a60ff Debugger implementation (#13433)

Click to expand commit body
###  DISCLAIMER

> As of 6th March 2025, debugger is still in development. We plan to
merge it behind a staff-only feature flag for staff use only, followed
by non-public release and then finally a public one (akin to how Git
panel release was handled). This is done to ensure the best experience
when it gets released.

### END OF DISCLAIMER 

**The current state of the debugger implementation:**


https://github.com/user-attachments/assets/c4deff07-80dd-4dc6-ad2e-0c252a478fe9


https://github.com/user-attachments/assets/e1ed2345-b750-4bb6-9c97-50961b76904f

----

All the todo's are in the following channel, so it's easier to work on
this together:
https://zed.dev/channel/zed-debugger-11370

If you are on Linux, you can use the following command to join the
channel:
```cli
zed https://zed.dev/channel/zed-debugger-11370 
```

## Current Features

- Collab
  - Breakpoints
    - Sync when you (re)join a project
    - Sync when you add/remove a breakpoint
  - Sync active debug line
  - Stack frames
    - Click on stack frame
      - View variables that belong to the stack frame
      - Visit the source file
    - Restart stack frame (if adapter supports this)
  - Variables
  - Loaded sources
  - Modules
  - Controls
    - Continue
    - Step back
      - Stepping granularity (configurable)
    - Step into
      - Stepping granularity (configurable)
    - Step over
      - Stepping granularity (configurable)
    - Step out
      - Stepping granularity (configurable)
  - Debug console
- Breakpoints
  - Log breakpoints
  - line breakpoints
  - Persistent between zed sessions (configurable)
  - Multi buffer support
  - Toggle disable/enable all breakpoints
- Stack frames
  - Click on stack frame
    - View variables that belong to the stack frame
    - Visit the source file
    - Show collapsed stack frames
  - Restart stack frame (if adapter supports this)
- Loaded sources
  - View all used loaded sources if supported by adapter.
- Modules
  - View all used modules (if adapter supports this)
- Variables
  - Copy value
  - Copy name
  - Copy memory reference
  - Set value (if adapter supports this)
  - keyboard navigation
- Debug Console
  - See logs
  - View output that was sent from debug adapter
    - Output grouping
  - Evaluate code
    - Updates the variable list
    - Auto completion
- If not supported by adapter, we will show auto-completion for existing
variables
- Debug Terminal
- Run custom commands and change env values right inside your Zed
terminal
- Attach to process (if adapter supports this)
  - Process picker
- Controls
  - Continue
  - Step back
    - Stepping granularity (configurable)
  - Step into
    - Stepping granularity (configurable)
  - Step over
    - Stepping granularity (configurable)
  - Step out
    - Stepping granularity (configurable)
  - Disconnect
  - Restart
  - Stop
- Warning when a debug session exited without hitting any breakpoint
- Debug view to see Adapter/RPC log messages
- Testing
  - Fake debug adapter
    - Fake requests & events

---

Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>
Co-authored-by: Piotr <piotr@zed.dev>

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

ed4e654 assistant_tools: Add `fetch` tool (#26999)

Click to expand commit body
This PR adds a new `fetch` tool to the set of tools the Assistant has
available.

This tool accepts a URL and fetches the content as Markdown.

<img width="1394" alt="Screenshot 2025-03-18 at 11 52 21 AM"
src="https://github.com/user-attachments/assets/e5bcde14-a0dd-4835-9d42-8f45def68f4d"
/>

<img width="1394" alt="Screenshot 2025-03-18 at 11 52 37 AM"
src="https://github.com/user-attachments/assets/3bcce4f5-f61b-40d7-8b30-2c673ce3c06a"
/>

Release Notes:

- N/A

Marshall Bowers created

baaafdd worktree: Fix tracking of git status scans and re-enable tests (#26926)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Cole Miller created

b70f21c assistant_tools: Rename `RegexSearchTool` module to match the others (#27001)

Click to expand commit body
This PR renames the `RegexSearchTool` module to `regex_search_tool.rs`
to match the other tools.

Release Notes:

- N/A

Marshall Bowers created

5615be5 assistant edit tool: Revert fuzzy matching (#26996)

Click to expand commit body
#26935 is leading to bad edits, so let's revert it for now. I'll bring
back a version of this, but it'll likely just focus on indentation
instead of making the whole search fuzzy.

Release Notes: 

- N/A

Agus Zubiaga created

06e9f0e Paginate regex and path search tools (#26997)

Click to expand commit body
<img width="630" alt="Screenshot 2025-03-18 at 10 50 17 AM"
src="https://github.com/user-attachments/assets/0aee5367-402a-405a-8676-f2f8af425b1e"
/>

Release Notes:

- N/A

Richard Feldman created

41a2be7 assistant2: Keep the tool selector open when toggling tools (#26994)

Click to expand commit body
This PR makes it so the tool selector will stay open when toggling tools
instead of closing after each selection:


https://github.com/user-attachments/assets/eb987785-cfb5-4b07-8d63-510fbd9d9bf1

This involved making a change to `ContextMenu` to allow it to rebuild
its menu items after each confirmation in order for them to reflect
their selected/unselected status. I intend to clean up the `ContextMenu`
API a bit at a later point, but that is out of scope for this PR.

Release Notes:

- N/A

Marshall Bowers created

e38ae42 Add missing commit event reporting (#26990)

Click to expand commit body
cc @morgankrey 

Release Notes:

- N/A

Cole Miller created

68bb3bd Add more shortcuts for `editor::OrganizeImports` (#26932)

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

Release Notes:

- N/A

Peter Tripp created

122e73f Allow read-file tool to read a subset of a file (#26966)

Click to expand commit body
Release Notes:

- N/A

Richard Feldman created

4b77550 migrator: Fix case where users see migration banner despite no diff changes (#26982)

Click to expand commit body
Fixes edge case where after carrying out all migrations if final text is
same as existing text, we don't need to ask user to do anything, despite
migrations edits are being applied internally. E.g. A -> B - > C -> A

Release Notes:

- N/A

Smit Barmase created

a9f7c05 docs: Use correct name for Intelephense license file (#26986)

Click to expand commit body
This PR updates the Intelephense section of the PHP docs to use the
correct name for the license file.

Intelephense uses British English:

<img width="1185" alt="Screenshot 2025-03-18 at 8 30 20 AM"
src="https://github.com/user-attachments/assets/a675e854-bedf-4f70-bf8f-90488d196242"
/>

Release Notes:

- N/A

Marshall Bowers created

ac617e2 Keep and filter word completions on input, if the menu is open (#26979)

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

Release Notes:

- N/A

Kirill Bulatov created

26f4b2a assistant2: Combine file & directory picker (#26975)

Click to expand commit body
In the process of adding `@mentions` we realized that we do not want to
make a distinction between Files & Directories in the UI, therefore this
PR combines the File & Directory pickers into a unified version



https://github.com/user-attachments/assets/f3bf189c-8b69-4f5f-90ce-0b83b12dbca3

(Ignore the `@mentions`, they are broken also on main)

Release Notes:

- N/A

Bennet Bo Fenner created

fdcacb3 typescript: Add highlighting for Angular inline components (#26553)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Before
<img width="1004" alt="image"
src="https://github.com/user-attachments/assets/9a611e8d-e00e-4dc7-b4c9-bd76fec95525"
/>

After
<img width="936" alt="Image"
src="https://github.com/user-attachments/assets/b83d3309-1aab-492c-a2f1-c45cd19e6bcc"
/>

Sheik Althaf created

f61d3d2 Use `futures::future::join_all` instead of `futures::stream` in assistant_eval (#26974)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

a562166 Update to git2 0.20.1 (#26972)

Click to expand commit body
Switch back to git2 releases after
https://github.com/rust-lang/git2-rs/pull/1120 got merged in 0.20.1

Release Notes:

- N/A

tidely created

b6198ad Add `Ord` and `PartialOrd` impls for gpui entity types (#26968)

Click to expand commit body
Motivation is to be able to use entities as TreeMap keys.

Release Notes:

- N/A

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

Michael Sloan and Nathan created

5210d9e Tidier multibuffer (#26954)

Click to expand commit body
Makes multibuffer headers less close to the top of the file.

Moves multibuffer line numbers one em to the right to make space for the
expand excerpt button on large line numbers.

Release Notes:

- N/A

---------

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

Conrad Irwin and Danilo Leal created