b61171f
Use `textDocument/codeLens` data in the actions menu when applicable (#26811)
Click to expand commit body
Similar to how tasks are fetched via LSP, also queries for document's
code lens and filters the ones with the commands, supported in server
capabilities.
Whatever's left and applicable to the range given, is added to the
actions menu:

This way, Zed can get more actions to run, albeit neither r-a nor vtsls
seem to provide anything by default.
Currently, there are no plans to render code lens the way as in VSCode,
it's just the extra actions that are show in the menu.
------------------
As part of the attempts to use rust-analyzer LSP data about the
runnables, I've explored a way to get this data via standard LSP.
When particular experimental client capabilities are enabled (similar to
how clangd does this now), r-a starts to send back code lens with the
data needed to run a cargo command:
```
{"jsonrpc":"2.0","id":48,"result":{"range":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}},"command":{"title":"βΆοΈ Run Tests","command":"rust-analyzer.runSingle","arguments":[{"label":"test-mod tests::ecparser","location":{"targetUri":"file:///Users/someonetoignore/work/ec4rs/src/tests/ecparser.rs","targetRange":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}},"targetSelectionRange":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}}},"kind":"cargo","args":{"environment":{"RUSTC_TOOLCHAIN":"/Users/someonetoignore/.rustup/toolchains/1.85-aarch64-apple-darwin"},"cwd":"/Users/someonetoignore/work/ec4rs","overrideCargo":null,"workspaceRoot":"/Users/someonetoignore/work/ec4rs","cargoArgs":["test","--package","ec4rs","--lib"],"executableArgs":["tests::ecparser","--show-output"]}}]}}}
```
This data is passed as is to VSCode task processor, registered in
https://github.com/rust-lang/rust-analyzer/blob/60cd01864a2d0d6e2231becee402ba063b59dfa1/editors/code/src/main.ts#L195
where it gets eventually executed as a VSCode's task, all handled by the
r-a's extension code.
rust-analyzer does not declare server capabilities for such tasks, and
has no `workspace/executeCommand` handle, and Zed needs an interactive
terminal output during the test runs, so we cannot ask rust-analyzer
more than these descriptions.
Given that Zed needs experimental capabilities set to get these lens:
https://github.com/rust-lang/rust-analyzer/blob/60cd01864a2d0d6e2231becee402ba063b59dfa1/editors/code/src/client.ts#L318-L327
and that the lens may contain other odd tasks (e.g. docs opening or
references lookup), a protocol extension to get runnables looks more
preferred than lens:
https://rust-analyzer.github.io/book/contributing/lsp-extensions.html#runnables
This PR does not include any work on this direction, limiting to the
general code lens support.
As a proof of concept, it's possible to get the lens and even attempt to
run it, to no avail:

Release Notes:
- Used `textDocument/codeLens` data in the actions menu when applicable
Kirill Bulatov
created
0b492c1
Use `line_endings` macro for the edit tool tests (#26642)
Click to expand commit body
This aligns with how we handle other tests on Windows.
Release Notes:
- N/A
Closes https://github.com/zed-industries/zed/issues/13111
Release Notes:
- vim: Added global marks `'[A-Z]`
- vim: Added persistence for global (and local) marks. When re-opening
the same workspace your previous marks will be available.
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
AidanV
and
Conrad Irwin
created
1481317
Reveal always_included entries in Project Panel (#26197)
Click to expand commit body
If the user has the `auto_reveal` option enabled, as well as
`file_scan_inclusions` and opens a file that is gitignored but is also
set to be always included, that file won't be revealed in the project
panel. I've personally found this annoying, as the project panel can
provide useful context on where you are in a codebase. It also just
feels weird for it to be out of sync with the editor state.
Release Notes:
- Fixed the interaction between `auto_reveal`, `file_scan_inclusions`,
and `.gitignore` within the Project Panel. Files that are always
included will now be auto-revealed in the Project Panel, even if those
files are also gitignored.
Ryan Hawkins
created
7c1405d
Update rendering of gutter diff hunks to show whether a hunk is staged or not (#26809)
Click to expand commit body
In the gutter, it seems more intuitive to me for the unstaged hunks to
be hollow, indicating an action left to complete, and the staged hunks
to be filled. I therefore flipped the style of expanded hunks to match
the gutter icons. Is that acceptable? And would it be a breaking change?
If it is not acceptable, then 058dc216d5a284033eebd38d28853f69aa336a55
contains the opposite behaviour, it is not a problem to revert to it.
In the following images, the first hunk is always ~unstaged~ staged and
the second is ~staged~ unstaged.
<img width="138" alt="image"
src="https://github.com/user-attachments/assets/35927069-da90-424a-8988-a4eb984d865f"
/>
<img width="133" alt="image"
src="https://github.com/user-attachments/assets/4edd0e0d-a2b5-453a-8172-47684e065c82"
/>
<br />
<img width="143" alt="image"
src="https://github.com/user-attachments/assets/2f295944-81aa-45f3-a103-c13b92bc2aba"
/>
<img width="133" alt="image"
src="https://github.com/user-attachments/assets/35248218-7104-4059-8742-ae0e54da6c6b"
/>
Release Notes:
- Improved gutter diff hunks to show whether a hunk is staged
Jakub Charvat
created
96b747e
editor: Disable edit predictions in read-only buffers (#26804)
7a888de
Add initial implementation of evaluating changes generated by the assistant (#26799)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Thomas <thomas@zed.dev>
Michael Sloan
,
Richard Feldman
, and
Thomas
created
e9b4fa1
rust: Follow-up fixes for attribute highlighting (#26172)
Click to expand commit body
Closes #26124
This PR fixes some more cases of improper attribute highlights for rust.
In #25501 I tried to address the regression in highlighting rust
attributes which were introduced by #25333 . However, I failed to
properly check all cases of attribute highlights as shown in the linked
issue - really sorry for that! Thus, this is a follow-up fix aiming to
resolve the issues the previous PR did not cover.
The changes do not affect any highlighting shown in the [previous
PR](https://github.com/zed-industries/zed/pull/25501):
| `main` | <img width="719" alt="main-working"
src="https://github.com/user-attachments/assets/9aa0e611-7bda-4b50-9335-c87da4c38057"
/> |
| --- | --- |
| This PR | <img width="719" alt="PR-working"
src="https://github.com/user-attachments/assets/605b275c-1d68-4bd7-97c6-251d7614a7ed"
/> |
But resolves the mentioned regressions in the linked issue:
| `main` | <img width="371" alt="main_broken"
src="https://github.com/user-attachments/assets/ebbb47b7-7945-41e0-b030-2fe3f2198653"
/> |
| --- | --- |
| This PR | <img width="371" alt="PR_broken"
src="https://github.com/user-attachments/assets/fa97408b-e1d6-4d99-81c1-cfb8073961a4"
/> |
Again, sorry for not checking this more thoroughly.
Release Notes:
- Fixed attributes in Rust being improperly highlighted.
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Finn Evers
and
Marshall Bowers
created
ead60d1
docs: Add documentation for icon theme (#25973)
Click to expand commit body
Adds documentation for the icon theme setting (mostly based on the
documentation from theme but adjusted for icon theme).
Release Notes:
- N/A
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Devzeth
,
Peter Tripp
, and
Marshall Bowers
created
Closes #26787
Release Notes:
- Fixed a bug that prevented typing in the in-app feedback form
Cole Miller
created
e5d2678
editor: Disable selection highlights for single line editor (#26805)
Click to expand commit body
Fixes the selection highlight appearing in single-line editors like the
file picker, command palette, etc.
Release Notes:
- Fixed selection highlight appearing in input fields like the file
picker, command palette, etc.
Smit Barmase
created
3ad9074
editor: Fix auto-closing quotes after word character (#26803)
Click to expand commit body
Closes #14349
When typing quotes immediately after a word character, it resulted in
auto-closing the quote.
```js
const thing = this is text^;
```
Typing a quote resulted in `this is text""^;` which is not correct, and
should be `this is text"^;`.
This PR changes logic for auto close:
1. We now prevent auto-closing in case of brackets where start == end
when they're typed immediately after a word character. i.e. For, ``` `,
", ' ```.
2. Other bracket pairs like `{}, (), etc` continue to auto-close
regardless of preceding character. So, `func^` to `func()^` will keep
working.
3. Auto-closing in other contexts like after spaces, punctuation, etc.
will still work.
Before:

After:

Release Notes:
- Fixed auto-paired quotes being inserted when typing a quote
immediately next to a word character.
afd0da9
language_selector: Improve lookup for language icons (#26376)
Click to expand commit body
This PR fixes a rare case where icons could be missing in the language
selector.
Currently, whilst looking up an icon, all file suffixes starting with a
dot are filtered out. While this works fine for some languages, there
are some languages having only file suffixes starting with a dot, e.g.
the "Git Attributes" language provided from the "Git Firefly" extension.
This results in no icon being displayed in the list, as shown in the
screenshots below.
To solve this, we can just simply remove the check for this special case
as well as the construction of an artificial file name in the code, as
both are not needed. A simple path just consisting of the extension is
sufficient, as we currently do not differentiate between file names and
file suffixes during an icon lookup. see the relevant code below:
https://github.com/zed-industries/zed/blob/013a64679947fca3c940d319841069000d5ddf2b/crates/file_icons/src/file_icons.rs#L23-L52
As the first lookup is directly done using the entire file name and then
checked against all suffixes, we actually do not have to construct an
artificial file name at all. Should that produce no match, we check for
a hidden file right after, so we do not have to filter hidden file names
out.
With this fix, nothing changes for "normal" file suffixes, for some
cases where languges provide entire file names as a path suffix, the
matching might improve, and for languages with only hidden associated
file names, the initially described issue is resolved.
I do believe the behavior of matching icons to languages could be
improved in general. Fowever, I do think this is beyond the scope of
this change.
| Current main | <img width="546" alt="main"
src="https://github.com/user-attachments/assets/5c3c9fdc-cadf-4e44-9667-2530374aa0d2"
/> |
| --- | --- |
| This PR |<img width="546" alt="PR"
src="https://github.com/user-attachments/assets/82e59108-e31f-4ca9-8bbd-b9fd2b34feb0"
/>|
Aditionally, in 4395f78fb2c49f74c4bfa6b4146aee8b55435838 I refactored
the code which acquires the label and icon for a match, since I found it
a bit hard to read initially. The majority of this diff comes from this
change. Should that not be wanted, I can revert that change.
Release Notes:
- Fixed a rare case where languages had no associated icon in the
language selector.
Finn Evers
created
1bf1c72
assistant edit tool: Fix editing files in context (#26751)
Click to expand commit body
When the user attached context in the thread, the editor model request
would fail because its tool use wouldn't be removed properly leading to
an API error.
Also, after an edit, we'd keep the old file snapshot in the context.
This would make the model think that the edits didn't apply and make it
go in a loop.
Release Notes:
- N/A
Closes #ISSUE
[git: Use font size to determine pattern slash width
#26446](https://github.com/zed-industries/zed/pull/26446)
This PR only uses font size as the slant line width, and here it further
uses line height as the slant line interval control.
before

now

big line height

Release Notes:
- N/A *or* Added/Fixed/Improved ...
0x2CA
created
685536c
editor: Change order of format and timeout futures (#26796)
Click to expand commit body
Very small change, simply changing the order of the futures we pass to
`select_biased!` so that if the format request and the timeout resolve
at the same time (highly unlikely) we choose the format request instead
of choosing the timeout and throwing away our work!
Release Notes:
- N/A
Ben Kunkle
created
ae017c3
file_finder: Fix panic when file name contains new line (#26791)
Click to expand commit body
Closes #26777
This PR fixes a panic when a file name contains a newline and a
multi-byte character like π (4 bytes in UTF-8). The issue was in the
regex not considering newlines in file names, causing it to match only
the latter part of the file name.
For example:
```
left: PathWithPosition { path: "ab", row: None, column: None } // matched
right: PathWithPosition { path: "ab\ncd", row: None, column: None } // actual file name
```
This resulted in incorrect index calculation later in the code, which
went unnoticed until now due to the lack of tests with file names
containing newlines.
We discovered this issue when a panic occurred due to incorrect index
calculation while trying to get the index of a multi-byte character.
After the newline fix, the index calculation is always correct, even in
the case of multi-byte characters.
Release Notes:
- Fixed an issue where file names with newlines and multi-byte
characters could cause a crash in certain cases.
Smit Barmase
created
f587e95
Add `seed` argument to `#[gpui::test]` attribute macro (#26764)
Click to expand commit body
This PR introduces the arguments `seed` and `seeds` to `gpui::test`,
e.g.:
- `#[gpui::test(seed = 10)]`
- `#[gpui::test(seeds(10, 20, 30, 40))]`
Which allows us to run a test against a specific seed value without
slowing
down our tests like `iterations` does with high values.
This was motivated by a diff hunk test that only fails in a 400+ seed,
but is
slow to run 400+ times for every `cargo test`.
If your test failed with a specific seed, you can now add the `seed` arg
to
increase the chances of detecting a regression.
There are now three ways of setting seeds, the `SEED` env var,
`iterations`,
and the args this PR adds. See docs in `gpui::test`.
---
I also relaxed the limitation on `retries` not working with
`iterations`, as
that seemed unnecessary.
Release Notes:
- N/A
JoΓ£o Marcos
created
83dfdb0
assistant2: Add "running" status feedback in the disclosure (#26786)
Click to expand commit body
Just a tiny bit of polish here, so that if the user expands the
disclosure, an equivalent loading state is at the response container.
<img
src="https://github.com/user-attachments/assets/a2ecb7f4-c9ea-4a14-8a60-9f7f2983a1a1"
width="600px" />
Release Notes:
- N/A
Follow-up of https://github.com/zed-industries/zed/pull/26410
* Extract word completions into their own, `editor::ShowWordCompletions`
action so those could be triggered independently of completions
* Assign `ctrl-shift-space` binding to this new action
* Still keep words returned along the completions as in the original PR,
but:
* Tone down regular completions' fallback logic, skip words when the
language server responds with empty list of completions, but keep on
adding words if nothing or an error were returned instead
* Adjust the defaults to wait for LSP completions infinitely
* Skip "words" with digits such as `0_usize` or `2.f32` from completion
items, unless a completion query has digits in it
Release Notes:
- N/A
Just some light design polish while we're in-flight with this.
<img
src="https://github.com/user-attachments/assets/40a68fe6-f37e-4df1-b669-824c7dd8ff11"
width="600px" />
---
Release Notes:
- N/A
Danilo Leal
created
f68a475
Introduce rating for assistant threads (#26780)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Antonio Scandurra
,
Richard Feldman
, and
Agus Zubiaga
created
c62210b
copilot: Handle sign out when copilot language server is not running (#26776)
Click to expand commit body
When copilot is not being used as the edit prediction provider and you
open a fresh Zed instance, we donβt run the copilot language server.
This is because copilot chat is purely handled via oauth token and
doesnβt require the language server.
In this case, if you click sign out, instead of asking the language
server to sign out (which isnβt running), we can manually clear the
config directory, which contains the oauth tokens. We already watch this
directory, and if the token is not found, we update the sign-in status.
Release Notes:
- N/A
Smit Barmase
created
ad14dcc
assistant2: Truncate thread title in context picker (#26775)
Click to expand commit body
Similar issue as in https://github.com/zed-industries/zed/pull/26721.
Release Notes:
- N/A
Take 2 on https://github.com/zed-industries/zed/pull/26600. Now, it
doesn't break remote development.
Instead of using it in `build_classes`, it's now used in the `open`
method while creating a window. I found similar usage in other places
over internet.
Release Notes:
- Fixed issue where Zed would show mac native tabs when opening new
fullscreen windows on macOS.
Smit Barmase
created
41c373e
gpui: Add support for text in SVGs (#26335)
Click to expand commit body
Closes #21319
Before:

After:

Use fontdb to load system fonts and pass it to resvg renderer. This adds
a small increase in startup time (around 30ms on my Linux system to
traverse fonts on a cold start). In the future once cosmic-text bumps
their version of fontdb we could clone the Database from
CosmicTextSystem
Release Notes:
- Added: support for rendering text in SVGs
Kamal Ahmad
created
6a95ec6
copilot: Decouple copilot sign in from edit prediction settings (#26689)
Click to expand commit body
Closes #25883
This PR allows you to use copilot chat for assistant without setting
copilot as the edit prediction provider.
[copilot.webm](https://github.com/user-attachments/assets/fecfbde1-d72c-4c0c-b080-a07671fb846e)
Todos:
- [x] Remove redudant "copilot" key from settings
- [x] Do not disable copilot LSP when `edit_prediction_provider` is not
set to `copilot`
- [x] Start copilot LSP when:
- [x] `edit_prediction_provider` is set to `copilot`
- [x] Copilot sign in clicked from assistant settings
- [x] Handle flicker for frame after starting LSP, but before signing in
caused due to signed out status
- [x] Fixed this by adding intermediate state for awaiting signing in in
sign out enum
- [x] Handle cancel button should sign out from `copilot` (existing bug)
- [x] Handle modal dismissal should sign out if not in signed in state
(existing bug)
Release Notes:
- You can now sign into Copilot from assistant settings without making
it your edit prediction provider. This is useful if you want to use
Copilot chat while keeping a different provider, like Zed, for
predictions.
- Removed the `copilot` key from `features` in settings. Use
`edit_prediction_provider` instead.
Smit Barmase
created
8d7b021
Fix editor's outline view confirm not working before any queries have (#26761)
Click to expand commit body
## Summary
This PR fixes a minor bug where editor's outline view wouldn't move the
cursor on confirm before any outline queries have been made.
### Before
https://github.com/user-attachments/assets/6ccca0c1-c0fa-46cb-b700-28a666d62ce8
### After
https://github.com/user-attachments/assets/d508e20b-90fb-471a-b974-431205501c89
Release Notes:
- Fixes bug where editor's outline view wouldn't move cursor on confirm
action
This adds code to merge excerpts when you expand them and they would
overlap. It is only enabled for callers who use the
`set_excerpts_for_path` API for multibuffers (which is currently just
project diff), as other users of multibuffer care too much about the
exact excerpts that they have.
Release Notes:
- N/A
This reverts commit 391eb380b59d5b36efdea027bfdb2fc4f55f4ad0.
For some reason that is very unclear to me, this broke ssh'ing into
macOS remotes.
The remote process aborts with:
```
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: zed-remote-server-dev-build [78088]
Path: /Users/USER/*/zed-remote-server-dev-build
Identifier: zed-remote-server-dev-build
Version: ???
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Responsible: iTerm2 [62245]
User ID: 501
Date/Time: 2025-03-13 19:30:37.6827 -0600
OS Version: macOS 15.3.1 (24D70)
Report Version: 12
Anonymous UUID: 3A9631EB-5468-8CA4-7A0F-E36C3FF9D04F
Sleep/Wake UUID: C935AE4C-E06A-4F6D-BE97-101E4E03482F
Time Awake Since Boot: 910000 seconds
Time Since Wake: 1265 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: Namespace OBJC, Code 1
Application Specific Information:
crashed on child side of fork pre-exec
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x18653fc6c __abort_with_payload + 8
1 libsystem_kernel.dylib 0x186565eb8 abort_with_payload_wrapper_internal + 104
2 libsystem_kernel.dylib 0x186565e50 abort_with_reason + 32
3 libobjc.A.dylib 0x1861dc040 _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 128
4 libobjc.A.dylib 0x1861dbfc0 _objc_fatal(char const*, ...) + 44
5 libobjc.A.dylib 0x1861c1674 performForkChildInitialize(objc_class*, objc_class*) + 400
6 libobjc.A.dylib 0x1861a67f0 initializeNonMetaClass + 592
7 libobjc.A.dylib 0x1861c4a3c initializeAndMaybeRelock(objc_class*, objc_object*, locker_mixin<lockdebug::lock_mixin<objc_lock_base_t>>&, bool) + 164
8 libobjc.A.dylib 0x1861a5f98 lookUpImpOrForward + 304
9 libobjc.A.dylib 0x1861a5b84 _objc_msgSend_uncached + 68
10 zed-remote-server-dev-build 0x104f9ec4c _$LT$$LP$$RP$$u20$as$u20$objc..message..MessageArguments$GT$::invoke::hf68c58806f4b5702 + 56
11 zed-remote-server-dev-build 0x104f9d4c8 objc::message::platform::send_unverified::h2ec8392957fd6551 + 120
12 zed-remote-server-dev-build 0x104e5631c cocoa::appkit::NSPasteboard::generalPasteboard::h68122d7f32549cba + 512
13 zed-remote-server-dev-build 0x104e3b3b4 gpui::platform::mac::platform::MacPlatform::new::hb68d7ae2c5fdea7e + 336
14 zed-remote-server-dev-build 0x104e48008 gpui::platform::current_platform::h931999673c8c6468 + 28
15 zed-remote-server-dev-build 0x104ee4284 gpui::app::Application::headless::h3bffec62c65240ce + 32
16 zed-remote-server-dev-build 0x1023746ac remote_server::unix::execute_run::h7ac8de1a7e257f61 + 1200
17 zed-remote-server-dev-build 0x102368e1c remote_server::main::h42e4b18462b32dcf + 252 (main.rs:56)
18 zed-remote-server-dev-build 0x10236717c core::ops::function::FnOnce::call_once::h8534244cea12c898 + 16 (function.rs:250)
19 zed-remote-server-dev-build 0x102368154 std::sys::backtrace::__rust_begin_short_backtrace::h22fd48e0f46eb10b + 12 (backtrace.rs:152)
20 zed-remote-server-dev-build 0x10236bf74 std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::hf8bd0081bf8d785b + 16 (rt.rs:195)
21 zed-remote-server-dev-build 0x105723d20 std::rt::lang_start_internal::h5f91760815528aa2 + 1092
22 zed-remote-server-dev-build 0x10236bf50 std::rt::lang_start::hb88fe48ac1498ea6 + 60 (rt.rs:194)
23 zed-remote-server-dev-build 0x10236b67c main + 36
24 dyld 0x1861f4274 start + 2840
```
Which is not even (apparently) on the line that calls this function.
To reproduce this, run `ZED_BUILD_REMOTE_SERVER=true cargo run
ssh://127.0.0.1/~/`.
Release Notes:
- N/A
Conrad Irwin
created
daa16bc
cli: Support opening anonymous file descriptors via the cli on MacOS and Linux (#26744)
Click to expand commit body
Closes #4770
(really closes issue described in [this
comment](https://github.com/zed-industries/zed/issues/4770#issuecomment-2258728884)
on #4770)
Only implemented for MacOS and Linux for now as I have no way to test on
Windows or BSD.
PRs welcome!
Release Notes:
- Added support for reading from anonymous file descriptors (e.g.
created as part of process substitution) on MacOS and Linux
Ben Kunkle
created
22ad7b1
Update Rust crate clap to v4.5.32 (#26592)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [clap](https://redirect.github.com/clap-rs/clap) |
workspace.dependencies | patch | `4.5.31` -> `4.5.32` |
---
### Release Notes
<details>
<summary>clap-rs/clap (clap)</summary>
###
[`v4.5.32`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4532---2025-03-10)
[Compare
Source](https://redirect.github.com/clap-rs/clap/compare/v4.5.31...v4.5.32)
##### Features
- Add `Error::remove`
##### Documentation
- *(cookbook)* Switch from `humantime` to `jiff`
- *(tutorial)* Better cover required vs optional
##### Internal
- Update `pulldown-cmark`
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [ctor](https://redirect.github.com/mmastrac/rust-ctor) |
workspace.dependencies | patch | `0.4.0` -> `0.4.1` |
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
8d8e5d3
Update Rust crate mdbook to v0.4.47 (#26611)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [mdbook](https://redirect.github.com/rust-lang/mdBook) | dependencies
| patch | `0.4.45` -> `0.4.47` |
---
### Release Notes
<details>
<summary>rust-lang/mdBook (mdbook)</summary>
###
[`v0.4.47`](https://redirect.github.com/rust-lang/mdBook/blob/HEAD/CHANGELOG.md#mdBook-0447)
[Compare
Source](https://redirect.github.com/rust-lang/mdBook/compare/v0.4.46...v0.4.47)
[v0.4.46...v0.4.47](https://redirect.github.com/rust-lang/mdBook/compare/v0.4.46...v0.4.47)
##### Fixed
- Fixed search not showing up in sub-directories.
[#​2586](https://redirect.github.com/rust-lang/mdBook/pull/2586)
###
[`v0.4.46`](https://redirect.github.com/rust-lang/mdBook/blob/HEAD/CHANGELOG.md#mdBook-0446)
[Compare
Source](https://redirect.github.com/rust-lang/mdBook/compare/v0.4.45...v0.4.46)
[v0.4.45...v0.4.46](https://redirect.github.com/rust-lang/mdBook/compare/v0.4.45...v0.4.46)
##### Changed
- The `output.html.hash-files` config option has been added to add
hashes to static filenames to bust any caches when a book is updated.
`{{resource}}` template tags have been added so that links can be
properly generated to those files.
[#​1368](https://redirect.github.com/rust-lang/mdBook/pull/1368)
##### Fixed
- Playground links for Rust 2024 now set the edition correctly.
[#​2557](https://redirect.github.com/rust-lang/mdBook/pull/2557)
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [rsa](https://redirect.github.com/RustCrypto/RSA) |
workspace.dependencies | patch | `0.9.7` -> `0.9.8` |
---
### Release Notes
<details>
<summary>RustCrypto/RSA (rsa)</summary>
###
[`v0.9.8`](https://redirect.github.com/RustCrypto/RSA/blob/HEAD/CHANGELOG.md#098-2025-03-12)
[Compare
Source](https://redirect.github.com/RustCrypto/RSA/compare/v0.9.7...v0.9.8)
##### Added
- Doc comments to specify the `rand` version ([#​473])
[#​473]: https://redirect.github.com/RustCrypto/RSA/pull/473
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
d141fa0
Update Rust crate schemars to v0.8.22 (#26626)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [schemars](https://graham.cool/schemars/)
([source](https://redirect.github.com/GREsau/schemars)) |
workspace.dependencies | patch | `0.8.21` -> `0.8.22` |
---
### Release Notes
<details>
<summary>GREsau/schemars (schemars)</summary>
###
[`v0.8.22`](https://redirect.github.com/GREsau/schemars/blob/HEAD/CHANGELOG.md#0822---2025-02-25)
[Compare
Source](https://redirect.github.com/GREsau/schemars/compare/v0.8.21...v0.8.22)
##### Fixed:
- Fix compatibility with rust 2024 edition
([https://github.com/GREsau/schemars/pull/378](https://redirect.github.com/GREsau/schemars/pull/378))
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
8e0e291
Track cumulative token usage in assistant2 when using anthropic API (#26738)
Release Notes:
- Multibuffers now use less vertical space for excerpt boundaries.
Additionally the expand up/down arrows are hidden at the start and end
of the buffers
---------
Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Zed AI <claude-3.5-sonnet@zed.dev>
Conrad Irwin
,
Nate Butler
, and
Zed AI
created
3935e83
Allow parsing commits when we can't resolve the permalink (#26709)
Click to expand commit body
Closes #26577
Release Notes:
- git: Fix showing commit messages for all repos
Conrad Irwin
created
0c84170
Update Rust crate quote to v1.0.40 (#26618)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [quote](https://redirect.github.com/dtolnay/quote) |
workspace.dependencies | patch | `1.0.38` -> `1.0.40` |
---
### Release Notes
<details>
<summary>dtolnay/quote (quote)</summary>
###
[`v1.0.40`](https://redirect.github.com/dtolnay/quote/releases/tag/1.0.40)
[Compare
Source](https://redirect.github.com/dtolnay/quote/compare/1.0.39...1.0.40)
- Optimize construction of lifetime tokens
([#​293](https://redirect.github.com/dtolnay/quote/issues/293),
thanks [@​aatifsyed](https://redirect.github.com/aatifsyed))
###
[`v1.0.39`](https://redirect.github.com/dtolnay/quote/releases/tag/1.0.39)
[Compare
Source](https://redirect.github.com/dtolnay/quote/compare/1.0.38...1.0.39)
- Documentation improvements
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE5NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
a38687d
Update Rust crate libc to v0.2.171 (#26604)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [libc](https://redirect.github.com/rust-lang/libc) |
workspace.dependencies | patch | `0.2.170` -> `0.2.171` |
---
### Release Notes
<details>
<summary>rust-lang/libc (libc)</summary>
###
[`v0.2.171`](https://redirect.github.com/rust-lang/libc/releases/tag/0.2.171)
[Compare
Source](https://redirect.github.com/rust-lang/libc/compare/0.2.170...0.2.171)
##### Added
- Android: Add `if_nameindex`/`if_freenameindex` support
([#​4247](https://redirect.github.com/rust-lang/libc/pull/4247))
- Apple: Add missing proc types and constants
([#​4310](https://redirect.github.com/rust-lang/libc/pull/4310))
- BSD: Add `devname`
([#​4285](https://redirect.github.com/rust-lang/libc/pull/4285))
- Cygwin: Add PTY and group API
([#​4309](https://redirect.github.com/rust-lang/libc/pull/4309))
- Cygwin: Add support
([#​4279](https://redirect.github.com/rust-lang/libc/pull/4279))
- FreeBSD: Make `spawn.h` interfaces available on all FreeBSD-like
systems
([#​4294](https://redirect.github.com/rust-lang/libc/pull/4294))
- Linux: Add `AF_XDP` structs for all Linux environments
([#​4163](https://redirect.github.com/rust-lang/libc/pull/4163))
- Linux: Add SysV semaphore constants
([#​4286](https://redirect.github.com/rust-lang/libc/pull/4286))
- Linux: Add `F_SEAL_EXEC`
([#​4316](https://redirect.github.com/rust-lang/libc/pull/4316))
- Linux: Add `SO_PREFER_BUSY_POLL` and `SO_BUSY_POLL_BUDGET`
([#​3917](https://redirect.github.com/rust-lang/libc/pull/3917))
- Linux: Add `devmem` structs
([#​4299](https://redirect.github.com/rust-lang/libc/pull/4299))
- Linux: Add socket constants up to `SO_DEVMEM_DONTNEED`
([#​4299](https://redirect.github.com/rust-lang/libc/pull/4299))
- NetBSD, OpenBSD, DragonflyBSD: Add `closefrom`
([#​4290](https://redirect.github.com/rust-lang/libc/pull/4290))
- NuttX: Add `pw_passwd` field to `passwd`
([#​4222](https://redirect.github.com/rust-lang/libc/pull/4222))
- Solarish: define `IP_BOUND_IF` and `IPV6_BOUND_IF`
([#​4287](https://redirect.github.com/rust-lang/libc/pull/4287))
- Wali: Add bindings for `wasm32-wali-linux-musl` target
([#​4244](https://redirect.github.com/rust-lang/libc/pull/4244))
##### Changed
- AIX: Use `sa_sigaction` instead of a union
([#​4250](https://redirect.github.com/rust-lang/libc/pull/4250))
- Make `msqid_ds.__msg_cbytes` public
([#​4301](https://redirect.github.com/rust-lang/libc/pull/4301))
- Unix: Make all `major`, `minor`, `makedev` into `const fn`
([#​4208](https://redirect.github.com/rust-lang/libc/pull/4208))
##### Deprecated
- Linux: Deprecate obsolete packet filter interfaces
([#​4267](https://redirect.github.com/rust-lang/libc/pull/4267))
##### Fixed
- Cygwin: Fix strerror_r
([#​4308](https://redirect.github.com/rust-lang/libc/pull/4308))
- Cygwin: Fix usage of f!
([#​4308](https://redirect.github.com/rust-lang/libc/pull/4308))
- Hermit: Make `stat::st_size` signed
([#​4298](https://redirect.github.com/rust-lang/libc/pull/4298))
- Linux: Correct values for `SI_TIMER`, `SI_MESGQ`, `SI_ASYNCIO`
([#​4292](https://redirect.github.com/rust-lang/libc/pull/4292))
- NuttX: Update `tm_zone` and `d_name` fields to use `c_char` type
([#​4222](https://redirect.github.com/rust-lang/libc/pull/4222))
- Xous: Include the prelude to define `c_int`
([#​4304](https://redirect.github.com/rust-lang/libc/pull/4304))
##### Other
- Add labels to FIXMEs
([#​4231](https://redirect.github.com/rust-lang/libc/pull/4231),
[#​4232](https://redirect.github.com/rust-lang/libc/pull/4232),
[#​4234](https://redirect.github.com/rust-lang/libc/pull/4234),
[#​4235](https://redirect.github.com/rust-lang/libc/pull/4235),
[#​4236](https://redirect.github.com/rust-lang/libc/pull/4236))
- CI: Fix "cannot find libc" error on Sparc64
([#​4317](https://redirect.github.com/rust-lang/libc/pull/4317))
- CI: Fix "cannot find libc" error on s390x
([#​4317](https://redirect.github.com/rust-lang/libc/pull/4317))
- CI: Pass `--no-self-update` to `rustup update`
([#​4306](https://redirect.github.com/rust-lang/libc/pull/4306))
- CI: Remove tests for the `i586-pc-windows-msvc` target
([#​4311](https://redirect.github.com/rust-lang/libc/pull/4311))
- CI: Remove the `check_cfg` job
([#​4322](https://redirect.github.com/rust-lang/libc/pull/4312))
- Change the range syntax that is giving `ctest` problems
([#​4311](https://redirect.github.com/rust-lang/libc/pull/4311))
- Linux: Split out the stat struct for gnu/b32/mips
([#​4276](https://redirect.github.com/rust-lang/libc/pull/4276))
##### Removed
- NuttX: Remove `pthread_set_name_np`
([#​4251](https://redirect.github.com/rust-lang/libc/pull/4251))
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE5NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
b75b308
Update Rust crate env_logger to v0.11.7 (#26603)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [env_logger](https://redirect.github.com/rust-cli/env_logger) |
workspace.dependencies | patch | `0.11.6` -> `0.11.7` |
---
### Release Notes
<details>
<summary>rust-cli/env_logger (env_logger)</summary>
###
[`v0.11.7`](https://redirect.github.com/rust-cli/env_logger/blob/HEAD/CHANGELOG.md#0117---2025-03-10)
[Compare
Source](https://redirect.github.com/rust-cli/env_logger/compare/v0.11.6...v0.11.7)
##### Internal
- Replaced `humantime` with `jiff`
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE5NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
dffa725
worktree: Disable flaky `test_file_status` test (#26729)
Click to expand commit body
See also:
- https://github.com/zed-industries/zed/pull/26684
- https://github.com/zed-industries/zed/pull/26710
Release Notes:
- N/A
Cole Miller
created
22f1429
assistant2: Prevent sending messages when the button is disabled (#26722)
Click to expand commit body
This PR updates the `Chat` action handler to prevent sending messages in
the states when the submit button is disabled.
Release Notes:
- N/A
Marshall Bowers
created
6bdd2cf
Consider the colon to be a word character when inside a string in JSON (#26574)
Click to expand commit body
Partially addresses #25698
Part of why autocomplete suggestions for `keymap.json` aren't great is
because `:` is (correctly) considered a punctuation character, rather
than a word character, in JSON. But since `::` is part of the name of
zed commands, it means that the autocomplete context window loses
context after the user types colon:
Suggestion here is to use overrides for JSON and JSONC such that colon
is considered a word character when it's inside a string. This improves
the experience:
I believe this is more broadly correct anyway, since `:` loses it's
punctuation meaning when inside a string.
Hope this is helpful!
Release Notes:
- Improved autocomplete for keymap.json by treating `::` like word characters when inside a string.
KyleBarton
created
a7f3b22
Don't render "Initialize Repository" button when no worktrees (#26713)
Click to expand commit body
Closes #26676
Release Notes:
- Fixed the git panel to not show an "Initialize Repositories" button in
empty projects