Commit Graph
31403 Commits
Author SHA1 Message Date
Bedis Nbiba e1e9f78dc3 docs: Document config completion for Deno (#38993)
Closes #ISSUE

Release Notes:

- doc: document config completion for deno
2025-09-26 22:17:46 -04:00
Max Brunsfeld 0fe696bc7c Bump html extension version to 0.2.3 (#38997)
Release Notes:

- N/A
2025-09-26 23:23:00 +00:00
Lukas Wirth ead38fd1be fsevent: Check CFURLCreateFromFileSystemRepresentation return value (#38996)
Fixes ZED-1T

Release Notes:

- Fixed a segmentation fault on macOS fervent stream creation
2025-09-26 22:28:52 +00:00
Lukas Wirth fbdf5d4df4 editor: Do not panic on tab_size > 16, cap it at 128 (#38994)
Fixes ZED-1PT
Fixes ZED-1PW
Fixes ZED-1G2

Release Notes:

- Fixed Zed panicking when the `tab_size` is set higher than 16
2025-09-27 00:13:16 +02:00
Max Brunsfeld 837f282f1e html: Remove Windows workaround (#38069)
⚠️ 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
2025-09-26 12:14:54 -07:00
Xiaobo Liu bd3cccea15 edit_prediction_button: Fix Copilot menu not updating after sign out (#38854)
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>
2025-09-26 12:42:06 -06:00
justin talbott d437bbaa0a Don't let ctrl-g clobber git panel keybindings in Emacs keymap (#37732)
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.
2025-09-26 12:13:35 -06:00
Conrad Irwin 114791e1a8 Revert "Fix arrow function detection in TypeScript/JavaScript outline (#38411)" (#38982)
This reverts commit 1bbf98aea6.

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
2025-09-26 13:54:52 -04:00
Martin Pool d6fcd404af Show config messages from install-wild, install-mold (#38979)
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
2025-09-26 16:47:38 +00:00
Bartosz Kaszubowski 7ad9ca9bcc editor: Replace hardcoded keystroke in Excerpt Fold Toggle tooltip (#38978)
# 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"
/>
2025-09-26 10:44:46 -06:00
Bartosz Kaszubowski a55dff7834 ui: Fix Vim mode detection in keybinding to text helpers (#38971)
# 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"
/>
2025-09-26 10:18:49 -06:00
Bartosz Kaszubowski 6db621a1ed ui: Display option in lowercase in Vim mode keybindings (#38969)
# 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"
/>
2025-09-26 10:18:31 -06:00
948b4379df Stop using linear color space on Linux Blade renderer (#38967)
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>
2025-09-26 16:09:30 +00:00
Danilo Leal 8db24dd8ad docs: Update wording around configuring MCP servers (#38973)
Felt like this could be clarified a bit.

Release Notes:

- N/A
2025-09-26 12:47:26 -03:00
Ben KunkleandMichael 4aac5642c1 JSON Schema URIs (#38916)
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>
2025-09-26 11:41:26 -04:00
Nia 30b49cfbf5 perf: Fixup ordering, fix pathing, docs (#38970)
Release Notes:

- N/A
2025-09-26 15:28:48 +00:00
Lukas Wirth c69912c76a Forbid std::process::Command spawning, replace with smol where appropriate (#38894)
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 ...
2025-09-26 15:17:36 +00:00
Smit Barmase 7f14ab26dd copilot: Ensure minimum Node version (#38945)
Closes #38918

Release Notes:

- N/A
2025-09-26 20:08:21 +05:30
Marshall Bowers 5ee73d3e3c Move settings_macros to Cargo workspace (#38962)
Release Notes:

- N/A
2025-09-26 14:20:36 +00:00
Martin Pool d5aa81a5b2 Fix up Wild package name and decompression (#38961)
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
2025-09-26 16:20:01 +02:00
21855c15e4 Disable subpixel shifting for y axis on Linux (#38959)
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>
2025-09-26 13:31:59 +00:00
1f9279a56f linux: Add missing linear to sRGB transform in mono sprite rendering (#38944)
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>
2025-09-26 09:54:46 +00:00
Michael Sloan da71465437 edit_prediction_context: Minor optimization of text similarity + some renames (#38941)
Release Notes:

- N/A
2025-09-26 07:57:28 +00:00
Nia bcc8149263 perf: Fixes (#38935)
Release Notes:

- N/A
2025-09-26 05:41:06 +00:00
Danilo Leal b1528601cc settings ui: Add some light design tweaks (#38934)
Release Notes:

- N/A
2025-09-26 05:22:57 +00:00
Marshall Bowers ee357e8987 language_models: Send a header indicating that the client supports xAI models (#38931)
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
2025-09-26 04:11:48 +00:00
Floyd Wang 0891a7142d gpui: Fix incorrect colors comment (#38929)
| Before | After |
| - | - |
| <img width="466" height="207" alt="SCR-20250926-khst"
src="https://github.com/user-attachments/assets/c28a9ea8-3d22-458c-a683-b2fabe275a04"
/> | <img width="480" height="215" alt="SCR-20250926-kgru"
src="https://github.com/user-attachments/assets/cfee6392-804c-46e2-a55a-f72071264d10"
/> |

Release Notes:

- N/A
2025-09-25 21:53:04 -06:00
Marshall Bowers 94fe862fb6 x_ai: Fix Model::from_id for Grok 4 (#38930)
This PR fixes `x_ai::Model::from_id`, which was not properly handling
`grok-4`.

Release Notes:

- N/A
2025-09-26 03:49:14 +00:00
Marshall Bowers 4f91fab190 language_models: Add xAI support to Zed Cloud provider (#38928)
This PR adds xAI support to the Zed Cloud provider.

Release Notes:

- N/A
2025-09-26 03:19:12 +00:00
0e0f48d8e1 Introduce SettingsField type to the settings UI (#38921)
Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Ben Kunkle <ben@zed.dev>
2025-09-26 01:08:55 +00:00
Max Brunsfeld 7980dbdaea Add API docs for RelPath (#38923)
Also reduce the use of `unsafe` in that module.

Release Notes:

- N/A
2025-09-26 00:49:10 +00:00
Michael SloanandOleksiy a5683f3541 zeta_cli: Add --output-format both and --prompt-format only-snippets (#38920)
These are options are probably temporary, added for use in some
experimental code

Release Notes:

- N/A

Co-authored-by: Oleksiy <oleksiy@zed.dev>
2025-09-25 22:49:36 +00:00
Michael Sloan 67984d5e49 provider configuration: Use SingleLineInput instead of Editor (#38814)
Release Notes:

- N/A
2025-09-25 22:38:27 +00:00
Cole Miller d83d7d35cb windows: Fix inconsistent separators in buffer headers and breadcrumbs (#38898)
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
2025-09-25 22:24:32 +00:00
Derek Nguyen 6470443271 python: Fix ty archive extraction on Linux (#38917)
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.
2025-09-25 22:17:49 +00:00
Jakub Konka 5b72dfff87 helix: Streamline mode naming in the UI and in settings (#38870)
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`.
2025-09-25 23:57:01 +02:00
Max BrunsfeldandCole Miller 495a7b0a84 Clean up RelPath API (#38912)
Consolidate constructors and accessors.

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2025-09-25 14:42:32 -07:00
Lauren Hinchcliffe 301e976465 Fix inlay hints using status theming instead of syntax theming (#36219)
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.
2025-09-25 16:39:12 -05:00
Anthony EidandBen Kunkle daebc4052d settings ui: Implement dynamic navbar based on pages section headers (#38915)
Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
2025-09-25 21:19:18 +00:00
Cole Miller ecc35fcd9a acp: Fix @mentions when remoting from Windows to Linux (#38882)
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.
2025-09-25 16:23:45 -04:00
Ben Kunkle 236006b6b3 settings_ui: Small UI improvements (#38911)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-09-25 20:23:02 +00:00
Jakub Konka 39c4480841 terminal: Trace terminal events (#38896)
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
2025-09-25 22:21:33 +02:00
Ben Kunkle 48aac2a746 settings_ui: Add dropdown component + other fixes (#38909)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-09-25 15:59:34 -04:00
Nathan SoboandConrad Irwin ae036f8ead Read env vars in TestScheduler::many (#38897)
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>
2025-09-25 13:03:56 -06:00
Bartosz Kaszubowski de1de25712 keymap_editor: Fix filter input element alignment (#38895)
# 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"
/>
2025-09-25 15:29:02 -03:00
Cole Miller 18fc951135 Fix flaky test_remote_resolve_path_in_buffer test (#38903)
Release Notes:

- N/A
2025-09-25 18:11:45 +00:00
Cole Miller 40138e12a4 windows: Make ctrl-n open a new terminal when in a terminal (#38900)
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
2025-09-25 17:51:19 +00:00
Joseph T. Lyons e7a5c81b07 Improve media-creation flow in release process (#38902)
Release Notes:

- N/A
2025-09-25 17:49:12 +00:00
Joseph T. Lyons d98175c0a6 Update release process docs to reflect new process (#38892)
Release Notes:

- N/A
2025-09-25 11:57:00 -04:00
313838373473747564656e74766775 bc7d804a42 remote: Don’t pass --method=GET to wget (#38771)
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
2025-09-25 14:59:04 +00:00