Commit log

3780fe3 gpui: Do not use a single shared parker within a Dispatcher (#40417)

Click to expand commit body
This caused issues with #40172, as it made Zed execute and block on tad
few more background tasks. Parker is ~cheap to create, hence we should
be ok to just create it at the time it is needed.

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <cole@zed.dev>

Piotr Osiewicz and Cole Miller created

59991e9 Fix compilation on main (#40428)

Click to expand commit body
Updates #40420 

Release Notes:

- N/A

Cole Miller created

e161899 Mention Windows support in README (#40421)

Click to expand commit body
probably a good idea to close the windows issue here
https://github.com/zed-industries/zed/issues/5394 and many other dead
issues.

Release Notes:

- Edited the readme to actually mention Windows.

Morrow Shore created

c288f9b Remove unused indices in `mac/text_system` (#40420)

Click to expand commit body
just simplifying the code a bit

Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>

Andrew Farkas and Cole Miller created

b26491f Fix crash when opening files with a BOM on macOS (#40419)

Click to expand commit body
Closes #40359

We were segfaulting when opening a UTF-8 file starting with a byte order
mark due to a mismatch in our UTF-16 indexing calculations caused by
Core Foundations `replace_str` stripping the BOM internally. This PR
fixes the crash by replacing one of our manual calculations by calling
the Core Foundations API to get the length of a string.

Release Notes:

- Fixed a crash on macOS when opening a file that starts with a UTF-8
byte order mark (BOM).

Co-authored-by: HactarCE <6060305+HactarCE@users.noreply.github.com>

Cole Miller and HactarCE created

738dcd0 ui_input: Adjust step values for Font Weight stepper (#40408)

Click to expand commit body
# Why

While playing with new Settings UI I have spotted that changing font
weight requires a lot of clicks. This is also a bit more annoying due to
lack of ability to enter the desired value by hand.

# How

Adjust step values for Font Weight stepper, the default increment has
been changed from 10 to 50, to cover (defined in spec `950` weight)
which some fonts might use, small step has been changed from 5 to 10,
and large step from 50 to 100.

Release Notes:

- Adjusted default step values for number input UI element used for
changing Font Weight in Settings UI.

Bartosz Kaszubowski created

81425be Revert deprecate code actions on format (#40409)

Click to expand commit body
Closes #40334

This reverts the change made in #39983, and includes a replacement
migration that will transform formatter settings values consisting of
only `code_action` format steps into the previously deprecated
`code_actions_on_format` in an attempt to restore the behavior to what
it was before the migration that deprecated `code_actions_on_format`.

This PR will result in a modified order in the `code_actions_on_format`
setting if it existed, however the decision was made to explicitly
ignore this for now, as this PR is primarily targeting users who have
already had the deprecation migration run, and no longer have the
`code_actions_on_format` key

Release Notes:

- Fixed an issue with a settings migration that deprecated the
`code_actions_on_format` setting. The `code_actions_on_format` setting
has been un-deprecated, and affected users will have the bad migration
rolled back with an updated migration

---------

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: HactarCE <6060305+HactarCE@users.noreply.github.com>

Ben Kunkle , Cole Miller , Mikayla Maki , and HactarCE created

04f0805 Revert "fs: Replace a bunch of uses of smol::fs with manual impls" (#40406)

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

Piotr Osiewicz created

58ff469 Add a helix-specific substitute method (#38735)

Click to expand commit body
`vim::Substitute` is a little different from the helix behavior, so this
PR adds helix versions. The most important difference (for my usage, at
least) is that if you're selecting whole lines then helix drops the `\n`
from the selection (much like vim's lines mode, except that helix bases
this behavior on the selection instead of having a different mode).

Release Notes:

- N/A

jneem created

c5a67d8 Add WSL distro labels to open recent (#40375)

Click to expand commit body
Closes #40358 

Release Notes:

- Windows: improved recently open folders in WSL

localcc created

3da4cdd Round the scroll offset in editor to fix jumping text (#40401)

Click to expand commit body
Release Notes:

- Improved editor font rendering on lodpi displays

Co-authored-by: John Tur <john-tur@outlook.com>

localcc and John Tur created

25172f9 helix: Change selection cloning (#38090)

Click to expand commit body
Closes #33637
Closes #37332
and solves part of
https://github.com/zed-industries/zed/discussions/33580#discussioncomment-14195506

This improves the "C" and "alt-C" actions to work like helix.
It also adds "," which removes all but the newest cursors. In helix the
one that's left would be the primary selection, but I don't think that
has an equivalent yet, so this simulates what would be the primary
selection if it was never cycled with "(" ")".

Release Notes:

- Improved multicursor creation and deletion in helix mode

---------

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

fantacell and Jakub Konka created

23a0b65 zeta2: Include a single unified diff for the edit history (#40400)

Click to expand commit body
Instead of producing multiple code blocks for each edit history event,
we now produce a continuous unified diff.

Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>

Agus Zubiaga and Oleksiy Syvokon created

923e880 Add winget release job (#40293)

Click to expand commit body
This will automatically open PRs against the winget package registry to
bump our version there when we do a release.

Release Notes:

- N/A

Julia Ryan created

de8dd9b Rework editors to register and query buffers on scroll (#40388)

Click to expand commit body
Preparation to https://github.com/zed-industries/zed/pull/40183
Moves https://github.com/zed-industries/zed/pull/22958 further: now,
instead of selection, scrolling the buffer into view is enough to get
registered and, later, be queried for its LSP data such as inlay hints,
diagnostics and document colors.

This effectively undoes https://github.com/zed-industries/zed/pull/28855
as now we try to register whatever's visible more aggressively, instead
of implicitly via inlay hints.

Release Notes:

- Reworked editors to register and query buffers on scroll

Kirill Bulatov created

c77cc9b Revert "acp: Don't collapse tool calls by default" (#40395)

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

Release Notes:

- N/A

Ben Brandt created

3950f5a keymaps: Update defaults for inline assist and signature help (#39587)

Click to expand commit body
Update the keybindings used in the default keymaps to better align with
VSCode's defaults, with the following changes:

* Windows & Linux
* `ctrl-enter` has been replaced by `ctrl-i` for
`assistant::InlineAssist`
* `ctrl-shift-space` maps to `editor::ShowSignatureHelp` instead of
`editor::ShowWordCompletions`
* MacOS
* `ctrl-enter` has been replaced by `cmd-i` for
`assistant::InlineAssist`
* `cmd-i` has been replaced by `cmd-shift-space` for
`editor::ShowSignatureHelp`

Closes #39278 

Release Notes:

- Changed the keybinding for `assistant: inline assist` from
`ctrl-enter` to `ctrl-i` for both Linux and Windows, and `cmd-i` for
MacOS. If you'd like to restore the old behavior, update your keymap
file with:
  ```
  {
    "context": "!ContextEditor > Editor && mode == full",
    "bindings": {
      "ctrl-enter": "assistant::InlineAssist"
    }
  }
  ```
- Changed the action dispatched by `ctrl-shift-space` from
`editor::ShowWordCompletions` to `editor::ShowSignatureHelp` on both
Linux and Windows. If you'd like to restore the old behavior, update
your keymap file with:
  ```  {
    "context": "Editor",
    "bindings": {
      "ctrl-shift-space": "editor::ShowWordCompletions"
    }
  }
  ```
- Changed the keybinding for `editor: show signature help` on MacOS from
`cmd-i` to `cmd-shift-space`. If you'd like to restore the old behavior,
update your keymap file with:
  ```  {
    "context": "Editor",
    "bindings": {
      "cmd-i": "editor::ShowSignatureHelp"
    }
  }
  ```

---------

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

Dino and Agus Zubiaga created

1ee6ef5 gpui: Properly surface errors in gpui build script (#40381)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

87adc96 editor: Fix invalid excerpt panic in `Editor::hover_links` (#40387)

Click to expand commit body
Fixes ZED-17N
Fixes ZED-26Z

Release Notes:

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

Lukas Wirth created

fba7f4d zeta2: Update prompts to match training more closely (#40383)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

ae25baa settings_ui: Fix settings popup process alive (#39790)

Click to expand commit body
Closes #39786

Release Notes:

- Fixed: Settings popup no longer keeps the process alive when closing
Zed on Windows

---------

Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>

ozer , Anthony , and Joseph T. Lyons created

cf49194 markdown_preview: Fix alt text causing mismatched highlighting runs (#40374)

Click to expand commit body
Fixes ZED-277

Release Notes:

- Fixed alt text in markdown preview creating inconsistent highlighting

Lukas Wirth created

ea6853d Fix code actions migration (#40303)

Click to expand commit body
Closes #40270

Release Notes:

- Fixed an issue with the settings migration to flatten `code_actions`
format steps where comments would cause enabled code actions to be
omitted from the migrated settings. If you were effected, restoring the
settings file backup and allowing the migration to re-run will result in
a valid settings file
- Fixed an issue where automated settings and keymap file updates would
occasionally assume 4-space indentation

Ben Kunkle created

c37a2f8 fs: Replace a bunch of uses of smol::fs with manual impls (#40172)

Click to expand commit body
smol::fs uses a separate threadpool, which is a bit yuck.

This PR also added a benchmark you can use to run a full worktree scan
(initial one, that is) for arbitrary worktree.. and refactored worktree
scanner to use async locks, as otherwise tests were deadlocking. :)
I've benchmarked it against Zed, Linux and Chromium and saw a ~60% drop
in initial worktree scan times across the board.
Release Notes:

- Significantly (3.3x speedup over the old implementation) improved
speed of Zed's worktree scanner, that's responsible for synchronizing
the state of your project with the state of files on hard drive.

---------

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

Piotr Osiewicz and Smit Barmase created

9c70ba7 Fix split Claude Code docs (#40369)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Brandt created

5c4f1e6 editor: Ignore soft wrapped lines when adding selection above or below (#40190)

Click to expand commit body
- Add `skip_soft_wrap` field to both `AddSelectionAbove` and
`AddSelectionBelow` actions. When set to `true`, which is now 
the default this will skip soft wrapped lines when extending the 
selections.
- Move the `start_of_relative_buffer_row` function from the
`vim::motion` module to the `editor::display_map::DisplaySnapshot`
implementation as a method.
- Update the default behavior for both `editor: add selection above` and
`editor: add selection below` commands in order to skip over soft
wrapped lines by default, mirroring VS Code's default behavior.
- Update existing keymaps to specify this `skip_soft_wrap` value for
both `AddSelectionAbove` and `AddSelectionBelow` actions.

Closes #16979 

Release Notes:

- Updated both the `editor: add selection above` and `editor: add
selection below` commands to ignore soft wrapped lines. If you wish to
restore the old behavior, add the following to your keymap file:
  ```
  {
    "context": "Editor",
    "bindings": {
"cmd-alt-up": ["editor::AddSelectionAbove", { "skip_soft_wrap": false
}],
"cmd-alt-down": ["editor::AddSelectionBelow", { "skip_soft_wrap": false
}]
    }
  }
  ```

---------

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

Dino and Smit Barmase created

86ce4ef acp: Add nicer WSL warning for Codex (#40354)

Click to expand commit body
Moves the Codex warning into the thread so that we can render it nicer,
as well as provide an option to open the folder in WSL.

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Ben Brandt and Bennet Bo Fenner created

9948778 util: Fix shell environment fetching failing with nu (#40275)

Click to expand commit body
Release Notes:

- Fixed shell environment fetching failing with nu shell

Lukas Wirth created

c2ace40 languages: Fix go completion labels creating out of bounds highlight runs (#40355)

Click to expand commit body
Fixes ZED-26Q

Release Notes:

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

Lukas Wirth created

e016c05 windows: Fix panic when quitting dialogs that do not have a cancel button (#40348)

Click to expand commit body
`TaskDialogIndirect` may return `IDCANCEL` when the user quits the
dialog via escape or alt+f4, so we need to account for that.

Fixes ZED-25H

Release Notes:

- Fixed panic when hitting escape in dialogs on windows

Lukas Wirth created

f2e8d0c dap: Enable info level logs for CodeLLDB adapter (#40345)

Click to expand commit body
Trim whitespace/newline when committing the logs in Zed.

Release Notes:

- N/A

Jakub Konka created

e406ac6 markdown_preview: Fix block quote last child bottom padding (#40343)

Click to expand commit body
Release Notes:

- Fixed block quote last child bottom padding in Markdown preview.

| Before | After |
| --- | --- |
| <img width="577" height="665" alt="image"
src="https://github.com/user-attachments/assets/f2ff9fff-b4a6-44ed-b83c-6811e13fb3b8"
/> | <img width="612" height="634" alt="SCR-20251016-okfv"
src="https://github.com/user-attachments/assets/b4c5b706-49aa-4348-9553-22b0eb98e201"
/> |

Jason Lee created

5467156 project_panel: Add `open_file_on_paste` setting to configure auto opening of file on paste (#40331)

Click to expand commit body
Closes #40234

Release Notes:

- Added `open_file_on_paste` setting to configure auto opening of file
on paste in the project panel.

---------

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

zeld-a and Smit Barmase created

db4b86e windows: Fix occasional `RefCell already mutably borrowed` panic (#40336)

Click to expand commit body
Release Notes:

- Fixed occasional `RefCell already mutably borrowed` panic in windows
event handling

Lukas Wirth created

35f5eb1 vim: Add gt and gT bindings for Markdown preview mode (#39854)

Click to expand commit body
### What does this PR do?
- Adds default keybindings `gt` for navigating to the next tab and `gT`
for navigating to the previous tab in markdown viewer mode

### Why do we need this change?
- While previewing markdown files, the default vim bindings (`gt` and
`gT`) do not work for navigating between tabs. These bindings work
everywhere else, which provides a non-consistent experience for the
user.

### How do we do this change?
- Update the vim mode bindings to explicitly add handling for this mode

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Pranav Joglekar and Conrad Irwin created

5939cae Fix mkdir nushell flags (#40306)

Click to expand commit body
Closes #40269

Release Notes:

- N/A

Julia Ryan created

83f9f9d gpui: Add more default font fallbacks (#35086)

Click to expand commit body
Release Notes:

- N/A

---

- Set `.SystemUIFont` as the GPUI default font.
- Add `Arial` to font fallback list.
- Add `Adwaita Sans` to default fallback list for Gnome.
- Move `Ubuntu` font to front of Gnome to make sure Ubuntu System takes
priority over `Ubuntu` font.

Our application get some crash report:

```
panicked at /Users/admin/.cargo/git/checkouts/zed-a70e2ad075855582/f1db3b4/crates/gpui/src/text_system.rs:150:9:
failed to resolve font 'Helvetica' or any of the fallbacks: Zed Plex Mono, Helvetica, Segoe UI, Cantarell, Ubuntu, Noto Sans, DejaVu Sans
```

This change to add `Arial` to fallback list, this font was included in
macOS and Windows.
Ref link (search "Arial"):

> Mac OS X (now known as [macOS](https://en.wikipedia.org/wiki/MacOS))
was the first Mac OS version to include Arial;
> https://en.wikipedia.org/wiki/Arial

- macOS Sequoia: https://support.apple.com/en-us/120414
- Windows 10:
https://learn.microsoft.com/en-us/typography/fonts/windows_10_font_list
- Gnome: https://developer.gnome.org/hig/guidelines/typography.html

Jason Lee created

43baa5d title bar: Remove chevron to the side of the avatar when logged in (#40287)

Click to expand commit body
Having the chevron to the side of the avatar is arguably unnecessary at
this point; most apps out there (Reddit, YouTube, etc.), including here
on GitHub, have the avatar without any icon, pointing to how there
doesn't seem to be a problem with knowing that there's a menu behind it.
Therefore, figured we could simplify the UI a bit more here.

This also looks better on platforms where the window controls are on the
right (Linux/Windows).

Release Notes:

- N/A

Danilo Leal created

f4609c0 agent: Improve pickers and their triggers styles in the panel (#40284)

Click to expand commit body
Making all triggers have the same style when the picker is open
(including changing the icon when the picker opens on top of the
trigger). Also removed the footer from the ACP model selector given
there's nothing to consider when that's the case; users can only
configure LLM providers when using Zed's built-in agent.

Release Notes:

- N/A

Danilo Leal created

28e14a3 windows: Unpin Gemini CLI (#40288)

Click to expand commit body
Updates #40212

v0.9.0 is now stable and contains the fix for the line endings bug, so
we can return to installing from the stable channel as usual. This also
bumps the minimum version on Windows to v0.9.0 so that anyone on v0.8.x
or v0.9.0-preview.4 will be upgraded automatically.

Release Notes:

- N/A

Cole Miller created

77933f8 Decouple cloud provider from Model in Zed (#40281)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

David Kleingeld and Marshall Bowers created

186237b settings ui: Improve rendering performance (#40001)

Click to expand commit body
This PR improves the rendering performance of the Settings UI window by
using `gpui::list` to render only the visible contents of a settings
page, instead of rendering the full content of a page. This fixes a lag
that the editor page has in debug builds.

I also added a new field `measuring_behavior` to `ListState` that has
`Visible` and `Measured` variances. `Visible` only measures and caches
the bounds of visible items plus the overdraw pixel offset. `Measure`
will cache all items’ bounds on the first layout phase, which fixes
problems with the scrollbar size/position being miscalculated.

Release Notes:

- N/A

---------

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

Anthony Eid , Mikayla Maki , and Ben Kunkle created

500acc9 settings_ui: Scale window size based on UI font size (#40257)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

49acfd2 repl: List kernelspecs of the current worktree (#40154)

Click to expand commit body
Closes #25564

Release Notes:

- Fix virtual env REPLs not showing up

Abdelhakim Qbaich created

ecb0160 agent: Update message editor placeholder for Codex (#40264)

Danilo Leal created

bb0cc10 dap: Enable adapter logs for StdioTransport delegate (#40262)

Click to expand commit body
This is the first towards better logs for adapter binaries. Next up I
intend to somehow allow `codelldb` adapter in Zed to permit simple log
level so that we can pass `RUST_LOG=level` when spawning the child
process.

Release Notes:

- N/A

Jakub Konka created

3e2680d settings ui: Adjust project dropdown design a bit (#40260)

Click to expand commit body
Makes the dropdown trigger button styling consistent with the other
buttons and allows to add a tooltip in the trigger through the popover's
`trigger_with_tooltip` method.

Release Notes:

- N/A

Danilo Leal created

35595fe search: Dismiss modal view when running search action (#39446)

Click to expand commit body
Currently, using cmd-f or cmd-shift-f to search while a modal is active
(e.g. after cmd-t or cmd-p) doesn't do anything β€” you need to first
close the modal manually before initiating a search. This PR allows
these actions to run regardless of whether a modal is active.

Some context: VSCode lets you do this too, and for me it's quite common
to do a symbol search with cmd-t immediately followed by a regular
search with cmd-shift-f if I don't find what I'm looking for, so having
to close the modal first is slightly disruptive. cmd-t followed by cmd-p
does dismiss the project symbols modal in order to display the file
search modal, so it makes sense to me to also allow search actions to
dismiss an active modal.

Maybe this blunt fix has unintended consequences? If some types of
modals shouldn't be dismissed when running cmd-f, or some actions
shouldn't dismiss a currently active modal, then we'll have to go about
it differently.

Release Notes:

- Added the ability to run search actions when a modal is currently
active

Tim Vermeulen created

ce2259c file_finder: Display single files already opened (#39911)

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

(Follow up of https://github.com/zed-industries/zed/pull/36856) cc
@ConradIrwin Thanks for your help

Release Notes:

Fixed: Keep non project files when filtering in File finder

---------

Signed-off-by: Benjamin <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

Coenen Benjamin and Kirill Bulatov created

6f97d74 Docs windows update (#39501)

Click to expand commit body
Updating Zed Docs for Windows

---------

Co-authored-by: Kate <work@localcc.cc>
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Katie Geer , Kate , Julia Ryan , and Max Brunsfeld created