Commit log

4a99f92 Clippy error

Anthony created

d40b4ce Add new helper methods to Context<Entity<T>> and rename views to entity

Click to expand commit body
I added two helper methods called `subscribe_new` and
`subscribe_new_in`, both make it easier to create event handlers
whenever a new Entity<T> is created. Similar to `observe_new`.

I also renamed some variable names from `view` to `entity` to be more
inline with gpui3. The view name seems to be an artifact from gpui2.

Anthony created

f9e0642 settings_ui: Adjust warning banner design (#40952)

Click to expand commit body
Just tidying this up a bit. Really have to fix this Banner component at
some point 😅 Having to add some spacing hacks to make it perfect here
that are not ideal and should be baked into the component.

Release Notes:

- N/A

Danilo Leal created

bada88c Make the rules library window more consistent with the settings UI (#40948)

Click to expand commit body
Now that we have two surface areas that open as separate windows, it's
important they're consistent with one another. This PR make the settings
UI and rules library windows more similar by having them use the same
minimum window size and similar styles for their navbar given they have
fundamentally the same design (nav on the left and content on the
right).

Release Notes:

- N/A

Danilo Leal created

6b8f859 agent_ui: Remove ellipses from some menu entries (#40858)

Click to expand commit body
<img width="335" height="236" alt="image"
src="https://github.com/user-attachments/assets/5e09e9ed-f0f3-48df-ac22-032edfc6c114"
/>

Release Notes:
This PR fixes inconsistent use of trailing ellipsis (…) in the MCP
Server menu.
Previously, some menu items (like Add Custom Server…) used hardcoded
ellipses even though they didn’t trigger additional dialogs or steps.
This change removes unnecessary ellipses to align with standard UI/UX
conventions used across Zed’s menus.

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>

Moo, Kachon and Danilo Leal created

4fd4cbb gpui: Add focus-visible selector support (#40940)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Claude <noreply@anthropic.com>

Mikayla Maki and Claude created

044701e rope: Implement `Rope::is_char_boundary` via chars bitmap (#40945)

Click to expand commit body
Slightly more efficient. No new tests as we already have tests
verifiying this.

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

a96bf50 theme: Fix entry could appear transparent on hover with certain themes (#40944)

Click to expand commit body
Follow-up: https://github.com/zed-industries/zed/pull/34655  

We should use an opaque fallback color for `panel.overlay_hover`. This
helps when a custom theme doesn’t provide it, nor `element.hover`. For
example, VSCode’s default modern dark theme doesn’t include an
`element.hover` color after import.

Release Notes:

- Fixed an issue where the project panel’s sticky entry could appear
transparent on hover with certain themes.

Smit Barmase created

c16f2a1 project: Normalize `Path` env var to `PATH` in shell env on windows (#40720)

Click to expand commit body
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

ca41032 settings_ui: Fix file header from showing duplicate display names (#40943)

Click to expand commit body
After clicking on the file drop-down and selecting a file, both the
selected file and the first drop-down entry would be the same file name
instead of overwriting a file name.

Release Notes:

- settings ui: Fix bug where duplicate file names showed in the header
files

Anthony Eid created

7312372 agent_ui: Focus the message editor after regenerating a user message (#40938)

Click to expand commit body
Release Notes:

- agent: Improved the editing previous messages UX by focusing in the
agent panel's message editor after regenerating a prompt, instead of
moving focus to the nearest regular buffer.

Danilo Leal created

2096f25 editor: Reduce selection opacity when editor is not focused (#40925)

Click to expand commit body
Focus:
<img width="420" alt="image"
src="https://github.com/user-attachments/assets/97b0c7ed-8ad4-400c-9f36-01d8bd9b362d"
/>

Unfocus:
<img width="420" alt="image"
src="https://github.com/user-attachments/assets/19805293-b419-4669-8a93-e9cf41900403"
/>

Release Notes:

- Reduced selection opacity when the editor is out of focus to make
inactive states clearer.

Smit Barmase created

7880e2b docs: Clarify providers in edit-prediction.md (#39655)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Ted Robertson , Danilo Leal , and Danilo Leal created

ab22478 Update extension docs to mention BSD 3-Clause is a valid license (#40934)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

6ed9c02 Don't migrate empty formatter array (#40932)

Click to expand commit body
Follow up for #40409
Fix for
https://github.com/zed-industries/zed/issues/40874#issuecomment-3433759849

Release Notes:

- Fixed an issue where having an empty formatter array in your settings
`"formatter": []` would result in an erroneous prompt to migrate
settings

Ben Kunkle created

93136a9 Update extension docs to mention GNU GPLv3 is a valid license (#40933)

Click to expand commit body
Merge after: 

- https://github.com/zed-industries/extensions/pull/3641

Release Notes:

- N/A

Joseph T. Lyons created

f393138 Fix keybind hints flickering in certain scenarios (#40927)

Click to expand commit body
Closes #39172

This refactors when we resolve UI keybindings in an effort to reduce
flickering whilst painting these: Previously, we would always resolve
these upon creating the binding. This could lead to cases where the
corresponding context was not yet available and no binding could be
resolved, even if the binding was then available on the next presented
frame. Following that, on the next rerender of whatever requested this
keybinding, the keybind for that context would then be found, we would
render that and then also win a layout shift in that process, as we went
from nothing rendered to something rendered between these frames.

With these changes, this now happens less often, because we only look
for the keybinding once the context can actually be resolved in the
window.

| Before | After | 
| --- | --- |
|
https://github.com/user-attachments/assets/adebf8ac-217d-4c7f-ae5a-bab3aa0b0ee8
|
https://github.com/user-attachments/assets/70a82b4b-488f-4a9f-94d7-b6d0a49aada9
|

Also reduced cloning in the keymap editor in this process, since that
requiered changing due to this anyway.

Release Notes:

- Fixed some cases where keybinds would appear with a slight delay,
causing a flicker in the process

Finn Evers created

ed5b9a4 Rework inlay hints system (#40183)

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

Before, each editor, even if it's the same buffer split in 2, was
querying for inlay hints separately, and storing the whole inlay hint
twice, in `Editor`'s `display_map` and its `inlay_hint_cache` fields.

Now, instead of `inlay_hint_cache`, each editor maintains a minimal set
of metadata (which area was queried by what task) instead, and all LSP
inlay hint data had been moved into `LspStore`, both local and remote
flavors store the data.
This allows Zed, as long as a buffer is open, to reuse the inlay hint
data similar to how document colors and code lens are now stored and
reused.

Unlike other reused LSP data, inlay hints data is the first one that's
possible to query by document ranges and previous version had issue with
caching and invalidating such ranges already queried for.
The new version re-approaches this by chunking the file into row ranges,
which are queried based on the editors' visible area.

Among the corresponding refactoring, one notable difference in inlays
display are multi buffers: buffers in them are not
[registered](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_didOpen)
in the language server until a caret/selection is placed inside their
excerpts inside the multi buffer.

New inlays code does not query language servers for unregistered
buffers, as servers usually respond with empty responses or errors in
such cases.

Release Notes:

- Reworked inlay hints to be less error-prone

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>
Co-authored-by: dino <dinojoaocosta@gmail.com>
Co-authored-by: Lukas Wirth <me@lukaswirth.dev>

Kirill Bulatov , Lukas Wirth , dino , and Lukas Wirth created

5738bde gpui: Make `Empty` request layout with `Display::None` by default (#40900)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

6622902 agent: Only show compatible tools in profile selector (#40917)

Click to expand commit body
In practice this just hides the web search tool when not using the Zed
provider

Release Notes:

- Fixed an issue where the web search tool would show up in the profile
selector even when not using a model via Zed Pro

Bennet Fenner created

cb7881e Fix migration from #40409 for users who haven't been migrated yet (#40916)

Click to expand commit body
Closes #40874

Release Notes:

- Fixed an issue where migrating settings after v0.208.5+ would
spuriously enable prettier. This fix only affects those who have not
updated or migrated yet. For those who have already updated to version
v0.208.5 or later, placing `"formatter": []` in your settings in the
affected languages will fix the issue.

---------

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

Ben Kunkle and Mikayla created

c60343a eval: Port to agent2 (#40704)

Click to expand commit body
Release Notes:

- N/A

Bennet Fenner created

4a93719 Upgrade `async-tar` to v0.5.1 (#40911)

Click to expand commit body
This PR switches us back to the upstream version of `async-tar` and
upgrades to v0.5.1.

This version has the patch we need:
https://github.com/dignifiedquire/async-tar/commit/0c181956395fa28a9ae45786a57c9cf58c413e84.

Release Notes:

- N/A

Marshall Bowers created

d558005 markdown: Add support for `colspan` and `rowspan` for HTML tables (#39898)

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

This PR adds support for `colspan` feature that is only supported for
HTML tables. I also fixed an edge case where the right side border was
not applied because it didn't match the total column count.

**Before**
<img width="725" height="179"
alt="499166907-385cc787-fc89-4e6d-bf06-c72c3c0bd775"
src="https://github.com/user-attachments/assets/69586053-9893-4c92-aa89-7830d2bc7a6d"
/>

**After**
<img width="1165" height="180" alt="Screenshot 2025-10-21 at 22 51 55"
src="https://github.com/user-attachments/assets/f40686e7-d95b-45a6-be42-e226e2f77483"
/>

```html
<table>
    <tr>
        <th rowspan="2">Region</th>
        <th colspan="2">Revenue</th>
        <th rowspan="2">Growth</th>
    </tr>
    <tr>
        <th>Q2 2024</th>
        <th>Q3 2024</th>
    </tr>
    <tr>
        <td>North America</td>
        <td>$2.8M</td>
        <td>$2.4B</td>
        <td>+85,614%</td>
    </tr>
    <tr>
        <td>Europe</td>
        <td>$1.2M</td>
        <td>$1.9B</td>
        <td>+158,233%</td>
    </tr>
    <tr>
        <td>Asia-Pacific</td>
        <td>$0.5M</td>
        <td>$1.4B</td>
        <td>+279,900%</td>
    </tr>
</table>
```

**TODO**:
- [x] Add tests for rending logic
- [x] Test all the tables again

cc @bennetbo

Release Notes:

- Markdown: Added support for `colspan` and `rowspan` for HTML tables

---------

Co-authored-by: Zed AI <ai@zed.nl>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Remco Smits , Zed AI , and Anthony Eid created

96a0db2 Add comment injections for gowork and gomod (#40842)

Click to expand commit body
Release Notes:

- Add comment injections for go.mod and go.work

Signed-off-by: Donnie Adams <donnie@thedadams.com>

Donnie Adams created

23e9e32 emacs: Improve default keymap to better match the emacs behavior (#40631)

Click to expand commit body
Hello,
I am having a great time setting up the editor, but with a few problems
related to the Emacs keymap.

In this PR I have compiled changes in the default `emacs.json` that I
believe make the onboarding smoother for incoming emacs users.
This includes points that may need further discussion and some breaking
changes, although nothing that cannot be reverted with a quick
`keymap.json` overwrite.

(Please let me know if it is better to split up the PR)

### 1. Avoid fallbacks to the default keymap
all platforms:
- `ctrl-g` activating `go_to_line::Toggle` when there is nothing to
cancel

linux / windows:
- `ctrl-x` activating `editor::Cut` on the 1 second timeout
- `ctrl-p` activating `file_finder::Toggle` when the cursor is on the
first character of the buffer
- `ctrl-n` activating `workspace::NewFile` when the cursor is on the
last character of the buffer

### 2. Make all move commands operate on full words
In the current Zed implementation some commands run on full words and
others on subwords.
Although ultimately a matter of user preference, I think it is sensible
to use full words as the default, since that is what is shipped with
emacs.

### ~~3. Cancel selections after copy/cut commands~~ Moved to #40904
Canceling the selection is the default emacs behavior, but the way to
achieve it might need some brushing.
Currently I am using `workspace::SendKeystrokes` to copy ->
cancel(`ctrl-g`), but this has the following problems:
- can only be used in the main buffer (since `editor::Cancel` would
typically close secondary buffers)
- may cause problems downstream if the user overwrites the `ctrl-g`
binding

### ~~4. Replace killring with normal cut/paste commands~~ Moved to
#40905
Ideally Zed would support emacs-like killrings (#25270 and #22490).
However, I understand that making an emacs emulator is not a project
goal, and the Zed team should have a bunch of tasks with higher
priority.

By using a unified clipboard and standard cut/paste commands, we can
provide an experience that is closer to the out-of-the-box emacs
behavior (#33351) while also avoiding some pitfalls of the current
killring implementation (#28715).

### 5. Promote some bindings to workspace commands
- `alt-x` as `command_palette::Toggle`
- `ctrl-x b` and `ctrl-x ctrl-b` as `tab_switcher::Toggle`

---

Release Notes:

- emacs: Fixed a problem where keys would fallback to their default
keymap binding on certain conditions
- emacs: Changed `alt-f` and `alt-b` to operate on full words, as in the
emacs default
- emacs: `alt-x`, `ctrl-x b`, and `ctrl-x ctrl-b` are now Workspace
bindings

Affonso, Guilherme created

b207da5 gpui: Re-land uniform list scroll fixes (#40899)

Click to expand commit body
Re-lands https://github.com/zed-industries/zed/pull/40719, fixes the
bugs that were discovered with it and improves some more stuff in that
area

Release Notes:

- Fixed a rare issue where the extension page would stutter while
scrolling.

---------

Co-authored-by: Agus Zubiaga <agus@zed.dev>

Finn Evers and Agus Zubiaga created

a246019 agent: Improve discoverability of the quote selection action (#40897)

Click to expand commit body
This PR renames the `agent::QuoteSelection` to
`agent::AddSelectionToThread` _and_ adds it as a menu item in both the
right-click context menu within regular buffers as well as the
"Selection" app menu.

We've received feedback in the past about how hard to discover this
feature is, and after watching [the Syntax podcast
crew](https://www.youtube.com/watch?v=bRK3PeVFfVE) recently struggle
with doing so—and then naturally looking for it in the context menu and
not finding it—it felt like time to push a change. I think the rename +
the availability in these places could help bringing it to surface more.

The same action can be done in Cursor through the `cmd-l` keybinding,
but in Zed, that triggers `editor::SelectLine`, which I don't want to
override by default. However, if you're using Cursor's keymap, then
`cmd-l` does trigger this action, as expected.

<img width="500" height="1812" alt="Screenshot 2025-10-22 at 12  01@2x"
src="https://github.com/user-attachments/assets/dfc2c41c-8d0a-4a1a-8ea1-1bd5d1aa1171"
/>


Release Notes:

- agent: Improves discoverability of the previously called "quote
selection" action—which allows to add a text selection in a buffer as
context within the agent panel—by renaming it to "add selection to
thread" and making it available from the right-click editor context menu
as well as the "Selection" app menu.

Danilo Leal created

3a12122 Revert "keymaps: Update defaults for inline assist and signature help" (#40903)

Click to expand commit body
Reverts zed-industries/zed#39587

David Kleingeld created

d0398da editor: Fix singleton multibuffer titles not being replicated (#40896)

Click to expand commit body
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

69b2ee7 Bump Zed to v0.211 (#40895)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

88bac4d docs: Change tab character representation in docs (#40667)

Click to expand commit body
The suggested `→` appears tiny, and almost looks like just a dot on my
monitor, and I got quite confused for a while thinking the
`whitespace_map.tab` setting wasn't working properly.
<img width="630" height="105" alt="Image"
src="https://github.com/user-attachments/assets/98feced2-39b3-4734-83e4-b4573b4e52c2"
/>

I think it would be really helpful if `⟶` was suggested instead since
that displays properly.
<img width="625" height="104" alt="Image"
src="https://github.com/user-attachments/assets/176886ab-cf88-4079-90a8-91a8e8182092"
/>

---

I am using `Fira Code` as my font on windows, however when I remove that
config to get the default font, it also still appears the same size. So
I don't believe this is just a font issue on my machine.
Thought I am using Windows, so I would be willing to believe this a
render issue specific to windows

Release Notes:

- N/A

Ajani Bilby created

d53efe4 Revert "gpui: Fix uniform list scrolling with vertical padding present" (#40891)

Click to expand commit body
Reverts zed-industries/zed#40719

This unveiled some bigger issues with the UniformList size computations,
which are more crucial than what was fixed here.

Release Notes:

- NOTE: BUGFIX "Fixed a rare issue where the extension page would
stutter while scrolling." was reverted due to some other issues

Finn Evers created

14b41b1 Fix JumpHost on Windows (#40713)

Click to expand commit body
Closes #39382 

Release Notes:

- Fixed Windows specific ssh jumphost connection issues

localcc created

98c7e01 Add new action and handler for opening a specific setting (#40739)

Click to expand commit body
Co-authored-by: Ben Kunkle <ben@zed.dev>

Cameron Mcloughlin and Ben Kunkle created

c81ffaf editor: Use unbounded shifts for chunk bitmaps (#40879)

Click to expand commit body
This simplifies some code and is also more correct in some others (I
believe some of these might've overflowed causing panics in sentry)

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

bd69124 Add option to disable crash handler (#40799)

Click to expand commit body
Extra info needed for #39289. To be tested out next nightly build...

Release Notes:

- N/A

Co-authored-by: Cole Miller <m@cole-miller.net>

Nia and Cole Miller created

77dbe08 project_panel: Fix buffer focus when canceling filename edit (#40747)

Click to expand commit body
Closes #37726

Release Notes:

- Fixed an issue where the buffer would not regain focus when clicked
while a filename edit was in progress in the project panel.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Samuel Oldham and Smit Barmase created

252b75e Disable slang-server for verilog extension (#40442)

Click to expand commit body
Should be merged with
https://github.com/zed-industries/extensions/pull/3584, which adds
`slang-server` as a new language server, but should be disabled by
default due to an issue with it not initializing on Windows and being a
relatively new language server in general.

Release Notes:

- N/A

Owen Law created

bc0bace Add basic ico support (#40822)

Click to expand commit body
Closes https://github.com/zed-industries/zed/discussions/40763

<img width="867" height="1088" alt="Screenshot 2025-10-21 at 23 14 47"
src="https://github.com/user-attachments/assets/d691fb2a-afc6-4445-a335-054ef164e0d3"
/>

Also improves error handling on image open failure:

<img width="864" height="1083" alt="Screenshot 2025-10-21 at 23 14 30"
src="https://github.com/user-attachments/assets/d5388b61-995f-441b-b375-ad5136d1533b"
/>


Release Notes:

- Added basic ico support, improved unsupported image handling

Kirill Bulatov created

8ceb2f2 Add more tweaks to the troubleshooting docs (#40870)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

25de2ac Correct workspace db directory paths (#40868)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

8bad2cb Add another informational blog post to docs (#40865)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

762af09 Add more troubleshooting information (#40864)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

3d3e913 collab: Pin sea-orm-macro crate version together with sea-orm (#40846)

Click to expand commit body
Currently running `cargo update` on Zed will break the collab crate
because the versions of sea-orm and sea-orm-macros will not match. This
results in a bunch of noisy warnings from rust-analyzer.

Release Notes:

- N/A

Be created

fd9c2e3 Organize release docs (#40860)1

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

08d95ad chore: Bump gpui to 0.2.2 (#40856)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

d096132 docs: Add git stash to git.md (#40834)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Added git stash documentation

Alvaro Parker created

d7c8555 Update async-tar dependency for GPUI (#40850)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

9c71a7f Revert arm64 runners (#40852)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created