6143da9
editor: Fix regression in git label colors due to status color changes (#27272)
Click to expand commit body
This PR fixes the new awkward-looking git status labels due to the
change in version control colors. We want to enable styling version
control colors distinctly from other statuses, but these colors aren't
great for labels as they are meant to be quite high contrast.
We may need to split version control colors into a primary color and a
text color if we want to improve theming this overall.
| Before | After |
|--------|-------|
| 
| 
|
Release Notes:
- Fixes a regression in git status colors in the project panel
Nate Butler
created
7ced1b7
Fix strikethrough and underline in Linux (#27267)
Click to expand commit body
Follow up to #26827 and #24721, which introduced a bug in Linux.
|before|now|
|---|---|
||!|
Release Notes:
- N/A
Co-authored-by: Jason Lee <huacnlee@gmail.com>
This PR adjust the size of the fold button on the multibuffer header.
Had to make the `height` method public on the Button Like to pull that
off without other major changes.
| Before | After |
|--------|--------|
| 
| 
|
Release Notes:
- N/A
Danilo Leal
created
1cca2e3
keymap: Remove backspace/delete as shortcuts for `git::RestoreFile` (#27257)
Click to expand commit body
- See also: https://github.com/zed-industries/zed/pull/27004
Release Notes:
- N/A
Peter Tripp
created
0de5c2e
assistant2: Order agent profiles in the order they are defined in settings (#27255)
Click to expand commit body
This PR updates the ordering of the agent profiles in the tool selector
to respect the order they are defined in in the settings instead of
sorting them alphabetically.
This gives the user more control, and allows them to order the profiles
as they desire.
Release Notes:
- N/A
Marshall Bowers
created
6397872
Persist editor folds between restarts (#27252)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/11626
https://github.com/user-attachments/assets/276cca5f-dd87-4496-b1b8-40b211f65aa7
Folds restoration between editor reopens will follow later
Release Notes:
- Started to persist editor folds between restarts
Kirill Bulatov
created
93bd32b
Fix toggling breakpoints not working when text anchor isn't at start (#27249)
Click to expand commit body
This fixes a bug where breakpoint's were unable to be toggled if the
text::Anchor representing the breakpoint position was not at the
beginning of a line.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Anthony Eid
created
f119550
assistant2: Define built-in agent profiles in the default settings (#27251)
Click to expand commit body
This PR moves the definitions of the built-in agent profiles into the
default `settings.json`.
It also changes the behavior of how this setting is treated when merging
settings such that the set of profiles will be merged. This is so users
don't clobber the built-in profiles when adding profiles of their own.
Release Notes:
- N/A
Marshall Bowers
created
4e93e38
assistant2: Sort tools in the tool selector by ID (#27247)
Click to expand commit body
This PR makes it so the tools in the tool selector are sorted by ID so
that they have a deterministic order.
Release Notes:
- N/A
Marshall Bowers
created
05aa888
project: Track manifest locations per unique manifest locator (#27194)
Click to expand commit body
This pull request paves way for exposing manifest tracking to
extensions.
- Project tree was renamed to manifest tree to better reflect it's
intent (and avoid confusion).
- Language server adapters now provide a name of their *manifest
locator*. If multiple language servers refer to the same locator, the
locating code will run just once for a given path.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Anthony <anthony@zed.dev>
This PR fixes an issue where the scripting tool wasn't being disabled
when switching to a profile that did not have it enabled.
Release Notes:
- N/A
Marshall Bowers
created
e14ebcf
Show "Restore Checkpoint" only when there were changes (#27243)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Antonio Scandurra
,
Agus Zubiaga
,
Bennet Bo Fenner
, and
Danilo Leal
created
9d965bc
Change default Markdown `soft_wrap` to "bounded" (#27205)
Click to expand commit body
- Follow-up to: https://github.com/zed-industries/zed/pull/26247
Previously with defaults meant that Markdown would softwrap even if you
had available window space (soft_wrap occurred at default
`preferred_line_length` of 80).
Release Notes:
- Changed Markdown default to soft_wrap at window width instead of
preferred_line_length
Peter Tripp
created
5798681
lsp: Fix workspace folders being cleared when new set is the same as the old one (#27242)
Click to expand commit body
Release Notes:
- N/A
Piotr Osiewicz
created
a709d4c
assistant: Add support for `claude-3-7-sonnet-thinking` (#27085)
Click to expand commit body
Closes #25671
Release Notes:
- Added support for `claude-3-7-sonnet-thinking` in the assistant panel
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Bennet Bo Fenner
,
Danilo Leal
,
Antonio Scandurra
, and
Agus Zubiaga
created
33fc1f4
languages: Fix JS/TS imports not showing correct suggestions after using period (#27235)
Click to expand commit body
Closes #21728
This PR improves autocomplete for imports for all kinds of javascript
and typescript files.
Adds `.` as `completion_query_characters` which will make it act like
word for auto completion context. This allows capturing compete
`format.` as query.
Before:
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/849fb342-db73-48e7-a9d8-93f0e5a14b58"
/>
After:
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/e3ac3272-3217-4bcd-857f-4a83afc5980e"
/>
Release Notes:
- Improved autocomplete suggestions for JavaScript and TypeScript
imports.
Smit Barmase
created
7ade7d8
lsp-config: Allow setting a server's environment variables (#27213)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/14334, allowing
users to set environment variables for a language server binary like:
```json
"lsp": {
"rust-analyzer": {
"binary": {
"path": "/Users/dbarsky/.cargo/bin/rust-analyzer",
"env": {
"RA_PROFILE": "*>100"
}
},
}
}
```
The newly introduced environment variables are merged with the shell
environment. Perhaps more controversially, I've _also_ removed the
trimming/`stderr:`-prefixing of language server logs. This because
rust-analyzer has some nice, tree-shaped profiling built-in, and it
prevents us from printing profiles like this:
<details>
<img width="1147" alt="Screenshot 2025-03-20 at 12 09 14 PM"
src="https://github.com/user-attachments/assets/b7066651-6394-492b-b745-906c66d3c7b2"
/>
</details>
Release Notes:
- Added the ability to set a language server's environment variables.
- Removed the `stderr`-prefix of a language server's stderr logs.
Release Notes:
- N/A
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Danilo Leal
,
Bennet Bo Fenner
,
Antonio Scandurra
, and
Agus Zubiaga
created
962709f
docs: Change `render` function's return type (#27229)
迷渡
created
cf7d639
Migrate most callers of git-related worktree APIs to use the GitStore (#27225)
Click to expand commit body
This is a pure refactoring PR that goes through all the git-related APIs
exposed by the worktree crate and minimizes their use outside that
crate, migrating callers of those APIs to read from the GitStore
instead. This is to prepare for evacuating git repository state from
worktrees and making the GitStore the new source of truth.
Other drive-by changes:
- `project::git` is now `project::git_store`, for consistency with the
other project stores
- the project panel's test module has been split into its own file
Release Notes:
- N/A
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Cole Miller
and
Max Brunsfeld
created
9134630
extensions: Add copy author info button in context menu (#27221)
Click to expand commit body
Closes #26108
Add "Copy Author Info" button to extension context menu.
Release Notes:
- Added option to copy extension author's name and email from extension
context menu.
Smit Barmase
created
bc1c0a2
Separate repository state synchronization from worktree synchronization (#27140)
Click to expand commit body
This PR updates our DB schemas and wire protocol to separate the
synchronization of git statuses and other repository state from the
synchronization of worktrees. This paves the way for moving the code
that executes git status updates out of the `worktree` crate and onto
the new `GitStore`. That end goal is motivated by two (related) points:
- Disentangling git status updates from the worktree's
`BackgroundScanner` will allow us to implement a simpler concurrency
story for those updates, hopefully fixing some known but elusive bugs
(upstream state not updating after push; statuses getting out of sync in
remote projects).
- By moving git repository state to the project-scoped `GitStore`, we
can get rid of the duplication that currently happens when two worktrees
are associated with the same git repository.
Co-authored-by: Max <max@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Cole Miller
,
Max
, and
Max Brunsfeld
created
700af63
assistant2: Watch settings for changes to profiles (#27219)
Click to expand commit body
This PR makes it so we watch the settings and update when the profiles
change.
Release Notes:
- N/A
Marshall Bowers
created
4b5df21
assistant2: Allow creating agent profiles via settings (#27216)
Click to expand commit body
This PR adds support for creating new agent profiles via the settings:
```json
{
"assistant": {
"profiles": {
"lua": {
"name": "Lua",
"tools": {
"lua-interpreter": true
}
},
"lua-thinking": {
"name": "Lua + Thinking",
"tools": {
"lua-interpreter": true,
"thinking": true
}
}
}
}
}
```
Release Notes:
- N/A
Marshall Bowers
created
48b1a43
docs: Fix rendering of keybind in `languages.md` (#27217)
Click to expand commit body
This fixes a broken keybind in the language extension docs: [Language
metadata](https://zed.dev/docs/extensions/languages#language-metadata) >
`line_comments`.
Release Notes:
- N/A
Finn Evers
created
9609e04
Add a way to copy with the selections trimmed (#27206)
Click to expand commit body
No default binding currently, `cmd/ctr-shift-c` seem somewhat natural
but those are occupied by the collab panel.
https://github.com/user-attachments/assets/702cc52a-a4b7-4f2c-bb7f-12ca0c66faeb
Release Notes:
- Added a way to copy with the selections trimmed
---------
Co-authored-by: Cole Miller <m@cole-miller.net>
Kirill Bulatov
and
Cole Miller
created
a74f2bb
Reuse values from last debug panel inert state if they exist (#27211)
Click to expand commit body
This should allow the team to iterate faster when using the debug panel
to set up a session
Release Notes:
- N/A
This PR fixes a few issues around shutting down a debug adapter.
The first issue I discovered was when I shut down all sessions via
`shutdown all adapters` command. We would still fetch the threads
request again, because we receive a thread event that indicated that it
exited. But this will always time out because the debug adapter is
already shutdown at this point, so by updating the check so we don't
allow fetching a request when the session is terminated fixes the issue.
The second issue fixes a bug where we would always shut down the parent
session, when a child session is terminated. This was reintroduced by
the big refactor. This is not something we want, because you could
receive multiple StartDebugging reverse requests, so if one child is
shutting down that does not mean the other ones should have been
shutting down as well.
Issue was original fixed in
https://github.com/RemcoSmitsDev/zed/pull/80#issuecomment-2573943661.
## TODO:
- [x] Add tests
Release Notes:
- N/A
Remco Smits
created
7b80cd8
Show more possible matches in code context completion (#27199)
Click to expand commit body
Closes #24794
We now don't filter matches provided by the fuzzy matcher, as it already
performs most of the filtering for us. Instead, the custom logic we
previously used for filtering is now used to partition, where before
discarded matches will be appended at end of list.
Before - Filtering out matches with higher fuzzy score
<img width="400" alt="image"
src="https://github.com/user-attachments/assets/7f9d66a2-0921-499c-af8a-f1e530da50b1"
/>
After - Changing filter to partition instead, and appending remaining
items at the end
<img width="400" alt="image"
src="https://github.com/user-attachments/assets/45848f70-ed51-4935-976c-6c16c5b5777b"
/>
Release Notes:
- Improved LSP auto complete to show more possible matches.
---------
Co-authored-by: Peter Tripp <petertripp@gmail.com>
Smit Barmase
and
Peter Tripp
created
7931b1d
Pre-fill body of email with system specs (#27210)
Click to expand commit body
I think we still want to be able to easily capture system spec info from
users. They can decide if they want to include it or not.
Release Notes:
- N/A
Joseph T. Lyons
created
27ebedf
gpui: Make `App::get_name` return an `Option` (#27209)
Click to expand commit body
This PR makes `App::get_name` return an `Option` instead of panicking if
the name is not set.
We'll let the caller be responsible for dealing with the absence of a
name.
Release Notes:
- N/A
Marshall Bowers
created
f9f5126
assistant2: Uniquely identify context server entries in configuration view (#27207)
Click to expand commit body
This PR gives each context server entry in the configuration view a
unique element ID.
This fixes some issues where the disclosures and switches weren't
working properly due to element ID collisions.
Release Notes:
- N/A
Marshall Bowers
created
6408ae8
assistant2: Return no-edits response to architect model (#27200)
Click to expand commit body
Sometimes the editor model returns no search/replace blocks. This
usually happens when the architect model calls the edit tool before
reading any files. When this happens, we'll now return the raw response
from the editor model to the architect model so it can recover
accordingly.
Release Notes:
- N/A
Agus Zubiaga
created
c60a703
context_server: Interpret context server command paths relative to the extension's work dir (#27201)
Click to expand commit body
This PR fixes an issues where the commands returned from context server
extensions were being used as-is instead of interpreting them relative
to the extension's work dir.
Release Notes:
- Fixed an issue with context server paths not being interpreted
relative to the extension's work dir.
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Thomas Mickley-Doyle <tmickleydoyle@gmail.com>
Marshall Bowers
,
Max Brunsfeld
, and
Thomas Mickley-Doyle
created
7feb50f
Add UI feedback for checkpoint restoration (#27203)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Antonio Scandurra
,
Agus Zubiaga
, and
Bennet Bo Fenner
created
f365b80
Avoid polluting branch list and restore parent commit when using checkpoints (#27191)
After our last community sync, we came to the conclusion that feedback
being sent outside of email is difficult to reply to. Our decision was
to use the old, tried and true email system, so that we can better
respond to people asking questions.
<img width="392" alt="SCR-20250320-igub"
src="https://github.com/user-attachments/assets/f1d01771-30eb-4b6f-b031-c68ddaac5700"
/>
Release Notes:
- N/A
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Joseph T. Lyons
and
Danilo Leal
created
2e8c0ff
assistant edit tool: Report when file is empty or doesn't exist (#27190)
Click to expand commit body
Instead of just reporting a search match failure, we'll now indicate
whether the file is empty or exists to help the model recover better
from bad edits.
Release Notes:
- N/A
Agus Zubiaga
created
4421bdd
assistant: Dismiss model picker upon selection (#27162)
Click to expand commit body
This PR makes the model picker close when you click on a new item.
Release Notes:
- N/A
<img width="639" alt="Screenshot 2025-03-19 at 4 56 47 PM"
src="https://github.com/user-attachments/assets/b997f04d-4aff-4070-87b1-ffdb61019bd1"
/>
Release Notes:
- N/A
---------
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Richard Feldman
and
Agus Zubiaga
created
aae81fd
Notify about broken task file contents (#27185)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/23783
https://github.com/user-attachments/assets/df019f68-a76b-4953-967a-a35ed21206ab
Release Notes:
- Added notifications when invalid tasks.json/debug.json is saved
Kirill Bulatov
created
de99feb
debugger: Ensure both debug and regular global tasks are correctly merged (#27184)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/13433
Closes https://github.com/zed-industries/zed/issues/27124
Closes https://github.com/zed-industries/zed/issues/27066
After this change, both old global task source, `tasks.json` and new,
`debug.json` started to call for the same task update method:
https://github.com/zed-industries/zed/blob/14920ab910c6d0208d23ce6b6e2ed644e6f20f2e/crates/project/src/task_inventory.rs#L414
erasing previous declarations.
The PR puts this data under different paths instead and adjusts the code
around it.
Release Notes:
- Fixed custom tasks not shown
Kirill Bulatov
created
5bef32f
When determining Python task context, do not consider worktree-less files as an error (#27183)
Click to expand commit body
Makes Python plugin to output

for standalone Python files now, instead of nothing as now.
Before the change, no task context was created for the standalone file
due to `VariableName::RelativeFile` lookup considered as an error.
Now, Zed continues and constructs whatever possible context instead.
That `pytest` task seems odd, as the logic fixed here needs a relative
path (hence, a worktree) to consider unit tests.
We do not have variables at the moment the associated tasks are queried
for:
https://github.com/zed-industries/zed/blob/14920ab910c6d0208d23ce6b6e2ed644e6f20f2e/crates/languages/src/python.rs#L359-L363
https://github.com/zed-industries/zed/blob/14920ab910c6d0208d23ce6b6e2ed644e6f20f2e/crates/languages/src/python.rs#L417-L446
so we cannot filter this the same way the PR does.
Maybe, we can use a `VariableName::RelativeFile` instead of
`VariableName::File` there?
Release Notes:
- Show tasks from Python plugin for standalone files
Kirill Bulatov
created
23e8519
Add `completion_query_characters` in language (#27175)
Click to expand commit body
Closes #18581
Now characters for completing query and word characters, which are
responsible for selecting words by double clicking or navigating, are
different. This fixes a bunch of things:
For settings.json, this improves completions to treat the whole string
as a completion query, instead of just the last word. We now added
"space" as a completion query character without it being a word
character.
For keymap.json, this improves selecting part of an action as the ":"
character is only a completion character and not a word character. So,
completions would still trigger on ":" and query capture will treat ":"
as a word, but for actions like selections and navigation, ":" will be
treated as punctuation.
Before:
Unnecessary related suggestions as query is only the last word which is
"d".
<img width="300" alt="image"
src="https://github.com/user-attachments/assets/8199a715-7521-49dd-948b-e6aaed04c488"
/>
Double clicking `ToggleFold` selects the whole action:
<img width="300" alt="image"
src="https://github.com/user-attachments/assets/c7f91a6b-06d5-45b6-9d59-61a1b2deda71"
/>
After:
Now query is "one d" and it shows only matched ones.
<img width="300" alt="image"
src="https://github.com/user-attachments/assets/1455dfbc-9906-42e8-b8aa-b3f551194ca2"
/>
Double clicking `ToggleFold` only selects part of the action, which is
more refined behavior.
<img width="300" alt="image"
src="https://github.com/user-attachments/assets/34b1c3c2-184f-402f-9dc8-73030a8c370f"
/>
Release Notes:
- Improved autocomplete suggestions in `settings.json`, now whole string
is queried instead of just last word of string, which filters out lot of
false positives.
- Improved selection of action in `keymap.json`, where now you can
double click to only select certain part of action, instead of selecting
whole action.
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Smit Barmase
,
Max Brunsfeld
, and
Ben Kunkle
created
1180b6f
Initial support for AI assistant rules files (#27168)