Closes #ISSUE
Release Notes:
- Rename `editor::RevertSelectedHunks` and `editor::RevertFile` to
`git::Restore` and `git::RestoreFile` for consistency with git
Conrad Irwin
created
e383671
gpui: Implement `PartialEq` and `Eq` for `WindowAppearance` (#25219)
Click to expand commit body
Release Notes:
- N/A
someone13574
created
0fdad0c
Use line-based and word-based diff when reloading and formatting buffers (#25129)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/10122
Closes https://github.com/zed-industries/zed/issues/25034
When formatting buffers or reloading them after they change on disk, we
performed a diff between the buffer's current contents and the new
content. We need this diff in order preserve the positions of cursors
and other decorations when updating the buffer's text.
In order to handle changes within lines, we would previously compute a
*character-wise* diff. This was extremely expensive for large files.
This PR gets rid of the character-wise diff, and instead performs a
normal line-wise diff. Then, for certain replace hunks, we compute a
secondary word-based diff. Also, I've switched to the
[`imara-diff`](https://github.com/pascalkuthe/imara-diff) crate, instead
of `similar`.
Release Notes:
- Fixed a hang that could occur when large files were changed on disk or
formatted.
Max Brunsfeld
created
1087e05
Update cargo-about to 0.6.6 and remove workaround to fail on warning (#25209)
Click to expand commit body
See https://github.com/EmbarkStudios/cargo-about/issues/274
Release Notes:
- N/A
Michael Sloan
created
121aba7
icon_theme_selector: Add footer and related docs (#25042)
Click to expand commit body
I've seen that the Theme modal has a footer with 2 links: Theme Docs
(which links to Configuration > Themes) on the left, Install Themes on
the right. I've basically done the same to the Icon Theme modal -
however we seem to be missing a Configuration > Icon Themes doc, I've
basically checked how it was made for Themes and pretty much adapted for
Icon Themes. Maybe a better solution would be to combine both. Or add
Icon themes section under Themes.
I hope somebody from Zed can have a look and adapt this PR where needed.
<img width="553" alt="Screenshot 2025-02-19 at 6 37 20β―PM"
src="https://github.com/user-attachments/assets/30602027-b7a7-4690-ba05-fc9eac313e67"
/>
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Beniamin Zagan
and
Marshall Bowers
created
b8ed6e8
Update Rust crate mdbook to v0.4.45 (#25193)
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.44` -> `0.4.45` |
---
### Release Notes
<details>
<summary>rust-lang/mdBook (mdbook)</summary>
###
[`v0.4.45`](https://redirect.github.com/rust-lang/mdBook/blob/HEAD/CHANGELOG.md#mdBook-0445)
[Compare
Source](https://redirect.github.com/rust-lang/mdBook/compare/v0.4.44...v0.4.45)
[v0.4.44...v0.4.45](https://redirect.github.com/rust-lang/mdBook/compare/v0.4.44...v0.4.45)
##### Changed
- Added context to error message when rustdoc is not found.
[#​2545](https://redirect.github.com/rust-lang/mdBook/pull/2545)
- Slightly changed the styling rules around margins of footnotes.
[#​2524](https://redirect.github.com/rust-lang/mdBook/pull/2524)
##### Fixed
- Fixed an issue where it would panic if a source_path is not set.
[#​2550](https://redirect.github.com/rust-lang/mdBook/pull/2550)
</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
3a77e5c
Change license of `crates/livekit_api` from AGPL to GPL (#25206)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@octokit/rest](https://redirect.github.com/octokit/rest.js) |
[`21.1.0` ->
`21.1.1`](https://renovatebot.com/diffs/npm/@octokit%2frest/21.1.0/21.1.1)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
| [octokit](https://redirect.github.com/octokit/octokit.js) | [`4.1.1`
-> `4.1.2`](https://renovatebot.com/diffs/npm/octokit/4.1.1/4.1.2) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
<details>
<summary>octokit/rest.js (@​octokit/rest)</summary>
###
[`v21.1.1`](https://redirect.github.com/octokit/rest.js/releases/tag/v21.1.1)
[Compare
Source](https://redirect.github.com/octokit/rest.js/compare/v21.1.0...v21.1.1)
##### Bug Fixes
- **deps:** update Octokit dependencies to mitigate ReDos \[security]
([#​484](https://redirect.github.com/octokit/rest.js/issues/484))
([ca256c3](https://redirect.github.com/octokit/rest.js/commit/ca256c33490c671d7f2d9806ddd85be92808396d))
</details>
<details>
<summary>octokit/octokit.js (octokit)</summary>
###
[`v4.1.2`](https://redirect.github.com/octokit/octokit.js/releases/tag/v4.1.2)
[Compare
Source](https://redirect.github.com/octokit/octokit.js/compare/v4.1.1...v4.1.2)
##### Bug Fixes
- **deps:** update Octokit dependencies to mitigate ReDos
vulnerabilities \[security]
([#​2816](https://redirect.github.com/octokit/octokit.js/issues/2816))
([28ff745](https://redirect.github.com/octokit/octokit.js/commit/28ff74554394c5503e5adb8620341a4d2f8d6c3f))
</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.
π» **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
347bfad
Update Rust crate uuid to v1.13.2 (#25202)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [uuid](https://redirect.github.com/uuid-rs/uuid) |
workspace.dependencies | patch | `1.13.1` -> `1.13.2` |
---
### Release Notes
<details>
<summary>uuid-rs/uuid (uuid)</summary>
###
[`v1.13.2`](https://redirect.github.com/uuid-rs/uuid/releases/tag/v1.13.2)
[Compare
Source](https://redirect.github.com/uuid-rs/uuid/compare/1.13.1...v1.13.2)
#### What's Changed
- Add a compile_error when no source of randomness is available on
wasm32-unknown-unknown by
[@​KodrAus](https://redirect.github.com/KodrAus) in
[https://github.com/uuid-rs/uuid/pull/804](https://redirect.github.com/uuid-rs/uuid/pull/804)
- Prepare for 1.13.2 release by
[@​KodrAus](https://redirect.github.com/KodrAus) in
[https://github.com/uuid-rs/uuid/pull/805](https://redirect.github.com/uuid-rs/uuid/pull/805)
**Full Changelog**:
https://github.com/uuid-rs/uuid/compare/1.13.1...v1.13.2
</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
d10430b
Remove unnecessary `icon` field from snapcraft.yaml (#25200)
Click to expand commit body
This is handled in `script/snap-build` by populating `snap/gui` with
`zed.png` and `zed.desktop`
Release Notes:
- N/A
This PR fixes a comment in the `cli` crate that seems to have been
inadvertently changed in #25185.
I also reworded it to be a bit more formal.
Release Notes:
- N/A
Marshall Bowers
created
365dcc5
Improve support for tcsh/csh as login shells (#25122)
Release Notes:
- Added an `on_last_window_closed` setting, that allows users to quit
the app when the last window is closed
---------
Co-authored-by: Richard <richard@zed.dev>
Mikayla Maki
and
Richard
created
ffc7558
Enable `package-version-server` lookup in PATH (#23849)
Click to expand commit body
Release Notes:
- Added support for checking for `package-version-server` on the
`$PATH`.
---------
Signed-off-by: Matthew Penner <me@matthewp.io>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Matthew Penner
and
Marshall Bowers
created
78b43ba
Issue response: attempt to fix url again (#25184)
2d1a028
Refine the multibuffer hint design (#25167)
Click to expand commit body
Just a little touch-up here.

Release Notes:
- N/A
d17c6b3
Add `allow_rewrap` setting to control `editor::Rewrap` behavior for a given language (#25173)
Click to expand commit body
This PR adds a new `allow_rewrap` setting to control how
`editor::Rewrap` behaves for a given language.
This is a language setting, so it can either be configured globally or
within the context of an individual language.
For example:
```json
{
"allow_rewrap": "in_selections",
"languages": {
"Typst": {
"allow_rewrap": "anywhere"
}
}
}
```
There are three different values:
- `in_comment`: Only perform rewrapping within comments.
- `in_selections`: Only perform rewrapping within the current
selection(s).
- `anywhere`: Allow rewrapping anywhere.
The global default is `in_comment`, as it is the most conservative
option and allows rewrapping comments without risking breaking other
syntax.
The `Markdown` and `Plain Text` languages default to `anywhere`, which
mirrors the previous behavior for those language that was hard-coded
into the rewrap implementation.
This setting does not have any effect in Vim mode, as Vim mode already
allowed rewrapping anywhere.
Closes https://github.com/zed-industries/zed/issues/24242.
Release Notes:
- Added an `allow_rewrap` setting to control the `editor::Rewrap`
behavior for a given language.
Marshall Bowers
created
1ce8a51
Ignore custom buffer line height for context menus (#25172)
Click to expand commit body
Closes #24504
Release Notes:
- Fixed a visual bug that could make context menus unusable when setting
a custom `buffer_line_height`.
Antonio Scandurra
created
6a9b1f0
docs: Remove GitHub link from model improvement (#25171)
f28080a
docs: OpenAI settings example fix (#25112)
Peter Tripp
created
b6fd06d
project_panel: Make scroll to bottom to use the last visible entry (#25160)
Click to expand commit body
Closes #25159
Release Notes:
- Fixed project panel implementation of the `menu::SelectLast` action
PJ Tatlow
created
ddec72e
Better key-rendering for linux/windows (#25139)
Click to expand commit body
Release Notes:
- linux: Render keystrokes more consistently
Before (note the added extra vertical padding, the + instead of the -,
and the misalignment between the text and the icons)
<img width="354" alt="Screenshot 2025-02-18 at 23 17 57"
src="https://github.com/user-attachments/assets/924cf08f-8204-4503-8052-abaa7686e644"
/>
After (note the lack of those things):
<img width="322" alt="Screenshot 2025-02-18 at 23 15 48"
src="https://github.com/user-attachments/assets/5b20a6f2-757b-44d2-a888-f495523b688d"
/>
I still think we might want to go "vim-mode" always, because the capital
letters are pretty noisy, but that does mean the letters don't match
what's on the keyboard (though they *do* match the keyboard config
files)
<img width="312" alt="Screenshot 2025-02-18 at 23 16 59"
src="https://github.com/user-attachments/assets/cf6f150c-20bc-4492-adb9-fb5c5bdce351"
/>
The language::markdown crate had been superceded by markdown::Mardown.
After #25117, the only two remaining use-cases were rendering git commit
messages (which are arguably not really markdown) and the signature help
(which is definitely not markdown).
Updated the former to use the new markdown component, and the latter to
do syntax highlighting manually.
Release Notes:
- Allow selecting the commit message in git commits
Conrad Irwin
created
686978d
editor: Minimum scroll thumb size (#25162)
Click to expand commit body
Closes #22610
This PR fixes the invisible scroll thumb or very tiny scroll thumb when
viewing long or wide files.
The difference between `track_bounds` (imagine scrollbar total height)
and `thumb_size` is the remaining area, which maps to the total height
of the page for scrolling to work as expected. This is already accounted
for. That means we can adjust the thumb size as needed, and the
remaining height/width will be mapped correctly.
So, we can simply use define a minimum size for the thumb and handle
cases where the track bounds are smaller than the defined minimum size.
In such cases, the scrollbar will take up the full height/width of the
track bounds. This is handled mainly to avoid panics in extreme edge
cases. Practically, at such small heights/widths, users are unlikely to
attempt scrolling.
Before:
https://github.com/user-attachments/assets/cf2edf03-8b9a-4678-b3c6-9dcbd01e5db8
After:
https://github.com/user-attachments/assets/e9496a44-3e7d-4be7-b892-2762cccd9959
Release Notes:
- Fixed issue where scroll thumb was invisible or too small when viewing
long or wide files.
smit
created
486e106
license detection: Include the UPL license (#25152)
Click to expand commit body
For projects such as https://github.com/roc-lang/roc that uses this
license.
Release Notes:
- N/A
- Hides header when no active repo/no repo
- Entire commit editor now has i-beam cursor on hover
- Adds an icon to the project diff tab
Release Notes:
- N/A
Nate Butler
created
c0c48d3
Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163)
Click to expand commit body
This reverts commit 9ef0501853825db41e702c03ab398bf531a8bc1f due to a
panic.
```
{
"thread": "main",
"payload": "9 is not a valid char boundary in path \"crates/β¦/LiveKitBridge/\"",
"location_data": {
"file": "crates/file_finder/src/file_finder.rs",
"line": 646
}
}
```
Release Notes:
- N/A
Cole Miller
created
f8770fe
edit prediction: Refine subtle mode flag styles (#25157)
Click to expand commit body
There's still a tiny, 1px shadow being cast in the flag pole that I
didn't figure out yet how to fix it.
https://github.com/user-attachments/assets/714da320-5995-4bd2-a0dc-6c027b4d91eb
Release Notes:
- N/A
Danilo Leal
created
044be72
popover_menu: Add docs to the `trigger_with_tooltip` method (#25158)
Click to expand commit body
Felt like this was relevant particularly as we're living with both
`trigger` and `trigger_with_tooltip`. At some point, I believe there
should be only one (`trigger_with_tooltip`) and that should be then
renamed to just `trigger` back again! We're supporting both for now just
for ease of migration/avoiding big changes.
Release Notes:
- N/A
Danilo Leal
created
8b98b5c
project: Fix doc comments for `NodeBinarySettings` (#25154)
Click to expand commit body
This PR fixes the doc comments on the `NodeBinarySettings` struct.
Release Notes:
- N/A
This PR fixes an incorrectly-formatted doc comment in the
`BufferSnapshot` impl.
Release Notes:
- N/A
Marshall Bowers
created
fb19db0
editor: Do not highlight selected text + Clear highlight preemptively when new selection is detected (#25149)
Click to expand commit body
When selecting text, it highlights all matching occurences along with
selected text itself. This causes highlight overlap, which looks bit
odd. This PR fixes it.
Bonus:
Context: We have an edge case (which we already cover) where we donβt
want to clear `SelectedTextHighlight` every time the selection changes.
This happens when you are dragging the selection across some word, if
you clear it directly on selection change, due to debounce wait, the
highlight take some time to appear, which causes flickering for the
user. We solve this by not clearing it directly but only clearing it
when a new selection is found. This avoids the flicker.
However, we also need to clear the selection even before the debounce
wait if we detect early on that the selection is different from previous
ones. Otherwise, the user will have to wait until the debounce time to
see it cleared on the screen.
The code for this is a little repetitive because we check the buffer
state both before and after the debounce. But this is necessary.
---
Before:
Notice overlapping corners and selected text is bit darker in this case.

After:

Release Notes:
- N/A
smit
created
094430e
Properly normalize completion labels with multi-byte characters (#25150)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/25142
Release Notes:
- Fixed panics on completion with multi-byte characters input
Fix broken links to [PHP
extensions](https://github.com/zed-extensions/php) from [the
documentation](https://zed.dev/docs/languages/php).
Release Notes:
- N/A
USAMI Kenta
created
2274e88
Highlight regex in the project search input (#25147)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/25005
Project search also has regex search option, highlight it the same way
too.
Release Notes:
- N/A
Closes #16951
Handle the case where you click on the terminal while pressing Shift.
Instead of setting a new selection head, we simply update the selection
to that point. This allows you to repeatedly extend the selection to new
points by pressing Shift while preserving the original selection head.
Preview:
Selection works in direct terminal, but doesn't on Vim like program,
which is expected.
https://github.com/user-attachments/assets/e46987d8-a9a3-495d-8dd9-98d461317a8d
Release Notes:
- Added ability to extend selection with Shift + click in the terminal.
smit
created
1fa105e
docs: Fix selection highlight default value (#25134)
Click to expand commit body
Changed default debounce value in docs to match default settings.
Release Notes:
- N/A