4db19a3
search: Fix buffer search history navigation (#37924)
Click to expand commit body
Closes #36109
Adds an additional option to `search` and `update_matches` to specify
whether the update should affect the search history.
Release Notes:
- Fix navigating buffer search history
tidely
created
c4e8fe1
theme: Ensure opaque for overlay fallback (#37987)
Click to expand commit body
Closes #37965
Release Notes:
- N/A
Smit Barmase
created
4002602
project: Fix terminal activation scripts failing on Windows for new shells (#37986)
Click to expand commit body
Tasks are still disabled as there seem to be more issues with it
Release Notes:
- N/A
Lukas Wirth
created
6ae83b4
Support indent regex with inline comments in Python (#37903)
Click to expand commit body
Closes #36491
This issue is caused by the Python language configuration treating
compound statements (such as for loops and if statements) that end with
an inline comment as not requiring an increased indent.
Release Notes:
- python: Correctly indent lines starting the blocks (for, finally, if,
else, try) that have trailing comments.
ImFeH2
created
eec6bfe
extension_host: Fix operation status whilst installing dev extension (#37985)
Click to expand commit body
This fixes a minor issue where we would show "Removing extension ..." in
the status bar when we would actually be installing it.
Release Notes:
- Fixed an issue where installing a dev extension would show the
installation status as "removing" in the activity indicator.
Finn Evers
created
9875969
editor: Allow no context for the `excerpt_context_lines` setting (#37982)
Click to expand commit body
Closes #37980
There seems to be no reason to hard limit this to 1, and we even have
existing UX for this case already:
<img width="1530" height="748" alt="Bildschirmfoto 2025-09-11 um 11 22
57"
src="https://github.com/user-attachments/assets/d6498318-c905-4d3c-90ab-60e4f2bb6c48"
/>
(Notice the different arrows in the gutter area for single lines)
Hence, allowing the value to honor the request from the issue
Release Notes:
- Allowed `0` as a value for the `excerpt_context_lines` setting
Finn Evers
created
5950228
Document Tailwind CSS language server configuration (#37970)
Click to expand commit body
Added configuration instructions for Tailwind CSS language server.
Release Notes:
- N/A
David Matter
created
f764077
Change keymap precedence to favor user (#37557)
Click to expand commit body
Closes #35623
Previously if a base keymap had a `null` set to an action, leading to a
`NoAction` being assigned to the keymap, if a user wanted to take
advantage of that keymap (in this particular case, `cmd-2`), the keymap
binding check would favor the `NoAction` over the user, since
technically the context depth matched better. Instead, we should always
prefer the user's settings over whatever base or default.
Release Notes:
- Fixed keymap precedence by favoring user settings over base keymap /
configs.
Mitch (a.k.a Voz)
created
9708c8d
feature_flags: Move feature flag definitions to their own module (#37956)
Click to expand commit body
This PR moves the feature flag definitions to their own module so that
they aren't intermingled with the feature flag infrastructure itself.
Release Notes:
- N/A
Marshall Bowers
created
f205732
feature_flags: Remove unused `llm-closed-beta` feature flag (#37955)
Click to expand commit body
This PR removes the `llm-closed-beta` feature flag, as it is no longer
used.
Release Notes:
- N/A
Marshall Bowers
created
aee21ca
Allow for commit amends with no file changes (#37256)
Click to expand commit body
This will users to change the wording of the most recent commit,
something they might want to do if they realize they made a small typo
of some kind or if the formatting of their commit message is wrong, but
don't have any other changes they need to make.
Release Notes:
- Commit messages can now be amended in the UI without any other changes
needing to be made.
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Ryan Hawkins
and
Cole Miller
created
816c481
Fix code actions menu item font size (#37951)
Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/37824, which
made items be cut-off in the _editor_ instance of the code actions menu.
This PR applies the default UI font size for the code action menu items
only when the origin is the quick actions bar.
Release Notes:
- Fix code actions menu items being cut-off in the editor.
It was previously copied incorrectly from `Terminal: Copy On Select`.
Release Notes:
- Fixed wrong description in `Terminal: Cursor Shape` in `Configuring
Zed` document
Dima
created
db367cc
scheduler: Add missing constructs for Cloud (#37948)
Click to expand commit body
This PR adds some missing constructs that are needed by Cloud to the
scheduler.
Release Notes:
- N/A
Marshall Bowers
created
2ce0641
settings_ui: Handle enums with fields (#37945)
Click to expand commit body
Closes #ISSUE
Adds handling for Enums with fields (i.e. not `enum Foo { Yes, No }`) in
Settings UI. Accomplished by creating default values for each element
with fields (in the derive macro), and rendering a toggle button group
with a button for each variant where switching the active variant sets
the value in the settings JSON to the default for the new active
variant.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Conrad <conrad@zed.dev>
## Context
While looking into: #32051 and #16120 with instruments, I noticed that
`TabSnapshot::to_tab_point` and `TabSnapshot::to_fold_point` are a
common bottleneck between the two issues. This PR takes the first steps
into closing the stated issues by improving the performance of both
those functions.
### Method
`to_tab_point` and `to_fold_point` iterate through each character in
their rows to find tab characters and translate those characters into
their respective transformations. This PR changes this iteration to take
advantage of the tab character bitmap in the `Rope` data structure and
goes directly to each tab character when iterating.
The tab bitmap is now passed from each layer in-between the `Rope` to
the `TabMap`.
### Testing
I added several randomized tests to ensure that the new `to_tab_point`
and `to_fold_point` functions have the same behavior as the old methods
they're replacing. I also added `test_random_chunk_bitmap` on each layer
the tab bitmap is passed up to the `TabMap` to make sure that the bitmap
being passed is transformed correctly between the layers of
`DisplayMap`.
`test_random_chunk_bitmap` was added to these layers:
- buffer
- multi buffer
- custom_highlights
- inlay_map
- fold_map
## Benchmarking
I setup benchmarks with criterion that is runnable via `cargo bench -p
editor --profile=release-fast`. When benchmarking I had my laptop
plugged in and did so from the terminal with a minimal amount of
processes running. I'm also on a m4 max
### Results
#### To Tab Point
Went from completing 6.8M iterations in 5s with an average time of
`736.13 ns` to `683.38 ns` which is a `-7.1875%` improvement
#### To Fold Point
Went from completing 6.8M iterations in 5s with an average time of
`736.55 ns` to `682.40 ns` which is a `-7.1659%` improvement
#### Editor render
Went from having an average render time of `62.561 µs` to `57.216 µs`
which is a `-8.8248%` improvement
#### Build Buffer with one long line
Went from having an average buffer build time of `3.2549 ms` to `3.2635
ms` which is a `+0.2151%` regression within the margin of error
#### Editor with 1000 multi cursor input
Went from having an average edit time of `133.05 ms` to `122.96 ms`
which is a `-7.5776%` improvement
Release Notes:
- N/A
---------
Co-authored-by: Remco Smits <djsmits12@gmail.com>
Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Anthony Eid
,
Remco Smits
,
Cole Miller
, and
Piotr Osiewicz
created
This PR fixes the backwards compatibility of the new `Plan` variants.
We can't add new variants to the wire representation, as old clients
won't be able to understand them.
Release Notes:
- N/A
Marshall Bowers
created
2c29eac
Fetch all staff in get-preview-channel-changes script (#37940)
Click to expand commit body
Release Notes:
- N/A
Joseph T. Lyons
created
a94b093
editor: Fix cuts on end of line cutting whole line (#34553)
Click to expand commit body
Closes #19816
Release Notes:
- Improved `ctrl-k` (`editor::CutToEndOfLine`) behavior when used at the
end of lines
- Add option to make `editor::CutToEndOfLine` not gobble newlines.
```json
{
"context": "Editor",
"bindings": { "ctrl-k": ["editor::CutToEndOfLine", { "stop_at_newlines":
true }] }
},
```
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
AidanV
and
Peter Tripp
created
441a934
Remove unnecessary `Option` from functions querying buffer outline (#37935)
Click to expand commit body
`None` case wasn't being used
Release Notes:
- N/A
This setting controls which visible characters are used to render
whitespace when the show_whitespace setting is enabled.
Release Notes:
- Added `whitespace_map` setting to control which visible characters are
used to render whitespace when the `show_whitespace` setting is enabled.
---------
Co-authored-by: Nia Espera <nia@zed.dev>
Ilija Tovilo
and
Nia Espera
created
22e31a0
Fix crash when filtering items in Picker (#37929)
Click to expand commit body
Closes #37617
We're already using `get` in a bunch of places, this PR updates the
remaining spots to follow the same pattern. Note that the `ix` we read
in `render_match` can sometimes be stale.
The likely reason is that we run the match-update logic asynchronously
(see
[here](https://github.com/zed-industries/zed/blob/138117e0b15664079f5526cb56168750382b49b9/crates/picker/src/picker.rs#L643)).
That means it's possible to render items after the list's [data
update](https://github.com/zed-industries/zed/blob/138117e0b15664079f5526cb56168750382b49b9/crates/picker/src/picker.rs#L652)
but before the [list
reset](https://github.com/zed-industries/zed/blob/138117e0b15664079f5526cb56168750382b49b9/crates/picker/src/picker.rs#L662),
in which case the `ix` can be greater than that of our updated data.
Release Notes:
- Fixed crash when filtering MCP tools.
Smit Barmase
created
c0b583c
keymap_editor: Move OpenKeymapEditor action into zed_actions (#37928)
Click to expand commit body
This lets us remove title_bar's dependency on keymap_editor, which in
turns improves dev build times by ~0.5s for me
Release Notes:
- N/A
Piotr Osiewicz
created
6441099
gpui: Fix blending of colors in `HighlightStyle::highlight` (#37666)
Click to expand commit body
Whilst looking into adding support for RainbowBrackes, we stumbled upon
this: Whereas for all properties during this blending, we take the value
of `other` if it is set, for the color we actually take `self.color`
instead of `other.color` if `self.color` is at full opacity.
`Hsla::blend` returns the latter color if it is at full opacity, which
seems wrong for this case. Hence, this PR swaps these.
Will not merge before the next release, to ensure that we don't break
something somewhere unexpected.
Release Notes:
- N/A
Finn Evers
created
611b966
Fix typo in development docs for Windows and Linux (#37925)
Click to expand commit body
Fixes same typo ("collabortation") as #37607 but for the Windows and
Linux dev docs.
Release Notes:
- N/A
Andy Brauninger
created
630340d
agent: Fix mention completion sometimes not dismissing on space (#37922)
Click to expand commit body
Previously we would still show a completion menu even when the user
typed an unrecognised mode with an argument,
e.g. `@something word`.
This PR ensures that we only show the completion menu, when the part
after the `@` is a known mode (e.g. `file`/`symbol`/`rule`/...)
Release Notes:
- Fix an issue where completions for `@mentions` in the agent panel
would sometimes not be dismissed when typing a space
Bennet Bo Fenner
created
acb3406
editor: Wrap placeholder if text overflows (#37919)
Click to expand commit body
This fixes an issue where long placeholders would be cut off, e.g. in a
Claude Code thread:
<img width="387" height="115" alt="image"
src="https://github.com/user-attachments/assets/831a54aa-cf2b-4d87-af86-e368a5936f6b"
/>
Now:
<img width="354" height="115" alt="image"
src="https://github.com/user-attachments/assets/e5df5e05-0869-4db2-8dee-38611263191c"
/>
Most of the changes in this PR are caused by us requiring `&mut Window`
in `set_placeholder_text`.
Release Notes:
- Fixed an issue where placeholders inside editors would not wrap
---------
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Closes [#ISSUE](https://github.com/zed-industries/zed/issues/37895)
This needs more thought behind it to be implemented properly
Release Notes:
- N/A
Lukas Wirth
created
2cf3def
acp: Add keybindings for authorizing tool calls (#37876)
Click to expand commit body
TODO:
- [x] Double-check if we like the naming of the new actions
- [x] Only show keybinding hint once per option (e.g. if there are two
`allow_once` buttons only show it on the first one)
- [x] If there are multiple tool calls that need authorisation, only
show keybindings on the first tool call
- [x] Figure out which keybindings to use
- [x] Add linux keybindings
- [x] Add windows keybindings
- [x] Bug: long keybindings can make the buttons overflow
Release Notes:
- Add keybindings for authorizing tool calls (`agent: Allow once`,
`agent: Allow always`, `agent: Reject once`) in the agent panel
---------
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Bennet Bo Fenner
and
Agus Zubiaga
created
df2d097
editor: Fix adjacent custom highlights interfering with each other (#37912)
Click to expand commit body
Release Notes:
- Fixed matching bracket highlighting not highlighting closing brackets
when adjacent to each other
Co-authored-by: Finn Evers <finn@zed.dev>
Lukas Wirth
and
Finn Evers
created
fcdd427
Revert "markdown: Add support for inline HTML `img` tags inside text (#37264)" (#37893)
Click to expand commit body
This reverts commit e1a5d299721bf14a7cdd41a5ae1bd03ea948c00e.
This have regressed Zed release notes' wrapping which we do not want to
do on a release day:
https://github.com/zed-industries/zed/pull/37264#issuecomment-3265420442
Release Notes:
- N/A
Kirill Bulatov
created
9c548a0
workspace: Fix tab bar drop target height when no unpinned tabs present (#37884)
Click to expand commit body
Before:
<img width="846" height="192" alt="Screenshot 2025-09-10 at 4 44 18 AM"
src="https://github.com/user-attachments/assets/3c79e140-e2b2-4e50-9fce-cb182e46d878"
/>
After:
<img width="846" height="192" alt="Screenshot 2025-09-10 at 4 43 13 AM"
src="https://github.com/user-attachments/assets/b5fa853d-ce39-4c81-9773-1d84eebc8cbb"
/>
Release Notes:
- Fixed height of the drop background in the tab bar when no unpinned
tabs are present.
Smit Barmase
created
bd0a5dd
Potentially fix welcome banner in agent panel not going away (#37879)
Click to expand commit body
Potentially fixes #37367. Just going ahead with the change even though
it's unclear whether this is the fix, since it is quite low risk.
Release Notes:
- N/A
Michael Sloan
created
2f40a3b
keymap validation: Improve message for action that takes no input (#37877)
Click to expand commit body
See
https://github.com/zed-industries/zed/issues/26370#issuecomment-3200022302
Before (user screenshot):
<img width="650" height="127" alt="Image"
src="https://github.com/user-attachments/assets/9548ce43-657e-46ef-b6be-b95489167ac2"
/>
After (my screenshot):
<img width="616" height="229" alt="image"
src="https://github.com/user-attachments/assets/09028305-e7bb-4a31-bb87-55effbec26f3"
/>
Release Notes:
- N/A
Michael Sloan
created
304af66
Fix import not working on first column first row of file (#37746)
Click to expand commit body
Closes #26136
Release Notes:
- fixed auto import not working on first column, first row of file
Adding mistral nemo, sorting by name and adding comment about clamp
sizing
Release Notes:
- Added support for mistral-nemo
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Santiago Bernhardt
and
Conrad Irwin
created
cffb883
Consistently map syntax node navigation actions on macOS (#37874)
Click to expand commit body
Skipping Linux and Windows keymaps here, as it's hard to find a
consistent base-binding for all 4 actions across all platforms that
don't break important actions for each keymap. Someone else can think on
that and make a proposal.
Release Notes:
- Added bindings for navigating between sibling nodes in the syntax tree
on macOS (`cmd-ctrl-{up/down}` for `SelectPreviousSyntaxNode` and
`SelectNextSyntaxNode`). Breaking change: the existing syntax tree
parent/child navigation bindings have moved from
`ctrl-shift-{left/right}` to `cmd-ctrl-{left/right}` to create a unified
four-directional navigation pattern where all syntax tree operations use
the same modifier combination. We could not use the previous base
modifiers without breaking more bindings.
Joseph T. Lyons
created
eb7154d
Skip "open this directory" menu entry in case of errors (#37872)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/37564
Release Notes:
- N/A
Kirill Bulatov
created
18c6d9d
Fix SVG preview not refreshing on external file changes (#37316)
Click to expand commit body
Closes #37208
## Release Notes:
- Fixed: SVG preview now refreshes automatically when files are modified
by external programs
## Summary
Previously, SVG preview would only refresh when files were saved within
the Zed editor, but not when modified by external programs (like
scripts, other editors, etc.)
## What Changed
The SVG preview now subscribes to file system events through the
worktree system. When an external program modifies an SVG file, the
worktree detects the change and notifies the preview. The preview then
clears its cache and refreshes to show the updated content.
## Before the fix
https://github.com/user-attachments/assets/e7f9a2b2-50f9-4b43-95e9-93a0720749f5
## After the fix
https://github.com/user-attachments/assets/b23511e3-8e59-45a1-b29b-d5105d32bd2c
AI Usage:
Used Cursor for code generation
0xshadow
created
414d3be
Set usePlaceholders to match Go default (#37551)
Click to expand commit body
Closes #33629
Release Notes:
- changed gopls default to match what Go specifies
https://github.com/golang/tools/blob/master/gopls/doc/settings.md#useplaceholders-bool
Closes #36767
Release Notes:
- Add uncommit action for git
Alvaro Parker
created
2e36e97
language_models: Make Copilot Chat resilient to new model vendors and add tokenizer-based token counting (#37118)
Click to expand commit body
While working on fixing this: #37116. I reliased the current
implementation of github copilot is not truly resilient to upstream
changes.
This PR enhances GitHub Copilot Chat to be forward-compatible with new
AI model vendors and improves token counting accuracy by using
vendor-specific tokenizers from the GitHub Copilot API. The system
previously failed when GitHub added new model vendors like xAI with
deserialization errors, and token counting wasn't utilizing the
vendor-specific tokenizer information provided by the API. The solution
adds an Unknown variant to the ModelVendor enum with serde other
attribute to gracefully handle any new vendors GitHub introduces,
implements tokenizer-aware token counting that uses the model's
specified tokenizer mapping o200k_base to gpt-4o with fallback, adds
explicit support for xAI models with proper tool input format handling,
and includes comprehensive test coverage for unknown vendor scenarios.
Key changes include adding the tokenizer field to model capabilities,
implementing the tokenizer method on models, updating tool input format
logic to handle unknown vendors, and simplifying token counting to use
the vendor's specified tokenizer or fall back to gpt-4o. This ensures
Zed's Copilot Chat integration remains robust and accurate as GitHub
continues expanding their AI model provider ecosystem.
Release Notes:
- Enhanced model vendor compatibility to automatically support future AI
providers and improved token counting accuracy using vendor-specific
tokenizers from the GitHub Copilot
---------
Signed-off-by: Umesh Yadav <git@umesh.dev>
Closes #37511
The outline modal seems to have a bug where if it's open and the
`outline::Toggle` is triggered, it would not close if there was another
command with the same keybind. So instead, if the outline modal is open
and an `outline::Toggle` is triggered, we dismiss the modal.
Release Notes:
- Fixed a bug where `outline::Toggle` would sometimes not close outline
modal
Mitch (a.k.a Voz)
created
2fae4c7
vim: Make indenting selected lines with `>` and `<` in Helix mode no longer deselect them (#37665)
Click to expand commit body
Improves Helix compatibility by making the Indent keybinds `<` and `>`
no longer deselect lines if they're selected.
Post Indent action current Zed release:
<img width="485" height="271" alt="image"
src="https://github.com/user-attachments/assets/41fd3d94-9c89-49dd-adc5-f696dbd79827"
/>
(Cursor is on the beginning of the first line)
Post Indent action in Helix:
<img width="376" height="144" alt="image"
src="https://github.com/user-attachments/assets/fdd1a489-cf3a-4638-9199-3adffa63ef61"
/>
Post Indent action in this PR:
<img width="463" height="300" alt="image"
src="https://github.com/user-attachments/assets/8edd3b81-e446-4b55-bc90-61cac3661ed7"
/>
Release Notes:
- Fixed selected lines indented with `<` and `>` deselecting in Helix
mode
Somehow we have a regression where the auth wasn't being called, so the
model didn't exist.
Looking at the code, it is likely this was relying on some other part of
the code doing the auth, since the order wouldn't have worked before
without that happening. This new order of doing auth before checking for
available models should fix it going forward.
Release Notes:
- N/A
Ben Brandt
created
d8085d3
zed: Hide Install CLI menu button on Windows (#37843)
Click to expand commit body
The "Install CLI" menu button and `install_cli::Install` action are
effectively no-op on Windows since the CLI is directly available in
Windows Terminal (CMD prompt, PowerShell, etc.) after the user runs Zed
installer package.
Release Notes:
- N/A
Co-authored-by: Peter Tripp <peter@zed.dev>