⚠️ Don't merge until Zed 0.205.x is on stable ⚠️
See https://github.com/zed-industries/zed/pull/37811
This PR updates the HTML extension, bumping the zed extension API to the
latest version, which removes the need to work around a bug where
`current_dir()` returned an invalid path on windows.
Release Notes:
- N/A
Max Brunsfeld
created
bd3ccce
edit_prediction_button: Fix Copilot menu not updating after sign out (#38854)
Click to expand commit body
The edit prediction button menu was displaying stale authentication
status due to capturing the Copilot status in a closure. After signing
out, the menu would still show "Sign Out" instead of "Sign In to
Copilot".
This change fixes the issue by reading the current Copilot status each
time the menu is displayed, ensuring the menu options are always
accurate.
Release Notes:
- Fixed Copilot AI menu not updating after sign out
Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu
created
d437bba
Don't let `ctrl-g` clobber git panel keybindings in Emacs keymap (#37732)
Click to expand commit body
i'm testing out zed, coming from emacs, and so i'm trying out the base
keymap for it. i noticed though that zed's default git keybindings don't
work when the gitpanel is open though, because of the top-level binding
of `ctrl-g` to cancel. my expectation is that the emacs-like keybindings
would work insofar as they don't clobber zed's defaults (which would
take precedence), but obviously i'll defer to others on this!
another option could be to use the `C-x v` keymap prefix that the emacs
built-in `vc` package uses, but it doesn't contain the same set of
bindings for git commands that zed has.
justin talbott
created
114791e
Revert "Fix arrow function detection in TypeScript/JavaScript outline (#38411)" (#38982)
Click to expand commit body
This reverts commit 1bbf98aea6f335e791f19d8f76ba8a5f0510937f.
We found that #38411 caused problems where anonymous functions are
included too many times in the outline. We'd like to figure out a better
fix before shipping this to stable.
Fixes #38956
Release Notes:
- (preview only) revert changes to outline view
Conrad Irwin
created
d6fcd40
Show config messages from install-wild, install-mold (#38979)
Click to expand commit body
Follows on from
https://github.com/zed-industries/zed/pull/37717#discussion_r2376739687
@dvdsk suggested this but I didn't get to it in the previous PR.
# Tested
```
; sudo rm /usr/local/bin/wild
; ./script/install-wild
Downloading from https://github.com/davidlattimore/wild/releases/download/0.6.0/wild-linker-0.6.0-x86_64-unknown-linux-gnu.tar.gz
Wild is installed to /usr/local/bin/wild
To make it your default, add or merge these lines into your ~/.cargo/config.toml:
[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=--ld-path=wild"]
[target.aarch64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=--ld-path=wild"]
```
```
; sudo rm /usr/local/bin/mold
; ./script/install-mold 2.34.0
Downloading from https://github.com/rui314/mold/releases/download/v2.34.0/mold-2.34.0-x86_64-linux.tar.gz
Mold is installed to /usr/local/bin/mold
To make it your default, add or merge these lines into your ~/.cargo/config.toml:
[target.'cfg(target_os = "linux")']
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
```
Release Notes:
- N/A
# Why
I have recently corrected this tooltip content for macOS, but recently
have learnt that keystroke to text helpers already exist in the
codebase.
# How
Replace hardcoded keystroke for Excerpt Fold Toggle in Uncommitted
Changes tab.
> [!important]
> Should be merged after #38969 and #38971, otherwise it would be a
regression on macOS.
Release Notes:
- N/A
# Preview (stacked on mentioned above PRs)
<img width="618" height="248" alt="Screenshot 2025-09-26 at 17 43 53"
src="https://github.com/user-attachments/assets/cdc7fb74-e1d8-4a59-b847-8a8d2edd4641"
/>
Bartosz Kaszubowski
created
a55dff7
ui: Fix Vim mode detection in keybinding to text helpers (#38971)
Click to expand commit body
# Why
Refs:
* #38969
When working on the PR above I have spotted that keybinding to text
helpers incorrectly detects if Vim mode is enabled.
# How
Replace inline check with an existing `KeyBinding::is_vim_mode` method
in keybinding text helpers.
Release Notes:
- Fixed incorrect Vim mode detection in UI keybinding to text helpers.
# Test plan
Made sure that when Vim mode is not specified in settings file it
resolves to `false`, and correct keybindings are displayed, than I have
added the `"vim_mode": true,` line to my settings file and made sure
that keybindings text have changed accordingly.
### Before
<img width="712" height="264" alt="Screenshot 2025-09-26 at 16 57 08"
src="https://github.com/user-attachments/assets/62bc24bd-c335-420f-9c2e-3690031518c1"
/>
### After
<img width="712" height="264" alt="Screenshot 2025-09-26 at 17 13 50"
src="https://github.com/user-attachments/assets/e0088897-eb6b-4d7b-855a-931adcc15fe8"
/>
Bartosz Kaszubowski
created
6db621a
ui: Display `option` in lowercase in Vim mode keybindings (#38969)
Click to expand commit body
# Why
Spotted that some tooltips include `alt` keystroke combination on macOS.
# How
Add missing `vim_mode` version definition of `Option` key to the
`keystroke_text` helper.
Release Notes:
- Fixed keystroke to text helper output for macOS `Option` key in Vim
mode
# Preview
### Before
<img width="712" height="264" alt="Screenshot 2025-09-26 at 16 57 08"
src="https://github.com/user-attachments/assets/d5daa37f-0da7-4430-91ea-4a750c025472"
/>
### After
<img width="712" height="264" alt="Screenshot 2025-09-26 at 16 56 21"
src="https://github.com/user-attachments/assets/5804ed39-9b1b-4028-a9c9-32c066042f4a"
/>
Bartosz Kaszubowski
created
948b437
Stop using linear color space on Linux Blade renderer (#38967)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/7992
Closes https://github.com/zed-industries/zed/issues/22711
Left is main, right is patched.
* default font
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/c4e3d18a-a0dd-48b8-a1f0-182407655efb"
/>
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/6eea07e7-1676-422c-961f-05bc72677fad"
/>
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/4d9e30dc-6905-48ad-849d-48eac6ebed03"
/>
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/ef20986e-c29c-4fe0-9f20-56da4fb0ac29"
/>
* font size 7
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/8b277e92-9ae4-4415-8903-68566b580f5a"
/>
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/b9140e73-81af-430b-b07f-af118c7e3dae"
/>
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/185f526a-241e-4573-af1d-f27aedeac48e"
/>
<img width="3862" height="2152" alt="image"
src="https://github.com/user-attachments/assets/7a239121-ae13-4db9-99d9-785ec26cd98e"
/>
Release Notes:
- Improved color rendering on Linux
Co-authored-by: Kate <kate@zed.dev>
Co-authored-by: John <john-tur@outlook.com>
Co-authored-by: apricotbucket28 <71973804+apricotbucket28@users.noreply.github.com>
Kirill Bulatov
,
Kate
,
John
, and
apricotbucket28
created
8db24dd
docs: Update wording around configuring MCP servers (#38973)
Click to expand commit body
Felt like this could be clarified a bit.
Release Notes:
- N/A
Closes #ISSUE
Improves the efficiency of our interactions with the Zed language
server. Previously, on startup and after every workspace configuration
changed notification, we would send >1MB of JSON Schemas to the JSON
LSP. The only reason this had to happen was due to the case where an
extension was installed that would result in a change to the JSON schema
for settings (i.e. added language, theme, etc).
This PR changes the behavior to use the URI LSP extensions of
`vscode-json-language-server` in order to send the server URI's that it
can then use to fetch the schemas as needed (i.e. the settings schema is
only generated and sent when `settings.json` is opened. This brings the
JSON we send to on startup and after every workspace configuration
changed notification down to a couple of KB.
Additionally, using another LSP extension request we can notify the
server when a schema has changed using the URI as a key, so we no longer
have to send a workspace configuration changed notification, and the
schema contents will only be re-requested and regenerated if the schema
is in use.
Release Notes:
- Improved the efficiency of communication with the builtin JSON LSP.
JSON Schemas are no longer sent to the JSON language server in their
full form. If you wish to view a builtin JSON schema in the language
server info tab of the language server logs (`dev: open language server
logs`), you must now use the `editor: open url` action with your cursor
over the URL that is sent to the server.
- Made it so that Zed urls (`zed://...`) are resolved locally when
opened within the editor instead of being resolved through the OS. Users
who could not previously open `zed://*` URLs in the editor can now do so
by pasting the link into a buffer and using the `editor: open url`
action (please open an issue if this is the case for you!).
---------
Co-authored-by: Michael <michael@zed.dev>
c69912c
Forbid `std::process::Command` spawning, replace with `smol` where appropriate (#38894)
Click to expand commit body
std commands can block for an arbitrary duration and so runs risk of
blocking tasks for too long. This replaces all such uses where sensible
with async processes.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
7f14ab2
copilot: Ensure minimum Node version (#38945)
Click to expand commit body
Closes #38918
Release Notes:
- N/A
Smit Barmase
created
5ee73d3
Move `settings_macros` to Cargo workspace (#38962)
Click to expand commit body
Release Notes:
- N/A
Marshall Bowers
created
d5aa81a
Fix up Wild package name and decompression (#38961)
Click to expand commit body
Wild changed in 0.6.0 to using gzip rather than xz, and changed the
format of the package name.
Follows on from and fixes
https://github.com/zed-industries/zed/pull/37717
cc @dvdsk @mati865
Release Notes:
- N/A
Martin Pool
created
21855c1
Disable subpixel shifting for y axis on Linux (#38959)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/7992
Port of #38440
<img width="3836" height="2142" alt="zed_nightly_vs_zed_dev_2"
src="https://github.com/user-attachments/assets/66bcbb9a-2159-4790-8a9a-d4814058d966"
/>
Does not change the rendering on Linux, but prepares us for the times
without cosmic-text where this will be needed.
Release Notes:
- N/A
Co-authored-by: Kate <kate@zed.dev>
Co-authored-by: John <john@zed.dev>
Kirill Bulatov
,
Kate
, and
John
created
1f9279a
linux: Add missing linear to sRGB transform in mono sprite rendering (#38944)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/7992
Takes
https://github.com/zed-industries/zed/issues/7992#issuecomment-3083871615
and applies its adjusted version on the current state of things
Screenshots (left is main, right is the patch):
* default font size
<img width="3840" height="2160" alt="image"
src="https://github.com/user-attachments/assets/26fdc42c-12e6-447f-ad3d-74808e4b2562"
/>
<img width="3840" height="2160" alt="image"
src="https://github.com/user-attachments/assets/29829c61-c998-4e77-97c3-0e66e14b236d"
/>
* buffer and ui font size 7
<img width="3840" height="2160" alt="image"
src="https://github.com/user-attachments/assets/5d0f1d94-b7ed-488d-ab22-c25eb01e6b4a"
/>
<img width="3840" height="2160" alt="image"
src="https://github.com/user-attachments/assets/7020d62e-de65-4b86-a64b-d3eea798c217"
/>
Release Notes:
- Added missing linear to sRGB transform in mono sprite rendering on
Linux
Co-authored-by: Thomas Dagenais <exrok@i64.dev>
Co-authored-by: Kate <work@localcc.cc>
Kirill Bulatov
,
Thomas Dagenais
, and
Kate
created
da71465
edit_prediction_context: Minor optimization of text similarity + some renames (#38941)
b152860
settings ui: Add some light design tweaks (#38934)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
ee357e8
language_models: Send a header indicating that the client supports xAI models (#38931)
Click to expand commit body
This PR adds an `x-zed-client-supports-x-ai` header to the `GET /models`
request sent to Cloud to indicate that the client supports xAI models.
Release Notes:
- N/A
Also reduce the use of `unsafe` in that module.
Release Notes:
- N/A
Max Brunsfeld
created
a5683f3
zeta_cli: Add `--output-format both` and `--prompt-format only-snippets` (#38920)
Click to expand commit body
These are options are probably temporary, added for use in some
experimental code
Release Notes:
- N/A
Co-authored-by: Oleksiy <oleksiy@zed.dev>
Michael Sloan
and
Oleksiy
created
67984d5
provider configuration: Use `SingleLineInput` instead of `Editor` (#38814)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
d83d7d3
windows: Fix inconsistent separators in buffer headers and breadcrumbs (#38898)
Click to expand commit body
Make `resolve_full_path` use the appropriate separators, and return a
`String`.
As part of fixing the fallout from that type change, this also fixes a
bunch of places in the agent code that were using `std::path::Path`
operations on paths that could be non-local, by changing them to operate
instead on strings and use the project's `PathStyle`.
This clears the way a bit for making `full_path` also return a string
instead of a `PathBuf`, but I've left that for a follow-up.
Release Notes:
- N/A
Cole Miller
created
6470443
python: Fix ty archive extraction on Linux (#38917)
Click to expand commit body
Closes #38553
Release Notes:
- Fixed wrong AssetKind specified on linux for ty
As discussed in the linked issue. All of the non windows assets for ty
are `tar.gz` files. This change applies that fix.
Derek Nguyen
created
5b72dff
helix: Streamline mode naming in the UI and in settings (#38870)
Click to expand commit body
Release Notes:
- When `helix_mode = true`, modes are called without the `HELIX_` prefix
in the UI:
`HELIX_NORMAL` becomes `NORMAL`
`HELIX_SELECT` becomes `SELECT`
- (breaking change) Helix users should remove `"default_mode":
"helix_normal"` from their settings. This is now the default when
`"helix_mode": true`.
Consolidate constructors and accessors.
Release Notes:
- N/A
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Max Brunsfeld
and
Cole Miller
created
301e976
Fix inlay hints using status theming instead of syntax theming (#36219)
Click to expand commit body
Release Notes:
- Fixed editor inlay hints incorrectly using status theming when syntax
theming is available
Previously, a theme's `style.syntax.hint` object is completely ignored,
and `style.hint` `style.hint.background` are used instead. However,
these seem to be related to status hints, such as the inline git blame
integration.
For syntax hints (as given by an LSP), the reasonable assumption would
be that the `style.syntax.hint` object is used instead, but it isn't.
This means that defining other style characteristics (`font_style`, for
example) does nothing.
I've fixed the issue in a backward-compatible way, by using the theme
`syntax` `HighlightStyle` as the base for inlay hint styling, and
falling back to the original `status` colors should the syntax object
not contain the color definitions.
With the following theme settings:
```jsonc
{
"hint": "#ff00ff", // Status hints (git blame, etc.)
"hint.background": "#ff00ff10",
"syntax": {
"hint": {
"color": "#ffffff", // LSP inlay hints
"background_color": "#ffffff10",
"font_style": "italic", // Now properly applied
"font_weight": 700
}
}
}
```
Current behavior:
<img width="896" height="201" alt="image"
src="https://github.com/user-attachments/assets/e89d212f-ed7e-4d27-94e4-96d716e229d2"
/>
Italics and font weight are ignored. Uses status colors instead.
Fixed behavior:
<img width="896" height="202" alt="image"
src="https://github.com/user-attachments/assets/f14ed2c3-bb60-4b74-886d-6b409d338714"
/>
Italics and font weight are used properly. Status color is preserved for
the git blame status, but correct syntax colors are used for the inlay
hints.
Lauren Hinchcliffe
created
daebc40
settings ui: Implement dynamic navbar based on pages section headers (#38915)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Anthony Eid
and
Ben Kunkle
created
ecc35fc
acp: Fix `@mentions` when remoting from Windows to Linux (#38882)
Click to expand commit body
Closes #38620
`Url::from_file_path` and `Url::from_directory_path` assume the path
style of the target they were compiled for, so we can't use them in
general. So, switch from `file://` to encoding the absolute path (for
mentions that have one) as a query parameter, which works no matter the
platforms. We'll still parse the old `file://` mention URIs for
compatibility with thread history.
Release Notes:
- windows: Fixed a crash when using `@mentions` in agent threads when
remoting from Windows to Linux or WSL.
Cole Miller
created
236006b
settings_ui: Small UI improvements (#38911)
Tracing terminal events can now be enabled using typical `RUST_LOG`
invocation:
```
RUST_LOG=info,terminal=trace,alacritty_terminal=trace cargo run
```
Release Notes:
- N/A
Jakub Konka
created
48aac2a
settings_ui: Add dropdown component + other fixes (#38909)
ae036f8
Read env vars in TestScheduler::many (#38897)
Click to expand commit body
This allows ITERATIONS and SEED environment variables to override the
hard coded values during testing.
cc @ConradIrwin @as-cii
Release Notes:
- N/A
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Nathan Sobo
and
Conrad Irwin
created
de1de25
keymap_editor: Fix filter input element alignment (#38895)
Click to expand commit body
# Why
I have spotted that Keymap Editor filter input (editor) is misaligned
vertically.
# How
Switch the input wrapper to flex layout, use `items_center` to align
editor vertically in center of the wrapper.
Release Notes:
- Fixed Keymap Editor filter input alignment
# Test plan
I have tested the change locally and compared the UI before and after,
to make sure that change does not affect the size of the wrapper
element.
### Before
<img width="1622" height="428" alt="Screenshot 2025-09-25 at 18 18 59"
src="https://github.com/user-attachments/assets/7d09be5c-6caf-4873-8ecf-2542851cb40a"
/>
### After
<img width="1622" height="428" alt="Screenshot 2025-09-25 at 18 07 18"
src="https://github.com/user-attachments/assets/540fcb3e-691d-4fb7-8130-2ed45ddc0adc"
/>
Bartosz Kaszubowski
created
18fc951
Fix flaky `test_remote_resolve_path_in_buffer` test (#38903)
Click to expand commit body
Release Notes:
- N/A
Cole Miller
created
40138e1
windows: Make `ctrl-n` open a new terminal when in a terminal (#38900)
Click to expand commit body
This is how `ctrl-n` works on macOS. Right now `ctrl-n` on Windows with
the default keymap usually causes a new buffer to open, which is
inconvenient.
Release Notes:
- N/A
Cole Miller
created
e7a5c81
Improve media-creation flow in release process (#38902)
Click to expand commit body
Release Notes:
- N/A
Joseph T. Lyons
created
d98175c
Update release process docs to reflect new process (#38892)
Click to expand commit body
Release Notes:
- N/A
Joseph T. Lyons
created
bc7d804
remote: Don’t pass `--method=GET` to `wget` (#38771)
Click to expand commit body
BusyBox's off brand `wget` does not have support for the `--method`
argument, which makes `zed` incapable of downloading the remote server
unless the _☙authentic❧_ one is installed. Removing this should fix the
issue. Couldn't find much about guidelines on how the code is supposed
to be formatted, so I opted for commenting the line out with an
explanation.
Closes #38712
Release Notes:
- Fixed remote development on BusyBox