Commit log

98865a3 Fix invalid anchors in breadcrumbs (#38687)

Click to expand commit body
Release Notes:

- (nightly only) Fix panic when your cursor abuts a multibyte character

Conrad Irwin created

681a4ad Remove `OutlineItem::signature_range` as it is no longer used (#38680)

Click to expand commit body
Use in edit predictions was removed in #38676

Release Notes:

- N/A

Michael Sloan created

5e502a3 Fix remote server crash with JSON files (#38678)

Click to expand commit body
Closes #38594

Release Notes:

- N/A

Julia Ryan created

e9fbcf5 Allow `zed filename.rs:` (#38677)

Click to expand commit body
iTerm's editor configuration dialog allows you to set your editor to
`zed \1:\2`, but not (as far as I know) to leave off the : when there's
no line number

This fixes clicking on bare filenames in iTerm for me.

Release Notes:

- Fixed line number parsing so that `zed filename.rs:` will now act as
though you did `zed filename.rs`

Conrad Irwin created

c9e3b32 zeta2: Provider setup (#38676)

Click to expand commit body
Creates a new `EditPredictionProvider` for zeta2, that requests
completions from a new cloud endpoint including context from the new
`edit_prediction_context` crate. This is not ready for use, but it
allows us to iterate.

Release Notes:

- N/A

---------

Co-authored-by: Michael Sloan <michael@zed.dev>
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Agus Zubiaga , Michael Sloan , Bennet , and Bennet Bo Fenner created

e9abd5b docs: Mention required matching configs when developing language server extensions (#38674)

Click to expand commit body
This took me quite a while to find out when I developed my first
language extension. I had non-matching entries in the `languages` array
and in the name field of `config.toml`, and it was especially tricky
because the zed extension would start up, but not the language server. I
sure which this had been in the docs, so I am contributing it now!

Jens Kouros created

a90abb1 Bump Rust to 1.90 (#38436)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Nia Espera <nia@zed.dev>
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>

Piotr Osiewicz , Nia Espera , and Julia Ryan created

46d19d8 helix: Fix helix-paste mode in line mode (#38663)

Click to expand commit body
In particular,
* if the selection ends at the beginning of the next line, and the
current line under the cursor is empty, we paste at the selection's end.
* if however the current line under the cursor is empty, we need to move
to the beginning of the next line to avoid pasting above the end of
current selection

In addition, in line mode, we always move the cursor to the end of the
inserted text. Otherwise, while it looks fine visually,
inserting/appending ends up in the next logical line which is not
desirable.

Release Notes:

- N/A

Jakub Konka created

e484f49 language_models: Treat a `block_reason` from Gemini as a refusal (#38670)

Click to expand commit body
This PR updates the Gemini provider to treat a
`prompt_feedback.block_reason` as a refusal, as Gemini does not seem to
return a `stop_reason` to use in this case.

<img width="639" height="162" alt="Screenshot 2025-09-22 at 4 23 15 PM"
src="https://github.com/user-attachments/assets/7a86d67e-06c1-49ea-b58f-fa80666f0f8c"
/>

Previously this would just result in no feedback to the user.

Release Notes:

- Added an error message when a Gemini response contains a
`block_reason`.

Marshall Bowers created

80dcabe perf: Better docs, internal refactors (#38664)

Click to expand commit body
Release Notes:

- N/A

Nia created

e602cfa Restore user-defined ordering of profiles (#38665)

Click to expand commit body
This PR fixes a regression where settings profiles were no longer
ordered in the same order that the user defined in their settings.

Release Notes:

- N/A

Joseph T. Lyons created

d4adb51 languages: Update package.json and tsconfig.json schemas (#38655)

Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/34382

- Add support for `tsconfig.*.json` not just `tsconfig.json`. 
- Updated JSON schemas to
[SchemaStore/schemastore@281aa4a](https://github.com/SchemaStore/schemastore/tree/281aa4aa4ac21385814423f86a54d1b8ccfc17a1)
(2025-09-21)
-
[tsconfig.json](https://github.com/SchemaStore/schemastore/commits/master/src/schemas/json/tsconfig.json)
@
[281aa4a](https://raw.githubusercontent.com/SchemaStore/schemastore/281aa4aa4ac21385814423f86a54d1b8ccfc17a1/src/schemas/json/tsconfig.json)
-
[package.json](https://github.com/SchemaStore/schemastore/commits/master/src/schemas/json/package.json)
@
[281aa4a](https://raw.githubusercontent.com/SchemaStore/schemastore/281aa4aa4ac21385814423f86a54d1b8ccfc17a1/src/schemas/json/package.json)

See also: 
- [discord
thread](https://discord.com/channels/869392257814519848/1419298937290096760)
-
https://github.com/zed-industries/zed/issues/21994#issuecomment-3319321308

Release Notes:

- Updated package.json and tsconfig.json schemas to newest release
(2025-09-21). Match `tsconfig.*.json` too.

Peter Tripp created

a0514af editor: Make buffer search bar capture CopyPath & CopyRelativePath actions (#38645)

Click to expand commit body
Closes #38495

Cause:

- When the Find input is focused, CopyPath/CopyRelativePath were handled
by the editor and stopped during the bubble phase, preventing
BufferSearchBar from relaying to the file-backed editor.

Release Notes:

- Fixes “Workspace: Copy Relative Path” not copying while the Find bar
is focused.

Miao created

c88fdaf Implement Markdown link embedding on paste (#38639)

Click to expand commit body
This PR adds automatic markdown URL embedding on paste when you are in
text associated with the Markdown language and you have a valid URL in
your clipboard. This the default behavior in VS Code and GitHub, when
pasting a URL in Markdown. It works in both singleton buffers and multi
buffers.

One thing that is a bit unfortunate is that, previously, `do_paste` use
to simply call `Editor::insert()`, in the case of pasting content that
was copied from an external application, and now, we are duplicating
some of `insert()`'s logic in place, in order to have control over
transforming the edits before they are inserted.

Release Notes:

- Added automatic Markdown URL embedding on paste.

---------

Co-authored-by: Cole Miller <53574922+cole-miller@users.noreply.github.com>

Joseph T. Lyons and Cole Miller created

003163e Move my keybinding fixes to the right platform (#38654)

Click to expand commit body
In cffb883108ec07ec2f51446cb35eac19b89e625f I put the fixed keybindings
on the wrong platform

Release Notes:

- Fix syntax node shortcuts

Conrad Irwin created

9e64b7b terminal: Escape args in alacritty on Windows (#38650)

Click to expand commit body
Release Notes:

- N/A

Jakub Konka created

d4fd59f vim: Add support for `<count>gt` and `<count>gT` (#38570)

Click to expand commit body
Vim mode currently supports `gt` (go to next tab) and `gT` (go to
previous tab) but not with count. Implement the expected behavior as
defined by vim:

- `<count>gt` moves to tab `<count>`
- `<count>gT` moves to previous tab `<count>` times (with wraparound)

Release Notes:

- Improved vim `gt` and `gT` to support count, e.g. `5gt` - go to tab 5,
`8gT` - go to 8th previous tab with wraparound.

Ran Benita created

4e6e424 acp: Support model selection for ACP agents (#38652)

Click to expand commit body
It requires the agent to implement the (still unstable) model selection
API. Will allow us to test it out before stabilizing.

Release Notes:

- N/A

Ben Brandt created

dccbb47 Use a consistent default for window scaling (#38527)

Click to expand commit body
(And make it 2, because most macs have retina screens)

Release Notes:

- N/A

Conrad Irwin created

b97843e Add quick "Edit debug.json" button to debugger control strip (#38600)

Click to expand commit body
This button already exists in the main menu, as well as the "New
Session" view in the debugger panel. However, this view disappears after
starting the debugging session. This PR adds the same button to the
debugger control strip that remains accessible. This is convenient for
people editing their debug.json frequently.

Site-node: I feel like the `Cog` icon would be more appropriate, but I
picked `Code` to stay consistent with the "New Session" view.

Before:

<img width="194" height="118" alt="image"
src="https://github.com/user-attachments/assets/5b42a8a4-f48f-4145-a425-53365dd785ca"
/>

After:

<img width="194" height="118" alt="image"
src="https://github.com/user-attachments/assets/12f56ea1-150b-4564-8e6a-da4671f52079"
/>

Release Notes:

- Added "Edit debug.json" button to debugger control strip

Ilija Tovilo created

fbe0623 cli: Refactor URL prefix checks (#38375)

Click to expand commit body
use slice apply to prefix.

Release Notes:

- N/A

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>

Xiaobo Liu created

e0028fb git_ui: Remove duplicated/unused tooltips (#38439)

Click to expand commit body
Release Notes:

- N/A

Bartosz Kaszubowski created

1bbf98a Fix arrow function detection in TypeScript/JavaScript outline (#38411)

Click to expand commit body
Closes #35102 



https://github.com/user-attachments/assets/3c946d6c-0acd-4cfe-8cb3-61eb6d20f808


Release Notes:

- TypeScript/JavaScript: symbol outline now includes closures nested
within functions.

strygwyr created

8bac1be Disable subpixel shifting for y axis on Windows (#38440)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>

localcc and Jakub Konka created

55dc9ff text: Implement `Rope::clip_offset` in terms of the new utf8 boundary methods (#38630)

Click to expand commit body
Release Notes:

- N/A

Lukas Wirth created

50bd8bc docs: Add instructions for setting up `fish_indent` for fish (#38414)

Click to expand commit body
Release Notes:

- N/A

Justin Su created

a2c71d3 text: Assert text anchor offset validity on construction (#38441)

Click to expand commit body
Attempt to aid debugging some utf8 indexing issues

Release Notes:

- N/A

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

Lukas Wirth and Mikayla Maki created

7962045 Docs: change format_on_save value from false to "off" (#38615)

Click to expand commit body
Found this outdated piece of information in the docs while trying to
disable it myself, this PR simply changes `false` to `"off"`.

Release Notes:

- N/A

Matheus created

271771c editor: Prevent non‑boundary highlight indices in UTF‑8 (#38510)

Click to expand commit body
Closes #38359

Release Notes:

- Use byte offsets for highlights; fix UTF‑8 crash

Miao created

891a06c docs: Small grammar fix to use a possessive pronoun (#38610)

Click to expand commit body
> Your extension can define it's own debug locators
> Your extension can define it is own debug locators

The sentence above does not make sense after expanding "it's". We should
instead be using the possessive "its" in this scenario.

Release Notes:

- N/A

Signed-off-by: Remy Suen <remy.suen@docker.com>

Remy Suen created

11041ef perf: Greatly expand profiler (#38584)

Click to expand commit body
Expands on #38543 (notably allows setting importance categories and
weights on tests, and a lot of internal refactoring) because I couldn't
help myself. Also allows exporting runs to json and comparing across them. See code for docs.

Release Notes:

- N/A

Nia created

839c216 terminal: Re-add sanitizing trailing periods in URL detection (#38569)

Click to expand commit body
I accidentally regressed this when bumping alacritty in
https://github.com/zed-industries/zed/pull/38505

cc @davewa 

Release Notes:

- N/A

Jakub Konka created

18df6a8 acp: Fix spawning login task (#38567)

Click to expand commit body
Reverts #38175, which is not correct, since in fact we do need to
pre-quote the command and arguments for the shell when using
`SpawnInTerminal` (although we should probably change the API so that
this isn't necessary). Then, applies the same fix as #38565 to fix the
root cause of being unable to spawn the login task on macOS, or in any
case where the command/args contain spaces.

Release Notes:

- Fixed being unable to login with Claude Code or Gemini using the
terminal.

Cole Miller created

f5c2e4b vim: Remove duplicate bracket pair (#38560)

Click to expand commit body
remove depulicate code, this same with line: 556-562

Release Notes:

- N/A

CharlesChen0823 created

1d1bbf0 docs: Mention `herb` LSP for Ruby language (#38351)

Click to expand commit body
Hi! This pull request mentions [the `herb` LSP](https://herb-tools.dev)
for `HTML/ERB` language that the Ruby extension supports. Thanks!

Release Notes:

- N/A

---------

Co-authored-by: Finn Evers <finn.evers@outlook.de>

Vitaly Slobodin and Finn Evers created

ffa23d2 Fix formatting in workspace `Cargo.toml` (#38563)

Click to expand commit body
This PR fixes some formatting issues in the workspace `Cargo.toml`.

Release Notes:

- N/A

Marshall Bowers created

7820586 tests: Add an automatic perf profiler (#38543)

Click to expand commit body
Add an auto-profiler for our tests, to hopefully allow better triage of
performance impacts resulting from code changes. Comprehensive usage
docs are in the code.

Currently, it uses hyperfine under the hood and prints markdown to the
command line for all crates with relevant tests enabled. We may want to
expand this to allow outputting json in the future to allow e.g.
automatically comparing the difference between two runs on different
commits, and in general a lot of functionality could be added (maybe
measuring memory usage?).

It's enabled (mostly as an example) on two tests inside `gpui` and a
bunch of those inside `vim`. I'd have happily used `cargo bench`, but that's nightly-only.

Release Notes:

- N/A

Nia created

be77682 editor: Fix adding extraneous closing tags within TSX (#38534)

Smit Barmase created

8df616e Suppress the 'Agent Thread Started' event when initializing the panel (#38535)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

89520ea chore: Bump alacritty_terminal to 0.25.1-rc1 (#38505)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Dave Waggoner <waggoner.dave@gmail.com>

Jakub Konka and Dave Waggoner created

de75e2d extension_host: Expand supported extension API range to include v0.7.0 (#38529)

Click to expand commit body
This PR updates the version range for v0.6.0 of the extension API to
include v0.7.0.

Since we bumped the `zed_extension_api` crate's version to v0.7.0, we
need to expand this range in order for Zed clients to be able to install
extensions built against v0.7.0 of `zed_extension_api`.

Currently no extensions that target `zed_extension_api@0.7.0` can be
installed.

Release Notes:

- N/A

Marshall Bowers created

4e316c6 macos: Fix panic when `NSWindow::screen` returns `nil` (#38524)

Click to expand commit body
Closes #ISSUE

Release Notes:

- mac: Fixed an issue where Zed would panic if the workspace window was
previously off screen

Ben Kunkle created

1afbfcb git: Docs-based workaround for GitHub/git auth confusion (#38479)

Click to expand commit body
Closes #ISSUE

Release Notes:

- git: Added a link to Github's authentication help if you end up in Zed
trying to type a password in for https auth

Conrad Irwin created

be75755 Fix theme overrides (#38512)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

30a29ab Fix server settings (#38477)

Click to expand commit body
In the settings refactor I'd assumed server settings were like project
settings. This is not the case, they are in fact the normal user
settings;
but just read from the server.

Release Notes:

- N/A

Conrad Irwin created

b9188e0 collab: Fix screen share aspect ratio on non-Mac platforms (#38517)

Click to expand commit body
It was just a bunch of finnickery around UI layout. It affected Linux
too.



Release Notes:

* Fixed aspect ratio of peer screen share when using Linux/Windows
builds.

Piotr Osiewicz created

df6f0bc Fix markdown list in `bump-zed-minor-versions` (#38515)

Click to expand commit body
This fixes a small markdown issue in the `bump-zed-minor-versions`
script that bugged me for too long 😅

Release Notes:

- N/A

Finn Evers created

4743fe8 vim: Fix regression in surround behavior (#38344)

Click to expand commit body
Fix an issue introduced in
https://github.com/zed-industries/zed/pull/37321 where vim's surround
wouldn't work as expected when replacing quotes with non-quotes, with
whitespace always being added, regardless of whether the opening or
closing bracket was used. This is not the intended, or previous,
behavior, where only the opening bracket would trigger whitespace to be
added.

Closes #38169 

Release Notes:

- Fixed regression in vim's surround plugin that ignored whether the
opening or closing bracket was being used when replacing quotes, so
space would always be added

Dino created

0f4bdca Update icon theme fallback to use default theme (#38485)

Click to expand commit body
https://github.com/zed-industries/zed/pull/38367 introduced panic:

```
thread 'main' panicked at crates/theme/src/settings.rs:812:18:
called `Option::unwrap()` on a `None` value
```

In this PR I restored fallback logic from the original code - before
settings refactor.

Release Notes:

- N/A

Jan Češpivo created

154b01c Dismiss agent panel when `disable_ai` is toggled to `true` (#38461)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/38331

This fixes an issue where we would not dismiss the panel once the user
toggled the setting, leaving them in an awkward state where closing the
panel would become hard.

Also takes care of one more check for the `Fix with assistant` action
and consolidates some of the `AgentSettings` and `DisableAiSetting`
checks into one method to make the code more readable.

Release Notes:

- N/A

Finn Evers created