a4e8d25
init
Junkui Zhang created
a4e8d25
init
Junkui Zhang created
3be48a9
remove unneeded change
Junkui Zhang created
7984e05
add comments
Junkui Zhang created
88b01e5
fix `raster_bounds`
Junkui Zhang created
e599352
remove the use of bitmap scaler
Junkui Zhang created
c3f210e
improve rendering (i think)
Kate created
d84cf7e
update rendering quality of small fonts
Junkui Zhang created
aa68b3e
revert wrong blend state change
Junkui Zhang created
fad7aa6
fix
Junkui Zhang created
d50b3e1
cleanup
Junkui Zhang created
a8d3e55
DXGI_ALPHA_MODE_PREMULTIPLIED
Junkui Zhang created
fe096ad
fix monochrome
Junkui Zhang created
30f6699
checkpoint
Junkui Zhang created
a100107
properly calculate bounds
Junkui Zhang created
da83011
Rasterize glyphs without D2D
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Julia <julia@zed.dev>
Kate , Max Brunsfeld , and Julia created
bb1a7cc
client: Add `CloudUserStore` (#35370)
This PR adds a new `CloudUserStore` for storing information about the user retrieved from Cloud instead of Collab. Release Notes: - N/A
Marshall Bowers created
289f420
Sort crate members in `Cargo.toml` (#35371)
This PR sorts the crate members in the `Cargo.toml` file, as they had gotten unsorted. Release Notes: - N/A
Marshall Bowers created
15ad986
windows: Port to DirectX 11 (#34374)
Closes #16713 Closes #19739 Closes #33191 Closes #26692 Closes #17374 Closes #35077 Closes https://github.com/zed-industries/zed/issues/35205 Closes https://github.com/zed-industries/zed/issues/35262 Compared to the current Vulkan implementation, this PR brings several improvements: - Fewer weird bugs - Better hardware compatibility - VSync support - More accurate colors - Lower memory usage - Graceful handling of device loss --- **TODO:** - [x] Don’t use AGS binaries directly - [ ] The message loop is using too much CPU when ths app is idle - [x] There’s a [bug](https://github.com/zed-industries/zed/issues/33191#issuecomment-3109306630) in how `Path` is being rendered. --- Release Notes: - N/A --------- Co-authored-by: Kate <kate@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
张小白 , Kate , and Max Brunsfeld created
0d97153
docs: Add section about terminal contrast adjustments (#35369)
Closes #35146 This change adds documentation for the `terminal.minimum_contrast` setting to the docs as we've had a lot of reports regarding the contrast adjustments, yet are missing proper documentation (aside from that in the `defaults.json`) for it. Release Notes: - N/A
Finn Evers created
5ef5f3c
Introduce settings profiles (#35339)
Settings Profiles
- [X] Allow profiles to be defined, where each profile can be any of
Zed's settings
- [X] Autocompletion of all settings
- [X] Errors on invalid keys
- [X] Action brings up modal that shows user-defined profiles
- [X] Alphabetize profiles
- [X] Ability to filter down via keyboard, and navigate via arrow up and
down
- [X] Auto select Disabled option by default (first in list, after
alphabetizing user-defined profiles)
- [X] Automatically select active profile on next picker summoning
- [X] Persist settings until toggled off
- [X] Show live preview as you select from the profile picker
- [X] Tweaking a setting, while in a profile, updates the profile live
- [X] Make sure actions that live update Zed, such as `cmd-0`, `cmd-+`,
and `cmd--`, work while in a profile
- [X] Add a test to track state
Release Notes:
- Added the ability to configure settings profiles, via the "profiles"
key. Example:
```json
{
"profiles": {
"Streaming": {
"agent_font_size": 20,
"buffer_font_size": 20,
"theme": "One Light",
"ui_font_size": 20
}
}
}
```
To set a profile, use `settings profile selector: toggle`
Joseph T. Lyons created
2d4afd2
Polish onboarding page (#35367)
- Added borders to the numeric stepper. - Changed the hover mouse style for SwitchField. - Made the edit page toggle buttons more responsive. Release Notes: - N/A
Anthony Eid created
afcb8f2
onboarding: Wire up settings import (#35366)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
cdce3b3
linux: Fix caps lock not working consistently for certain X11 systems (#35361)
Closes #35316 Bug in https://github.com/zed-industries/zed/pull/34514 Turns out you are not supposed to call `update_key` for modifiers on `KeyPress`/`KeyRelease`, as modifiers are already updated in `XkbStateNotify` events. Not sure why this only causes issues on a few systems and works on others. Tested on Ubuntu 24.04.2 LTS (initial bug) and Kubuntu 25.04 (worked fine before too). Release Notes: - Fixed an issue where caps lock stopped working consistently on some Linux X11 systems.
Smit Barmase created
bc6bb42
Add `cloud_api_client` and `cloud_api_types` crates (#35357)
This PR adds two new crates for interacting with Cloud: - `cloud_api_client` - The client that will be used to talk to Cloud. - `cloud_api_types` - The types for the Cloud API that are shared between Zed and Cloud. Release Notes: - N/A
Marshall Bowers created
7695c4b
collab: Temporarily add back `GET /user` endpoint for local development (#35358)
This PR temporarily adds back the `GET /user` endpoint to Collab since we're still using it for local development. Will remove it again once we update the local development process to leverage Cloud. Release Notes: - N/A
Marshall Bowers created
794ade8
ui_prompt: Fix prompt dialog is hard to see on large screen (#35348)
Closes #18516 Release Notes: - Improved visibility of prompt dialog on Linux by dimming the background.
Smit Barmase created
f4bd524
ui_prompt: Fix copy version number from About Zed (#35346)
Closes #29361 Release Notes: - Fixed not selectable version number in About Zed prompt on Linux.
Smit Barmase created
9d82e14
Bump Zed to v0.199 (#35343)
Release Notes: -N/A
Joseph T. Lyons created
f8d1062
onboarding: Fix keybindings showing up after a delay (#35342)
This fixes an issue where keybinds would only show up after a delay on the welcome page upon re-opening it. It also binds one of the buttons to the corresponding action. Release Notes: - N/A
Finn Evers created
45af1fc
Always double reconnection delay and add jitter (#35337)
Previously, we would pick an exponent between 0.5 and 2.5, which would cause a lot of clients to try reconnecting in rapid succession, overwhelming the server as a result. This pull request always doubles the previous delay and introduces a jitter that can, at most, double it. As part of this, we're also increasing the maximum reconnection delay from 10s to 30s: this gives us more space to spread out the reconnection requests. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Antonio Scandurra and Marshall Bowers created
0aea5ac
Fix Windows CI logic (#35335)
Fixes unintentional change in https://github.com/zed-industries/zed/pull/35204 Release Notes: - N/A
Peter Tripp created
4d66d96
Revert "gpui: Implement support for wlr layer shell (#32651)" (#35331)
This reverts commit c110f7801516a1948ade4a51213f1fc8ea7f8efc.
On Linux Wayland, that causes a panic:
```
already mutably borrowed: BorrowError
zed::reliability::init_panic_hook::{{closure}}::h276cc55bf0717738+165677654
std::panicking::rust_panic_with_hook::h409da73ddef13937+139331443
std::panicking::begin_panic_handler::{{closure}}::h159b61b27f96a9c2+139330666
std::sys::backtrace::__rust_end_short_backtrace::h5b56844d75e766fc+139314825
__rustc[4794b31dd7191200]::rust_begin_unwind+139329805
core::panicking::panic_fmt::hc8737e8cca20a7c8+9934576
core::cell::panic_already_mutably_borrowed::h95c7d326eb19a92a+9934403
<gpui::platform::linux::wayland::window::WaylandWindow as gpui::platform::PlatformWindow>::set_app_id::hfa7deae0be264f60+10621600
gpui::window::Window::new::h6505f6042d99702f+80424235
gpui::app::async_context::AsyncApp::open_window::h62ef8f80789a0af2+159117345
workspace::Workspace::new_local::{{closure}}::{{closure}}::h4d786ba393f391b5+160720110
gpui::app::App::spawn::{{closure}}::haf6a6ef0f9bab21c+159294806
async_task::raw::RawTask<F,T,S,M>::run::h9e5f668e091fddff+158375501
<gpui::platform::linux::wayland::client::WaylandClient as gpui::platform::linux::platform::LinuxClient>::run::h69e40feabd97f1bb+79906738
gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hd80e5b2da41c7d0a+79758141
gpui::app::Application::run::h9136595e7346a2c9+163935333
zed::main::h83f7ef86a32dbbfd+165755480
std::sys::backtrace::__rust_begin_short_backtrace::hb6da6fe5454d7688+168421891
std::rt::lang_start::{{closure}}::h51a50d6423746d5f+168421865
std::rt::lang_start_internal::ha8ef919ae4984948+139244369
main+168421964
__libc_start_call_main+29344125649354
__libc_start_main_impl+29344125649547
_start+12961358
```
Release Notes:
- N/A
Kirill Bulatov created
93e6b01
Actually disable ai for now (#35327)
Closes https://github.com/zed-industries/zed/issues/35325 * removes Supermaven actions * removes copilot-related action * stops re-enabling edit predictions when disabled Release Notes: - N/A
Kirill Bulatov created
0072527
agent: Rename "open configuration" action to "open settings" (#35329)
"Settings" is the terminology we use in the agent panel, thus having the action use "configuration" makes it harder for folks to find this either via the command palette or the keybinding editor UI in case they'd like to change it. Release Notes: - agent: Renamed the "open configuration" action to "open settings" for better discoverability and consistency
Danilo Leal created
c22fa9a
chore: Move a bunch of foreground tasks into background (#35322)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
49b75e9
Kb/wasm panics (#35319)
Follow-up of https://github.com/zed-industries/zed/pull/34208 Closes https://github.com/zed-industries/zed/issues/35185 Previous code assumed that extensions' language server wrappers may leak only in static data (e.g. fields that were not cleared on deinit), but we seem to have a race that breaks this assumption. 1. We do clean `all_lsp_adapters` field after https://github.com/zed-industries/zed/pull/34334 and it's called for every extension that is unregistered. 2. `LspStore::maintain_workspace_config` -> `LspStore::refresh_workspace_configurations` chain is triggered independently, apparently on `ToolchainStoreEvent::ToolchainActivated` event which means somewhere behind there's potentially a Python code that gets executed to activate the toolchian, making `refresh_workspace_configurations` start timings unpredictable. 3. Seems that toolchain activation overlaps with plugin reload, as `2025-07-28T12:16:19+03:00 INFO [extension_host] extensions updated. loading 0, reloading 1, unloading 0` suggests in the issue logs. The plugin reload seem to happen faster than workspace configuration refresh in https://github.com/zed-industries/zed/blob/c65da547c9aa5d798a1a71468bf253bf55d1cb09/crates/project/src/lsp_store.rs#L7426-L7456 as the language servers are just starting and take extra time to respond to the notification. At least one of the `.clone()`d `adapter`s there is the adapter that got removed during plugin reload and has its channel closed, which causes a panic later. ---------------------------- A good fix would be to re-architect the workspace refresh approach, same as other accesses to the language server collections. One way could be to use `Weak`-based structures instead, as definitely the extension server data belongs to extension, not the `LspStore`. This is quite a large undertaking near the extension core though, so is not done yet. Currently, to stop the excessive panics, no more `.expect` is done on the channel result, as indeed, it now can be closed very dynamically. This will result in more errors (and backtraces, presumably) printed in the logs and no panics. More logging and comments are added, and workspace querying is replaced to the concurrent one: no need to wait until a previous server had processed the notification to send the same to the next one. Release Notes: - Fixed warm-related panic happening during startup
Kirill Bulatov created
7be1f24
Replace `zed_llm_client` with `cloud_llm_client` (#35309)
This PR replaces the usage of the `zed_llm_client` with the `cloud_llm_client`. It was ported into this repo in #35307. Release Notes: - N/A
Marshall Bowers created
17a0179
Stop caching needlessly (#35308)
Release Notes: - N/A
Mikayla Maki created
b8f3a91
Add `cloud_llm_client` crate (#35307)
This PR adds a `cloud_llm_client` crate to take the place of the `zed_llm_client`. Release Notes: - N/A
Marshall Bowers created
3824751
Add meta description tag to docs pages (#35112)
Closes #ISSUE
Adds basic frontmatter support to `.md` files in docs. The only
supported keys currently are `description` which becomes a `<meta
name="description" contents="...">` tag, and `title` which becomes a
normal `title` tag, with the title contents prefixed with the subject of
the file.
An example of the syntax can be found in `git.md`, as well as below
```md
---
title: Some more detailed title for this page
description: A page-specific description
---
# Editor
```
The above will be transformed into (with non-relevant tags removed)
```html
<head>
<title>Editor | Some more detailed title for this page</title>
<meta name="description" contents="A page-specific description">
</head>
<body>
<h1>Editor</h1>
</body>
```
If no front-matter is provided, or If one or both keys aren't provided,
the title and description will be set based on the `default-title` and
`default-description` keys in `book.toml` respectively.
## Implementation details
Unfortunately, `mdbook` does not support post-processing like it does
pre-processing, and only supports defining one description to put in the
meta tag per book rather than per file. So in order to apply
post-processing (necessary to modify the html head tags) the global book
description is set to a marker value `#description#` and the html
renderer is replaced with a sub-command of `docs_preprocessor` that
wraps the builtin `html` renderer and applies post-processing to the
`html` files, replacing the marker value and the `<title>(.*)</title>`
with the contents of the front-matter if there is one.
## Known limitations
The front-matter parsing is extremely simple, which avoids needing to
take on an additional dependency, or implement full yaml parsing.
* Double quotes and multi-line values are not supported, i.e. Keys and
values must be entirely on the same line, with no double quotes around
the value.
The following will not work:
```md
---
title: Some
Multi-line
Title
---
```
* The front-matter must be at the top of the file, with only white-space
preceding it
* The contents of the title and description will not be html-escaped.
They should be simple ascii text with no unicode or emoji characters
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Katie Greer <katie@zed.dev>
Ben Kunkle and Katie Greer created
5776619
ui: Clean up toggle button group component (#35303)
This change cleans up the toggle button component a bit by utilizing const parameters instead and also removes some clones by consuming the values where possible instead. Release Notes: - N/A
Finn Evers created
0be83f1
emmet: Bump to 0.0.4 (#35305)
This PR bumps the emmet extension to version 0.0.4. Includes: - https://github.com/zed-industries/zed/pull/33865 - https://github.com/zed-industries/zed/pull/32208 - https://github.com/zed-industries/zed/pull/15177 Note that this intentionally does NOT include a change in the `extension.toml`: The version was bumped incorrectly once in https://github.com/zed-industries/zed/pull/32208 in both the `extension.toml` as well as the `Cargo.lock` but not in the `Cargo.toml`. After that, https://github.com/zed-industries/zed/pull/33667 only removed the changes in the `Cargo.lock` but didn't revert the change in the `extension.toml` file. Hence, the version in the `extension.toml` is already at `0.0.4` Release Notes: - N/A
Finn Evers created
f0927fa
collab: Add kill switches for syncing data to and from Stripe (#35304)
This PR adds two kill switches for syncing data to and from Stripe using Collab. The `cloud-stripe-events-polling` and `cloud-stripe-usage-meters-sync` feature flags control whether we use Cloud for polling Stripe events and updating Stripe meters, respectively. When we're ready to hand off the syncing to Cloud we can enable the feature flag to do so. Release Notes: - N/A
Marshall Bowers created
d2d116c
collab: Remove `GET /user` endpoint (#35301)
This PR removes the `GET /user` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A
Marshall Bowers created
9f69b53
keymap_ui: Additional cleanup (#35299)
Closes #ISSUE Additional cleanup and testing for the keystroke input including - Focused testing of the "previous modifiers" logic in search mode - Not merging unmodified keystrokes into previous modifier only bindings (extension of #35208) - Fixing a bug where input would overflow in search mode when entering only modifiers - Additional testing logic to ensure keystrokes updated events are always emitted correctly Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
48e085a
onboarding ui: Add editing page to onboarding page (#35298)
I added buttons for inlay values, showing the mini map, git blame, and controlling the UI/Editor Font/Font size. The only thing left for this page is some UI clean up and adding buttons for setting import from VSCode/cursor. I also added Numeric Stepper as a component preview. Current state: <img width="1085" height="585" alt="image" src="https://github.com/user-attachments/assets/230df474-da81-4810-ba64-05673896d119" /> Release Notes: - N/A
Anthony Eid created
3378f02
Fix link to panic location on GitHub (#35162)
I had a panic, and it reported ``https://github.com/zed-industries/zed/blob/24c2a465bbbbb1be28259abef2f98d52184ff446/src/crates/assistant_tools/src/edit_agent.rs#L686 (may not be uploaded, line may be incorrect if files modified)`` The `/src` part seems superfluous, and result in a link that don’t work (unlike `https://github.com/zed-industries/zed/blob/24c2a465bbbbb1be28259abef2f98d52184ff446/src/crates/assistant_tools/src/edit_agent.rs#L686`). I don’t know why it originally worked (of if it even actually originally worked properly), but there seems to be no reason to keep that `/src`. Release Notes: - N/A
marius851000 created
c110f78
gpui: Implement support for wlr layer shell (#32651)
I was interested in potentially using gpui for a hobby project, but needed [layer shell](https://wayland.app/protocols/wlr-layer-shell-unstable-v1) support for it. Turns out gpui's (excellent!) architecture made that super easy to implement, so I went ahead and did it. Layer shell is a window role used for notification windows, lock screens, docks, backgrounds, etc. Supporting it in gpui opens the door to implementing applications like that using the framework. If this turns out interesting enough to merge - I'm also happy to provide a follow-up PR (when I have the time to) to implement some of the desirable window options for layer shell surfaces, such as: - namespace (currently always `""`) - keyboard interactivity (currently always `OnDemand`, which mimics normal keyboard interactivity) - anchor, exclusive zone, margins - popups Release Notes: - Added support for wayland layer shell surfaces in gpui --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Ridan Vandenbergh and Mikayla Maki created
85b712c
keymap_ui: Clear close keystroke capture on timeout (#35289)
Closes #ISSUE Introduces a mechanism whereby keystrokes that have a post-fix which matches the prefix of the stop recording binding can still be entered. The solution is to introduce a (as of right now) 300ms timeout before the close keystroke state is wiped. Previously, with the default stop recording binding `esc esc esc`, searching or entering a binding ending in esc was not possible without using the mouse. `e.g.` entering keystroke `ctrl-g esc` and then attempting to hit `esc` three times would stop recording on the penultimate `esc` press and the final `esc` would not be intercepted. Now with the timeout, it is possible to enter `ctrl-g esc`, pause for a moment, then hit `esc esc esc` and end the recording with the keystroke input state being `ctrl-g esc`. I arrived at 300ms for this delay as it was long enough that I didn't run into it very often when trying to escape, but short enough that a natural pause will almost always work as expected. Release Notes: - Keymap Editor: Added a short timeout to the stop recording keybind handling in the keystroke input, so that it is now possible using the default bindings as an example (custom bindings should work as well) to search for/enter a binding ending with `escape` (with no modifier), pause for a moment, then hit `escape escape escape` to stop recording and search for/enter a keystroke ending with `escape`.
Ben Kunkle created
5fa2121
Fix animations in the component preview (#33673)
Fixes #33869 The Animation page in the Component Preview had a few issues. * The animations only ran once, so you couldn't watch animations below the fold. * The offset math was wrong, so some animated elements were rendered outside of their parent container. * The "animate in from right" elements were defined with an initial `.left()` offset, which overrode the animation behavior. I made fixes to address these issues. In particular, every time you click the active list item, it renders the preview again (which causes the animations to run again). Before: https://github.com/user-attachments/assets/a1fa2e3f-653c-4b83-a6ed-c55ca9c78ad4 After: https://github.com/user-attachments/assets/3623bbbc-9047-4443-b7f3-96bd92f582bf Release Notes: - N/A
Daniel Sauble created