9ef454d
Add section on how to disable "Verifying..." popup when developing on macOS (#22857)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
7e39023
assistant2: Push logic for adding thread context down into the `ContextStore` (#22855)
Click to expand commit body
This PR takes the logic for adding thread context out of the
`ThreadContextPicker` and pushes it down into the `ContextStore`.
Release Notes:
- N/A
Marshall Bowers
created
b783965
collab: Record cancellation reason on billing subscriptions (#22853)
Click to expand commit body
This PR updates the `billing_subscriptions` in the database to record
the cancellation reason from Stripe.
We're primarily interested in this so we can check for subscriptions
that were canceled for being `past_due`.
Release Notes:
- N/A
Marshall Bowers
created
69dde8e
assistant2: Push logic for adding directory context down into the `ContextStore` (#22852)
Click to expand commit body
This PR takes the logic for adding file context out of the
`DirectoryContextPicker` and pushes it down into the `ContextStore`.
Release Notes:
- N/A
Marshall Bowers
created
86f5bb1
assistant2: Push logic for adding file context down into the `ContextStore` (#22846)
Click to expand commit body
This PR takes the logic for adding file context out of the
`FileContextPicker` and pushes it down into the `ContextStore`.
Release Notes:
- N/A
Marshall Bowers
created
d855eb3
Update reference to editor::OpenFile in keymap (#22827)
Click to expand commit body
Follow-up to #22494
Release Notes:
- N/A
Cole Miller
created
632372a
linux: Fix issue with project-specific env not being found via .envrc (direnv) (#22803)
Click to expand commit body
Closes #18908
This PR started as a cleanup of redundant logic for setting up envs when
Zed is launched as a desktop entry on Linux. More on this can be read
[here](https://github.com/zed-industries/zed/pull/22335#issuecomment-2574726377).
The TLDR is that desktop entries on Linux sometimes might not have the
correct envs (as they don't `cwd` into your project directory). To
address this, we initially tried to fix it by loading the default shell
and its env vars.
However, a better solution, as recommended by @mrnugget, is to pass
`env` as `None`. Internally, if `env` is `None`, it falls back to the
project's working dir envs. This removes the need to manually load the
envs and is cleaner.
Additionally, it also fixes an issue with Zed not loading
project-specific envs because now we are actually doing so (albeit
unintentionally?).
I don't have macOS to test, but I believe this is not an issue on macOS
since it uses the Zed binary instead of the CLI, which essentially sets
the CLI `env` to `None` automatically.
Before:
Here, I have `/home/tims/go/bin` set up in `.envrc`, which only loads in
that project directory.
When launching Zed via the CLI in the project directory, notice
`/home/tims/go/bin` is in the `PATH`. As a result, we use the
user-installed `gopls` server.
```sh
[INFO] attempting to start language server "gopls", path: "/home/tims/temp/go-proj", id: 1
[INFO] using project environment variables from CLI. PATH="/home/tims/go/bin:/usr/local/go/bin"
[INFO] found user-installed language server for gopls. path: "/home/tims/go/bin/gopls", arguments: ["-mode=stdio"]
[INFO] starting language server process. binary path: "/home/tims/go/bin/gopls", working directory: "/home/tims/temp/go-proj", args: ["-mode=stdio"]
```
However, when using the desktop entry and attempting to load envs from
the default shell, notice `/home/tims/go/bin` is no longer there since
it's not in the project directory. Zed cannot find the user-installed
language server and starts downloading its own `gopls`.
```sh
[INFO] attempting to start language server "gopls", path: "/home/tims/temp/go-proj", id: 1
[INFO] using project environment variables from CLI. PATH="/usr/local/go/bin"
[INFO] fetching latest version of language server "gopls"
[INFO] downloading language server "gopls"
[INFO] starting language server process. binary path: "/home/tims/.local/share/zed/languages/gopls/gopls_0.17.1_go_1.23.4", working directory: "/home/tims/temp/go-proj", args: ["-mode=stdio"]
```
After:
When using the desktop entry, we pass the CLI env as `None`. For the
language server, it falls back to the project directory envs. Result,
Zed finds the user-installed language server.
```sh
[INFO] attempting to start language server "gopls", path: "/home/tims/temp/go-proj", id: 1
[INFO] using project environment variables shell launched in "/home/tims/temp/go-proj". PATH="/home/tims/go/bin:/usr/local/go/bin"
[INFO] found user-installed language server for gopls. path: "/home/tims/go/bin/gopls", arguments: ["-mode=stdio"]
[INFO] starting language server process. binary path: "/home/tims/go/bin/gopls", working directory: "/home/tims/temp/go-proj", args: ["-mode=stdio"]
```
Release Notes:
- Fixed issue with project-specific env not being found via .envrc
(direnv) on Linux
tims
created
a248981
zeta: Validate completion responses for markers (#22840)
Click to expand commit body
Check for markers and how many there are to avoid markers showing up in
completions.
Release Notes:
- N/A
Thorsten Ball
created
9850bf8
Fix extend selection shortcuts in JetBrains keymap on macOS (#22814)
Click to expand commit body
Fixups https://github.com/zed-industries/zed/pull/20199
As mentioned in [the post-merge comment][1], the original change was
wrong. The JetBrains IDEs use <kbd>⌥</kbd> (option) key on macOS for the
shortcuts, which corresponds to the <kbd>alt</kbd> key in the keymap
config.
Release Notes:
- Fixed extend/shrink selection in JetBrains keymap on macOS
[1]:
https://github.com/zed-industries/zed/pull/20199#issuecomment-2468136572
Fixes an incorrect error message.
Turns out it is impossible to set remote tracking to a branch that doesn't exist on the remote, so let's not even try.
Reverts #22834
Reverts #22614
Peter Tripp
created
7f0e132
Fix upstream branch tracking error in script/bump-zed-minor-versions (#22834)
Click to expand commit body
Follow-up to: https://github.com/zed-industries/zed/pull/22614
Mostly just fine-tuning the styles and modernizing some of the component
usage. Visually, it doesn't change that _much_, but it still polishes it
up a bit.
| Before | After |
|--------|--------|
| <img width="1426" alt="Screenshot 2025-01-08 at 11 25 01 AM"
src="https://github.com/user-attachments/assets/df074f88-08c0-47c2-bd98-1a8b6dbadc99"
/> | <img width="1426" alt="Screenshot 2025-01-08 at 11 23 24 AM"
src="https://github.com/user-attachments/assets/250e3aee-fd1b-4b32-b305-e58b4fede75a"
/> |
Release Notes:
- N/A
Danilo Leal
created
115aa43
Adjust `TintColor` color token terminology (#22826)
Click to expand commit body
Previously, to use a green and red shade with `TintColor` you'd need to
pass `Positive` and `Negative`, respectively. This terminology always
tripped me up, because, for example, I'd often try to use something
like:
```
Button::new("icon_color", "Negative")
style(ButtonStyle::Tinted(TintColor::Negative))
.color(Color::Error)
.icon_color(Color::Error)
.icon(IconName::Trash),
)
```
...and due to `icon_color` taking `Color::Error`, I'd always get
`TintColor` wrong at a first try, because I would, out of muscle memory,
write `TintColor::Error`, which wouldn't compile. That's exactly the
change in this PR—`TintColor` now takes `Success` and `Error` instead of
`Positive` and `Negative`, for more consistency.
Release Notes:
- N/A
Danilo Leal
created
bbb473b
Add a dedicated action to open files (#22625)
Click to expand commit body
Closes #22531
Closes #22250
Closes #15679
Release Notes:
- Add `workspace::OpenFiles` action to enable opening individual files
on Linux and Windows
Cole Miller
created
3630144
assistant2: Handle non-text files in context pickers (#22795)
Click to expand commit body
We'll now show an error message if the user tries to add a directory
that contains no text files or when they try to add a single non-text
file.
Release Notes:
- N/A
---------
Co-authored-by: Danilo <danilo@zed.dev>
Agus Zubiaga
and
Danilo
created
52f29b4
Fix conversation selector popover menu offset (#22796)
Click to expand commit body
Before, the conversation popover menu covered up what you were typing
because it wasn't offset properly.
Now it's offset properly, using the UI font size so the amount of offset
scales with the font size:
<img width="435" alt="Screenshot 2025-01-07 at 4 34 27 PM"
src="https://github.com/user-attachments/assets/55e40910-8cd4-4548-b4fb-521eb2845775"
/>
<img width="454" alt="Screenshot 2025-01-07 at 4 33 58 PM"
src="https://github.com/user-attachments/assets/30350489-09f1-4cb8-9f95-ed4ee87bc110"
/>
<img width="488" alt="Screenshot 2025-01-07 at 4 34 18 PM"
src="https://github.com/user-attachments/assets/de60d990-2bd9-418d-a616-56beb3e4aa8a"
/>
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Richard Feldman
created
68e670b
Fix rust runnable is not detected if comment is after #[test] attribute (#22823)
Click to expand commit body
Closes #22798
This fixes that we didn't detect the Rust runnable when there was a
comment after the `#[test]` attribute.

Release Notes:
- Fixed Rust runnable not detected when comment is after `#[test]`
attribute.
---------
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Goal: Allow zed to locate [`pixi`](https://github.com/prefix-dev/pixi)
environments
Changes:
- Uses a newer release of
[`python-environment-tools`](https://github.com/microsoft/python-environment-tools)
with the new `pet-pixi` create
- Adds `PythonEnvironmentKind::Pixi` as a possible environment kind, to
allow the rest of the code to detect the environment
I tested the changes locally. It found the correct pixi environment and
I was able to run `pytest` through the UI icon.
Release Notes:
- Added detection for pixi-environments
---------
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Yasin
and
Piotr Osiewicz
created
f9ee28d
vim: Fix clipping when navigating over inlay hints (#22813)
Click to expand commit body
This fixes the issue described in this comment:
https://github.com/zed-industries/zed/pull/22439#issuecomment-2563896422
Essentially, we'd clip in the wrong direction when there were multi-line
inlay hints.
It also fixes inline completions for non-Zeta-providers showing up in
normal mode.
Release Notes:
- N/A
Co-Authored-By: Thorsten <thorsten@zed.dev>
Release Notes:
- Fix selected suggestion updating too many times when Zeta triggers
Co-authored-by: Thorsten <thorsten@zed.dev>
Conrad Irwin
and
Thorsten
created
0b361e5
Fix panic in request_multiple_lsp_locally (#22806)
Click to expand commit body
Release Notes:
- Fix a panic after disconnecting from a remote project
Conrad Irwin
created
222b045
vim: Add AnyQuotes support for unified quote handling similar to mini.ai nvim (#22263)
Click to expand commit body
### Edit 1:
I tested it locally and it works!
### IMPORTANT:
**Feedback and suggestions for improvement are greatly appreciated!**
This commit introduces a new AnyQuotes text object to handle text
surrounded by single quotes ('), double quotes ("), or back quotes (`)
seamlessly. The following changes are included:
- Added AnyQuotes to the Object enum to represent the new feature.
- Registered AnyQuotes as an action in the actions! macro and register
function to ensure proper integration with Vim actions like ci, ca, di,
and da.
- Extended Object::range to check for surrounding single, double, or
back quotes sequentially.
- Updated methods like is_multiline and always_expands_both_ways to
ensure consistent behavior with other text objects.
- Added support in surrounding_markers to evaluate any of the quote
types when AnyQuotes is invoked.
- This enhancement provides users with a flexible and unified way to
interact with text objects enclosed by different types of quotes.
Release Notes:
- vim: Add `aq`/`iq` "any quote" text objects that are the smallest of
`a"`, `a'` or <code>a`</code>
Osvaldo
created
811b872
Fix no whitespace displaying after an "à " (#22403)
Click to expand commit body
fixed a bug where with the "show_whitespaces": "boundary" option, when
there was an "à" followed by a space, a white space was displayed, and
when "à" was at the end of the line, a white space was added
Release Notes:
- N/A
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This PR updates some doc comments in the `ui` crate:
- End doc comments with punctuation
- Place doc comments above attributes
Release Notes:
- N/A
Marshall Bowers
created
eae88a5
Include generate-licenses into bundle-mac script (#22800)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/21613
Same as `bundle-linux`, to avoid panicking on missing licenses for
homegrown-built releases when `Help -> View dependency licenses` menu
action is triggered.
Release Notes:
- Altered bundle-mac script to generate licenses
Kirill Bulatov
created
a331497
Display language server info in the server logs tab (#22797)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/19448
When dealing with issues like
https://github.com/zed-industries/zed/issues/22749, it's quite tedious
to ask for logs and check them out.
This PR attempts to establish a single "diagnose my language server"
place in the server logs panel, where server capabilities were already
displayed after https://github.com/zed-industries/zed/pull/19448
The design is pretty brutal, but seems to be on par with the previous
version and it's a technical corner of Zed, so seems to be ok for now:

Release Notes:
- Improved lsp logs view to display more language server data
Kirill Bulatov
created
a653e8a
Remove ENABLE_MATH option from pulldown_cmark to fix links which contain dollar sign (#22647)
Click to expand commit body
This pr closes #21466 issue by disabling math in pulldown_cmark Parser.
The dollar sign symbol is used in pulldown_cmark Math extension, see
"Math in links" section for more details:
https://pulldown-cmark.github.io/pulldown-cmark/specs/math.html
I've tried another approach at first, without disabling math extension:
```
let iterator = TextMergeWithOffset::new(Parser::new_ext(text, options));
```
instead of current implementation
```
Parser::new_ext(text, options).into_offset_iter()
```
This way pulldown_cmark merges consecutive text events and this helps to
correctly parse links from plain text:
https://svelte.dev/docs/svelte/$state
But in this case the dollar sign still breaks markdown links:
\[https://svelte.dev/docs/svelte/$state](https://svelte.dev/docs/svelte/$state)
So in the end I disabled the math extension, it fixes both link formats.
See markdown/examples/markdown.rs to reproduce.
Release Notes:
- N/A
This PR shifts the design of checkboxes and introduces ways to style
checkboxes based on Elevation, or tint them with a custom color.
This may have some impacts on existing uses of checkboxes.
When creating a checkbox you now need to call `.fill` if you want the
checkbox to have a filled style.
Before:


After:


Release Notes:
- N/A
Nate Butler
created
7a66c76
python: Check for activate script existence before running it (#22792)
Click to expand commit body
Closes #ISSUE
Release Notes:
- Python auto-venv activation in terminal now checks for path existence
before executing the activate script.
Piotr Osiewicz
created
9d5ae51
assistant2: Add keybinding for "Remove All Context" action (#22783)
Click to expand commit body
Ensuring all of the assistant 2 actions have keybindings.
Release Notes:
- N/A
---------
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Danilo Leal
,
Agus Zubiaga
, and
Marshall Bowers
created
I'm consistently getting the following error on startup:
```
2025-01-05T14:45:43.4602865+01:00 [ERROR] SHELL environment variable is not assigned so we can't source login environment variables
Caused by:
environment variable not found
```
The source function, `load_login_shell_environment`, assumes a UNIX
environment and should therefore not be called on Windows. (Unless you
are using git bash?)
Release Notes:
* N/A
Tim Vilgot Mikael Fredenberg
created
c53615f
assistant2: Add intermediate bindings to improve conditional readability (#22790)
Click to expand commit body
This PR adds some intermediate bindings to the checks for if a
file/directory is already included to make the conditional a bit
clearer.
It wasn't immediately obvious what the boolean values corresponded to
when looking at it.
Release Notes:
- N/A
Marshall Bowers
created
fffa40f
assistant2: Make context persistent in the thread (#22789)
Click to expand commit body
This PR makes it so the context is persistent in the thread, rather than
having to reattach it for each message.
This PR intentionally does not make an attempt to refresh the attached
context if it changes. That will come in a follow-up.
Release Notes:
- N/A
Marshall Bowers
created
76a8b55
assistant2: Add little design improvements (#22784)
Click to expand commit body
The most relevant change in this PR is ensuring that the path tooltip
doesn't overlap with the "Remove Context" tooltip. Now, the former
tooltip only shows if you hover over the context pill's label. This
avoids a little flicker that was happening as the path tooltip would
show first and then quickly followed by the icon button's one.
Release Notes:
- N/A
Danilo Leal
created
deeccd2
assistant2: Focus prompt editor after dismissing context picker (#22786)
d3fc00d
windows: Fix fs watch when file doesn't exist or is a symlink (#22660)
Click to expand commit body
Closes #22659
More context can be found in attached issue.
This is specific to Windows:
1. Add parent directory watching for fs watch when the file doesn't
exist. For example, when Zed is first launched and `settings.json` isn't
there.
2. Add proper symlink handling for fs watch. For example, when
`settings.json` is a symlink.
This is exactly same as how we handle it on Linux.
Release Notes:
- Fixed an issue where items on the Welcome page could not be toggled on
Windows, either on first launch or when `settings.json` is a symlink.
tims
created
d58f006
Use standard injection.language and injection.content captures (#22268)
Click to expand commit body
Closes #9656. Continuation of #9654, but with the addition of backwards
compatibility for the existing captures.
Release Notes:
- Improved Tree-sitter support with added compatibility for standard
injections captures
---------
Co-authored-by: Finn Evers <finn.evers@outlook.de>
uncenter
and
Finn Evers
created
f3e75d8
git_ui: Update commit composer and git status entry UI (#22738)
Click to expand commit body
Blocked on:
- No way to get # of lines changed (added/removed)
- Need methods for:
- `commit`
- `stage`
- `unstage`
- `revert_all` - Similar to Editor::RevertFile, but for all changes in
the project
TODO:
- [ ] Update checkbox visual style to match
[figma](https://www.figma.com/design/sKk3aa7XPwBoE8fdlgp7E8/Git-integration?node-id=804-9255&t=wsHFxPgYHEX78Ky1-11)
- [ ] Update panel button style to filled
- [ ] Panel header
- [x] Correct 1 change suffix (1 changes -> 1 change)
- [ ] Add lines changed badge
- [ ] Add context menu button (`...`)
- [ ] Add context menu
- [ ] Wire up Revert All
- [ ] Entry List
- [x] Revert unwanted ListItem styling
- [x] Add selected, hover states
- [ ] Add `scrolled_to_top`, `scrolled_to_bottom`
- [ ] Show gradient overflow indicator
- [ ] Add `JumpToTop`, `JumpToBottom` actions to the list, bind to shift
+ arrow keys
- [ ] Remove wrapping from keyboard movement
- [ ] Entry
- [x] Style deleted entries with a strikethrough
- [x] `...` on hover or selected
- [ ] Add context menu
- [ ] Composer
- Todo...
Release Notes:
- N/A
Nate Butler
created
d2e44ab
terminal: Set TERM to xterm-256color (#22777)
Click to expand commit body
This is a follow-up to #22615 and fixes the issue of `alacritty`
resulting in broken shell/CLI apps if `alacritty` is not in the terminfo
database.
Closes #ISSUE
Release Notes:
- Set `TERM` to `xterm-256color` in Zed's built-in terminal
Thorsten Ball
created
5601702
project_panel: Support multiple items in `RemoveFromProject` (#22455)
Click to expand commit body
This makes the `RemoveFromProject` action to remove all marked entries
in the project panel instead of just the selected one.
Closes #22454
Release Notes:
- Improved the `RemoveFromProject` action to remove all selected items.
Sergei Shulepov
created
3d8625f
assistant2: Store deduped context on the `Thread` (#22781)
Click to expand commit body
This PR is a small refactoring in advance of some other changes.
Previously we were storing the whole `Context` associated with each
message. However, it's likely that multiple messages may end up using
the same context.
We now store the deduped context in a separate collection and refer to
it from each message by its `ContextId`.
Release Notes:
- N/A
Marshall Bowers
created
f53a17b
chore: Add missing test-support features to terminal_view and image_viewer (#22782)
Click to expand commit body
Release Notes:
- N/A
Piotr Osiewicz
created
57dfaa6
emacs: Fix using emacs in embedded terminal (#22779)
Click to expand commit body
- Follow-up to: https://github.com/zed-industries/zed/pull/22590
Release Notes:
- N/A
Peter Tripp
created
4deab8a
vim: Add Separator and RemoveIndent in Join Lines, fix gJ use space join (#22496)
677868b
Add toolbar spacing and alignment improvements (#22771)
Click to expand commit body
Tackles some of the points here:
https://github.com/zed-industries/zed/issues/22673. However, this is not
doing anything yet to treat misalignment when with odd-number UI font
sizes. Here are some screenshots with a theme that makes easier to spot
them. It's subtle:
| Before | After |
|--------|--------|
| <img width="1313" alt="Screenshot 2025-01-07 at 10 23 31 AM"
src="https://github.com/user-attachments/assets/fdf125a7-ef1c-4368-aea8-579f916b9c34"
/> | <img width="1313" alt="Screenshot 2025-01-07 at 10 26 11 AM"
src="https://github.com/user-attachments/assets/9728fd47-3c17-4c42-9cf6-11083eb32980"
/> |
| <img width="1313" alt="Screenshot 2025-01-07 at 10 23 36 AM"
src="https://github.com/user-attachments/assets/dc2010e9-4ae4-451c-afd1-6bd13750dc66"
/> | <img width="1313" alt="Screenshot 2025-01-07 at 10 26 08 AM"
src="https://github.com/user-attachments/assets/a71ef2ef-3ac7-4b0a-8d50-1c3c4f17d5cb"
/> |
Release Notes:
- N/A
Note how, previously, switching between the thread view and the history
caused a slightly reduction of the toolbar height. Super subtle stuff,
but doesn't happen anymore.
### Before
https://github.com/user-attachments/assets/712ff34e-a638-484d-8415-16011b10ae63
### After
https://github.com/user-attachments/assets/7ccff7a3-45a4-445c-9638-8445733e0ffc
Release Notes:
- N/A
Danilo Leal
created
f439ee0
assistant2: Add check icon for included context (#22774)
Click to expand commit body
Quick follow-up to: https://github.com/zed-industries/zed/pull/22712 —
just to make it more visually easier to understand.
<img width="800" alt="Screenshot 2025-01-07 at 11 48 06 AM"
src="https://github.com/user-attachments/assets/92f0523b-eb85-4929-a825-2e1e524b3ad7"
/>
Release Notes:
- N/A