dce22a9
project search: Reduce clones and allocations (#31133)
Click to expand commit body
Release Notes: - N/A
Remco Smits created
dce22a9
project search: Reduce clones and allocations (#31133)
Release Notes: - N/A
Remco Smits created
5f452db
debugger: Add a couple more keybindings (#31103)
- Add missing handler for `debugger::Continue` so `f5` works - Add bindings based on VS Code for `debugger::Restart` and `debug_panel::ToggleFocus` - Remove breakpoint-related buttons from the debug panel's top strip, and surface the bindings for `editor::ToggleBreakpoint` in gutter tooltip instead Release Notes: - Debugger Beta: Added keybindings for `debugger::Continue`, `debugger::Restart`, and `debug_panel::ToggleFocus`. - Debugger Beta: Removed breakpoint-related buttons from the top of the debug panel. - Compatibility note: on Linux, `ctrl-shift-d` is now bound to `debug_panel::ToggleFocus` by default, instead of `editor::DuplicateLineDown`.
Cole Miller created
b2a9209
debugger: Add actions and keybindings for opening the thread and session menus (#31135)
Makes it possible to open and navigate these menus from the keyboard. I also removed the eager previewing behavior for the thread picker, which was buggy and came with a jarring layout shift. Release Notes: - Debugger Beta: Added the `debugger: open thread picker` and `debugger: open session picker` actions.
Cole Miller created
eb35d25
collab: Drop `billing_events` table (#31131)
This PR drops the `billing_events` table, as we're no longer using it. Release Notes: - N/A
Marshall Bowers created
8742d4a
editor: Fix regression causing incorrect delimiter on newline in case of multiple comment prefixes (#31129)
Closes #31115 This fixes regression caused by https://github.com/zed-industries/zed/pull/30824 while keeping that fix. - [x] Test Release Notes: - Fixed the issue where adding a newline after the `///` comment would extend it with `//` instead of `///` in Rust and other similar languages.
smit created
b829f72
collab: Prefer the plan on the subscription over the one on the usage (#31127)
This PR makes it so we always prefer the plan on the subscription. The plan stored on the subscription usage is informational only. Release Notes: - N/A
Marshall Bowers created
ffa8310
collab: Drop `monthly_usages` and `lifetime_usages` tables (#31124)
This PR drops the `monthly_usages` and `lifetime_usages` tables from the LLM database, as they are no longer used. Release Notes: - N/A
Marshall Bowers created
3fda539
Allow updater to check for updates after downloading one (#31066)
This PR brings back https://github.com/zed-industries/zed/pull/30969 and adds some initial testing. https://github.com/zed-industries/zed/pull/30969 did indeed allow Zed to continue doing downloads after downloading one, but it introduced a bug where Zed would download a new binary every time it polled, even if the version was the same as the running instance. This code could use a refactor to allow more / better testing, but this is a start. Release Notes: - N/A
Joseph T. Lyons created
b444b32
collab: Remove `GET /billing/monthly_spend` endpoint (#31123)
This PR removes the `GET /billing/monthly_spend` endpoint, as it is no longer used. Release Notes: - N/A
Marshall Bowers created
f196288
docs: Fix broken link in ai/configuration (#31119)
Release Notes: - N/A
Peter Tripp created
e30cc13
Rename 'Quit' to 'Quit Zed' in macOS menu (#31109)
This is standard for Mac apps. I should have included this with [my other PR](https://github.com/zed-industries/zed/pull/30697), but didn’t catch it. 🤦🏻♂️ Release Notes: - N/A
Rob McBroom created
09c8a84
docs: Link to models supported directly from table (#31112)
Closes #ISSUE Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
morgankrey and Marshall Bowers created
6e5996a
Fix unzipping clangd and codelldb on Windows (#31080)
Closes https://github.com/zed-industries/zed/pull/30454 Release Notes: - N/A
Kirill Bulatov created
c8f56e3
Update `Cargo.lock` (#31105)
This PR updates the `Cargo.lock` file, as running `cargo check` was producing a diff on `main`. Release Notes: - N/A
Marshall Bowers created
cfd3b0f
Meter edit predictions by acceptance in free plan (#30984)
TODO: - [x] Release a new version of `zed_llm_client` Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Max Brunsfeld , Mikayla Maki , Antonio Scandurra , Ben Brandt , and Marshall Bowers created
afe23cf
Canonicalize markdown link paths (#29119)
Closes #28657 Release Notes: - Fixed markdown preview not canonicalizing file paths
hrou0003 created
f915c24
copilot: Fix rate limit due to Copilot-Vision-Request header (#30989)
Issues: #30994 I've implemented an important optimisation in response to GitHub Copilot's recent rate limit on concurrent Vision API calls. Previously, our system was defaulting to vision header: true for all API calls. To prevent unnecessary calls and adhere to the new limits, I've updated our logic: the vision header is now only sent if the current message is a vision message, specifically when the preceding message includes an image. Prompt used to reproduce and verify the fix: `Give me a context for my agent crate about. Browse my repo.` Release Notes: - copilot: Set Copilot-Vision-Request header based on message content
Umesh Yadav created
bdd9e01
Bump Zed to v0.189 (#31101)
Release Notes: -N/A
Joseph T. Lyons created
6bbab4b
editor: Fix multi-cursor not added to lines shorter than current cursor column (#31100)
Closes #5255, #1046, #28322, #15728 This PR makes `AddSelectionBelow` and `AddSelectionAbove` not skip lines that are shorter than the current cursor column. This follows the same behavior as VSCode and Sublime. This change is only applicable in the case of an empty selection; if there is a non-empty selection, it continues to skip empty and shorter lines to create a Vim-like column selection, which is the better default for that case. - [x] Tests The empty selection no longer skips shorter lines: https://github.com/user-attachments/assets/4bde2357-20b6-44f2-a9d9-b595c12d3939 Non-empty selection continues to skip shorter lines. https://github.com/user-attachments/assets/4cd47c9f-b698-40fc-ad50-f2bf64f5519b Release Notes: - Improved `AddSelectionBelow` and `AddSelectionAbove` to no longer skip shorter lines when the selection is empty, aligning with VSCode and Sublime behavior.
smit created
7450b78
editor: Prevent overlapping of signature/hover popovers and context menus (#31090)
Closes #29358 If hover popovers or signature popovers ever clash with the context menu (like code completion or code actions), they find the best spot by trying different directions around the context menu to show the popover. If they can’t find a good spot, they just overlap with the context menu. Not overlapping state: <img width="350" alt="image" src="https://github.com/user-attachments/assets/2f1bdc4c-eb01-405c-b5fb-eb28eadc9957" /> Overlapping case, moves popover to bottom of context menu: <img width="350" alt="image" src="https://github.com/user-attachments/assets/3ce4be23-7701-4711-b604-5e29682360e1" /> Overlapping case, moves popover to right of context menu: <img width="350" alt="image" src="https://github.com/user-attachments/assets/60d47518-e412-4d64-9d17-a69a17248bdf" /> <img width="350" alt="image" src="https://github.com/user-attachments/assets/2a3de176-7443-46d8-99d1-b2973a0ffaa6" /> Overlapping case, moves popover to left of context menu: <img width="350" alt="image" src="https://github.com/user-attachments/assets/015b799b-8c6e-4405-aee6-e205d4caebec" /> Overlapping case, moves popover to top of context menu: <img width="350" alt="image" src="https://github.com/user-attachments/assets/fbd03d84-9a49-44eb-846b-a9852d2ff43e" /> Release Notes: - Fixed an issue where hover popovers or signature popovers would overlap with existing opened completion or code actions context menus.
smit created
0c03519
Fix project search panic (#31089)
The panic occurred when querying a second search in the project search multibuffer while there were dirty buffers. The panic only happened in Nightly so there's no release notes Release Notes: - N/A
Anthony Eid created
636eff2
Revert "Allow updater to check for updates after downloading one (#30969)" (#31086)
This reverts commit 5c4f9e57d8f919f58e39d660515e1dbec7d71483. Release Notes: - N/A
Joseph T. Lyons created
6c8f400
nix: Prevent spurious bindgen rebuilds in the devshell (#31083)
Release Notes: - N/A
Julia Ryan created
91bc5ae
evals: Add system prompt to edit agent evals + fix edit agent (#31082)
1. Add system prompt: this is how it's called from threads. Previously, we were sending 2. Fix an issue with writing agent thought into a newly created empty file. Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Antonio Scandurra <me@as-cii.com>
Oleksiy Syvokon , Ben Brandt , and Antonio Scandurra created
2f3564b
Add icons to the built-in picker for Open (#30893)
 Release Notes: - Added icons to the built-in picker for `Open` dialog
Aleksei Gusev created
d61a544
Fix `Replace Next Match` command (#30890)
Currently, `search::ReplaceNext` works only first time it is executed because Zed switches the focus to the editor. It seems `self.editor_focus` call is unnecessary. Closes #17466 Release Notes: - Fixed `Replace Next Match` command. Previously it worked once, then Zed incorrectly switched the focus to the editor https://github.com/user-attachments/assets/66ef61d6-1efe-43ca-8d8c-6b40540a9930
Aleksei Gusev created
8061bac
Add excluded_files to pane::DeploySearch (#30699)
In accordance with #30327, I saw no reason for included files to get
special treatment, and I actually get use out of prefilling excluded
files because I like not to search symlinked files which, in my
workflow, use a naming convention.
This is simply implementing the same exact changes, but for excluded. It
was tested with `"space /": ["pane::DeploySearch", { "excluded_files":
"**/_*.tf" }]` and works just fine.
Release Notes:
- Added `excluded_files` to `pane::DeploySearch`.
Adam Sherwood created
77dadfe
chore: Make terminal_view own the TerminalSlashCommand (#31070)
This reduces 'touch crates/editor/src/editor.rs && cargo +nightly build' from 8.9s to 8.5s. That same scenario used to take 8s less than a week ago. :) I'm measuring with nightly rustc, because it's compile times are better than those of stable thanks to https://github.com/rust-lang/rust/pull/138522 main (8.2s total):  [cargo-timing.html.zip](https://github.com/user-attachments/files/20364175/cargo-timing.html.zip) #22be776 (7.5s total): [cargo-timing-20250521T085303.892834Z.html.zip](https://github.com/user-attachments/files/20364391/cargo-timing-20250521T085303.892834Z.html.zip)  Release Notes: - N/A
Piotr Osiewicz created
0023b37
extension_host: fix missing debug adapters (#31069)
Missed because of lack of rebase Release Notes: - N/A
Ben Brandt created
4ece4a6
extension_host: Use wasmtime incremental compilation (#30948)
Builds on top of https://github.com/zed-industries/zed/pull/30942
This turns on incremental compilation and decreases extension
compilation times by up to another 41%
Putting us at roughly 92% improved extension load times from what is in
the app today.
Because we only have a static engine, I can't reset the cache between
every run. So technically the benchmarks are always running with a
warmed cache. So the first extension we load will take the 8.8ms, and
then any subsequent extensions will be closer to the measured time in
this benchmark.
This is also measuring the entire load process, not just the
compilation. However, since this is the loading we likely think of when
thinking about extensions, I felt it was likely more helpful to see the
impact on the overall time.
This works because our extensions are largely the same Wasm bytecode
(SDK code + std lib functions etc) with minor changes in the trait impl.
The more different that extensions implementation is, there will be less
benefit, however, there will always be a large part of every extension
that is always the same across extensions, so this should be a speedup
regardless.
I used `moka` to provide a bound to the cache. We could use a bare
`DashMap`, however if there was some issue this could lead to a memory
leak. `moka` has some slight overhead, but makes sure that we don't go
over 32mb while using an LRU-style mechanism for deciding which
compilation artifacts to keep.
I measured our current extensions to take roughly 512kb in the cache.
Which means with a cap of 32mb, we can keep roughly 64 *completely
novel* extensions with no overlap. Since our extensions will have more
overlap than this though, we can actually keep much more in the cache
without having to worry about it.
#### Before:
```
load/1 time: [8.8301 ms 8.8616 ms 8.8931 ms]
change: [-0.1880% +0.3221% +0.8679%] (p = 0.23 > 0.05)
No change in performance detected.
```
#### After:
```
load/1 time: [5.1575 ms 5.1726 ms 5.1876 ms]
change: [-41.894% -41.628% -41.350%] (p = 0.00 < 0.05)
Performance has improved.
```
Release Notes:
- N/A
Ben Brandt created
77c2aec
Fix socks proxy local DNS resolution not respected (#30619)
Closes #30618 Release Notes: - Fixed SOCKS proxy incorrectly always uses remote DNS resolution.
Jonathan LEI created
3ee56c1
collab: Add `GET /users/look_up` endpoint (#31059)
This PR adds a new `GET /users/look_up` endpoint for retrieving users by various identifiers. This endpoint can look up users by the following identifiers: - Zed user ID - Stripe Customer ID - Stripe Subscription ID - Email address - GitHub login Release Notes: - N/A
Marshall Bowers created
3b1f6ea
client: Try to re-introduce HTTP/HTTPS proxy (#31002)
When building for the `x86_64-unknown-linux-musl` target, the default `openssl-dev` is compiled for the GNU toolchain, which causes a build error due to missing OpenSSL. This PR fixes the issue by avoiding the use of OpenSSL on non-macOS and non-Windows platforms. Release Notes: - N/A
张小白 created
44fbe27
wrap_map: Add capacity to vectors for better performance (#31055)
Release Notes: - N/A
Remco Smits created
a824119
Fix performance issues in project search related to detecting JSX tag auto-closing (#30842)
This PR changes it so we only create a snapshot and get the syntax tree for a buffer if we didn't detect that auto_close is enabled. <img width="1205" alt="Screenshot 2025-05-16 at 21 10 28" src="https://github.com/user-attachments/assets/1ada445f-77bc-4c7c-bffe-953f34ee5384" /> Release Notes: - Improved project search performance
Remco Smits created
16366cf
Use `anyhow` more idiomatically (#31052)
https://github.com/zed-industries/zed/issues/30972 brought up another
case where our context is not enough to track the actual source of the
issue: we get a general top-level error without inner error.
The reason for this was `.ok_or_else(|| anyhow!("failed to read HEAD
SHA"))?; ` on the top level.
The PR finally reworks the way we use anyhow to reduce such issues (or
at least make it simpler to bubble them up later in a fix).
On top of that, uses a few more anyhow methods for better readability.
* `.ok_or_else(|| anyhow!("..."))`, `map_err` and other similar error
conversion/option reporting cases are replaced with `context` and
`with_context` calls
* in addition to that, various `anyhow!("failed to do ...")` are
stripped with `.context("Doing ...")` messages instead to remove the
parasitic `failed to` text
* `anyhow::ensure!` is used instead of `if ... { return Err(...); }`
calls
* `anyhow::bail!` is used instead of `return Err(anyhow!(...));`
Release Notes:
- N/A
Kirill Bulatov created
1e51a7a
Don't pass `-z` flag to git-cat-file (#31053)
Closes #30972 Release Notes: - Fixed a bug that prevented the `copy permalink to line` action from working on systems with older versions of git.
Cole Miller created
d547a86
editor: Hide hover popover when code actions context menu is triggered (#31042)
This PR hides hover info/diagnostic popovers when code action menu is shown. We already hide hover info/diagnostic popover on code completion menu trigger (handled on input). Note: It is still possible to see hover popover if code completion or code action menu is already open. This is intended behavior. - [x] Test hover popover hides when code action is triggered Release Notes: - Fixed issue where info and diagnostic hover popovers were still visible when code action menu is triggered.
smit created
4bb04ce
Accept wrapped text content from LLM providers (#31048)
Some providers sometimes send `{ "type": "text", "text": ... }` instead
of just the text as a string. Now we accept those instead of erroring.
Release Notes:
- N/A
Richard Feldman created
89700c3
sublime: Don't map editor::FindNextMatch by default (#31029)
Closes: https://github.com/zed-industries/zed/issues/29535
Broken in: https://github.com/zed-industries/zed/pull/28559/files
Removes `editor::FindNextMatch` and `editor::FindPreviousMatch` from the
default sublime mappings. If you would like to use this, you will have
to add them to your user keymap. Reverts the previous behavior where
cmd-g / cmd-shift-g relies on the base keymap.
Linux:
```json
{
"context": "Editor && mode == full",
"bindings": {
"f3": "editor::FindNextMatch",
"shift-f3": "editor::FindPreviousMatch"
}
}
```
MacOS:
```json
{
"context": "Editor && mode == full",
"bindings": {
"cmd-g": "editor::FindNextMatch",
"cmd-shift-g": "editor::FindPreviousMatch"
}
},
```
Release Notes:
- Fixed a regression in Sublime Text keymap for find next/previous in
the search bar
Peter Tripp created
7609402
Remove `alt-.` keybinding from terminal on macOS (#30827)
Closes: #30730 It conflicts with the `>` key on the Czech keyboard layout If you want the previous behavior, add `"alt-.": ["terminal::SendText", "\u001b."]` to your keymap under the `Terminal` context. Release Notes: - Improved the default terminal keybind to not conflict on Czech keyboards Co-authored-by: Peter Tripp <peter@zed.dev>
Erik Funder Carstensen and Peter Tripp created
a0ec9cf
telemetry: Consider the entire chain of config sources when merging (#31039)
Global settings were implemented in #30444, but `Settings` implementations need to consider that source for it to be useful. This PR does just that for `TelemetrySettings` so these can be controlled via global settings. Release Notes: - N/A
Andres Suarez created
eb318c1
Revert "linux(x11): Add support for pasting images from clipboard (#29387)" (#31033)
Closes: #30523 Release Notes: - linux: Reverted the ability to paste images on X11, as the change broke pasting from some external applications
Ben Kunkle created
5e5a124
evals: Eval for creating an empty file (#31034)
This eval checks that Edit Agent can create an empty file without writing its thoughts into it. This issue is not specific to empty files, but it's easier to reproduce with them. For some mysterious reason, I could easily reproduce this issue roughly 90% of the time in actual Zed. However, once I extract the exact LLM request before the failure point and generate from that, the reproduction rate drops to 2%! Things I've tried to make sure it's not a fluke: disabling prompt caching, capturing the LLM request via a proxy server, running the prompt on Claude separately from evals. Every time it was mostly giving good outcomes, which doesn't match my actual experience in Zed. At some point I discovered that simply adding one insignificant space or a newline to the prompt suddenly results in an outcome I tried to reproduce almost perfectly. This weirdness happens even outside the Zed code base and even when using a different subscription. The result is the same: an extra newline or space changes the model behavior significantly enough, so that the pass rate drops from 99% to 0-3% I have no explanation to this. Release Notes: - N/A
Oleksiy Syvokon created
65e751c
Revert "gpui: Fix `shape_text` split to support \r\n" (#31031)
Reverts zed-industries/zed#31022 Sorry @mikayla-maki, I found that things are more complicated than I thought. The lines returned by shape_text must maintain the same length as all the original characters, otherwise the subsequent offset needs to always consider the difference of `\r\n` or `\n` to do the offset. Before, we only needed to add +1 after each offset after the line, but now we need to consider +1 or +2, which is much more complicated.
Jason Lee created
17cf045
debugger: Surface validity of breakpoints (#30380)
We now show on the breakpoint itself whether it can ever be hit.  Release Notes: - N/A --------- Signed-off-by: Umesh Yadav <git@umesh.dev> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Michael Sloan <michael@zed.dev> Co-authored-by: Marshall Bowers <git@maxdeviant.com> Co-authored-by: Ben Kunkle <ben@zed.dev> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Co-authored-by: Agus Zubiaga <hi@aguz.me> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Agus Zubiaga <agus@zed.dev> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Richard Feldman <oss@rtfeldman.com> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com> Co-authored-by: peppidesu <bakker.pepijn@gmail.com> Co-authored-by: Kirill Bulatov <kirill@zed.dev> Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com> Co-authored-by: Jens Krause <47693+sectore@users.noreply.github.com> Co-authored-by: Bennet Bo Fenner <bennet@zed.dev> Co-authored-by: Max Nordlund <max.nordlund@gmail.com> Co-authored-by: Finn Evers <dev@bahn.sh> Co-authored-by: tidely <43219534+tidely@users.noreply.github.com> Co-authored-by: Sergei Kartsev <kartsevsb@gmail.com> Co-authored-by: Shardul Vaidya <31039336+5herlocked@users.noreply.github.com> Co-authored-by: Chris Kelly <amateurhuman@gmail.com> Co-authored-by: Peter Tripp <peter@zed.dev> Co-authored-by: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com> Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: william341 <wwokwilliam@gmail.com> Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com> Co-authored-by: AidanV <aidanvanduyne@gmail.com> Co-authored-by: imumesh18 <umesh4257@gmail.com> Co-authored-by: d1y <chenhonzhou@gmail.com> Co-authored-by: AidanV <84053180+AidanV@users.noreply.github.com> Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Co-authored-by: 张小白 <364772080@qq.com> Co-authored-by: THELOSTSOUL <1095533751@qq.com> Co-authored-by: Ron Harel <55725807+ronharel02@users.noreply.github.com> Co-authored-by: Tristan Hume <tristan@anthropic.com> Co-authored-by: Stanislav Alekseev <43210583+WeetHet@users.noreply.github.com> Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com> Co-authored-by: Remco Smits <djsmits12@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev> Co-authored-by: Thomas David Baker <bakert@gmail.com> Co-authored-by: Nate Butler <iamnbutler@gmail.com> Co-authored-by: Mikayla Maki <mikayla@zed.dev> Co-authored-by: Rob McBroom <github@skurfer.com> Co-authored-by: CharlesChen0823 <yongchen0823@gmail.com>
Piotr Osiewicz , Anthony , Cole Miller , Michael Sloan , Marshall Bowers , Ben Kunkle , Danilo Leal , Agus Zubiaga , Ben Brandt , Agus Zubiaga , Danilo Leal , Richard Feldman , Max Brunsfeld , Smit Barmase , peppidesu , Kirill Bulatov , Ben Kunkle , Jens Krause , Bennet Bo Fenner , Max Nordlund , Finn Evers , tidely , Sergei Kartsev , Shardul Vaidya , Chris Kelly , Peter Tripp , Umesh Yadav , Julia Ryan , Cole Miller , Conrad Irwin , william341 , Liam , AidanV , imumesh18 , d1y , AidanV , Anthony Eid , 张小白 , THELOSTSOUL , Ron Harel , Tristan Hume , Stanislav Alekseev , Joseph T. Lyons , Remco Smits , Anthony Eid , Oleksiy Syvokon , Thomas David Baker , Nate Butler , Mikayla Maki , Rob McBroom , and CharlesChen0823 created
36ae564
Project Search: Don't prompt to save edited buffers in project search results if buffers open elsewhere (#31026)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
110195c
collab: Only create a Zed Free subscription if there is no other active subscription (#31023)
This PR makes it so we only create a Zed Free subscription if there is no other active subscription, rather than just having another Zed Free subscription. Release Notes: - N/A Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Marshall Bowers and Max Brunsfeld created
b7d5e64
gpui: Fix `shape_text` split to support \r\n (#31022)
Release Notes:
- N/A
---
Today I check the shape_text result on Windows, I get:
<img width="409" alt="屏幕截图 2025-05-20 222908"
src="https://github.com/user-attachments/assets/3ee93911-3de1-4e01-9433-00c626fc2369"
/>
Here the `shape_text` split logic I think it should use `lines` method,
not `split('\n')`, the newline on Windows is `\r\n`.
Jason Lee created
0fa9f05
gpui: Fix `update_window` to `borrow_mut` will crash on Windows (#24545)
Release Notes: - N/A --- When we use `window_handle` to draw WebView on Windows, this will crash by: This error caused by when used WebView2. ``` thread 'main' panicked at crates\gpui\src\app\async_context.rs:91:28: already borrowed: BorrowMutError note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' panicked at library\core\src\panicking.rs:221:5: panic in a function that cannot unwind ``` Try this https://github.com/tauri-apps/wry/pull/1383 on Windows can replay the crash. In fact, we had done [a similar fix around August last year](https://github.com/huacnlee/zed/pull/6), but we used the unsafe method to avoid crashes in that version, we felt that it was not a good change, so we do not make PR. Today @sunli829 thought about it again and changed the method. Now using `try_borrow_mut` is similar to the previous `borrow_mut`. https://github.com/zed-industries/zed/blob/691de6b4b36d3ada91a1e238904b065eec454188/crates/gpui/src/app.rs#L70-L78 I have tested to start Zed by those changes, it is looks no problem. Co-authored-by: Sunli <scott_s829@163.com>
Jason Lee and Sunli created