Commit log

1fbe1e3 VSCode settings import refactor (#40513)

Click to expand commit body
A small follow-up to the settings refactor of a few weeks ago to move
all the VSCode settings imports
to one place.

This should make it easier to spot missing imports, and easier to test
the importer.

Release Notes:

- N/A

Conrad Irwin created

62858f6 Restore Oxford comma in README (#40518)

Click to expand commit body
We use Oxford commas in this household.

Release Notes:

- N/A

Marshall Bowers created

3f13191 Remove agent1 code (#40495)

Click to expand commit body
Release Notes:

- N/A

Bennet Fenner created

73e028c dap: Allow user to pass custom envs to adapter via project settings (#40490)

Click to expand commit body
It is now possible to configure logging level of CodeLLDB adapter via
envs specified in project settings like so:

```
{
    "dap": {
        "CodeLLDB": {
            "envs": {
                "RUST_LOG": "debug"
            }
        }
    }
}
```

Release Notes:

- N/A

Jakub Konka created

c1e87c8 zeta2: Feature flag (#40505)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

1449d1c zeta2: Report accepted predictions (#40500)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

83bfe2f multi_buffer: Make `anchor_in_excerpt` fallible for bad text anchors (#40496)

Click to expand commit body
`MultiBuffer::anchor_in_excerpt` currently just wraps the given text
anchor in a multibuffer anchor. This allows one to get a multibuffer
anchor that points outside its excerpt which is basically never what one
wants. This PR now does a bounds check and returns `None` if the given
text anchor is not within the bounds of the excerpt.

Release Notes:

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

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Lukas Wirth and Kirill Bulatov created

7f9898a Add Amplitude tracking to docs (#40494)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Gaauwe Rombouts created

b27fd3b worktree: Don't attempt to watch non-existing global gitignore (#40476)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

9056d77 settings_ui: Add dynamic setting fields (#40443)

Click to expand commit body
Closes #ISSUE

Includes the start of how we can get rid of most of the `.unimplemented`
"Edit in JSON" buttons in the settings UI. For now only Theme selection
is implemented, follow ups will add more settings

Release Notes:

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

Ben Kunkle created

b711232 file_finder: Fix open path prompt creating wrong highlight indices (#40488)

Click to expand commit body
Fixes ZED-28R

Release Notes:

- Fixed open path prompt panicking on certain inputs

Lukas Wirth created

b59a3bb gpui: Remove some unnecessary unsafe code (#40483)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

eb3f9b0 Fix command for changing inside brackets in vim.md (#40184)

Click to expand commit body
Fix bindings used in the vim documentation example for both
`MiniBrackets` and `MiniQuotes`.

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>

happy wang and dino created

dd32bb6 title_bar: Render chevron if `show_user_picture` is disabled (#40474)

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

Release Notes:

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

Lukas Wirth created

568bb02 Bind `ctrl-c` and `ctrl-v` in the windows terminal (#40426)

Click to expand commit body
Fixes #40034

Release Notes:

- `ctrl-c` (when you have a selection) and `ctrl-v` are now bound to
copy and paste by default in the windows terminal.

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

Julia Ryan and John Tur created

ca1f843 remote: Support line and column numbers for remote paths (#40410)

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

Release Notes:

- Improved line and column number handling for paths in remotes

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Lukas Wirth and Max Brunsfeld created

45a0d08 Update README.md grammar (#40461)

Click to expand commit body
Fixes a grammar issue in the readme.

Release notes:
- N/A

ThomasNow Productions created

d5a156b remote: Exclude port-forward flags in scp commands (#40402)

Click to expand commit body
Closes #36454

Release Notes:

- Exclude port-forward flags in `scp` commands for file and directory
uploads

Fadhil Yusuf created

6c3a7f6 gpui: Fix text wrapping for URLs (#35724)

Click to expand commit body
Close #35715

Release Notes:

- Fixed to wrap long URLs in editor.

<img width="836" height="740" alt="image"
src="https://github.com/user-attachments/assets/635ce792-5f19-4c76-b131-0d270d09b103"
/>

I remember when I was working on CJK line wrapping support in the early
days, I considered making `\` a line wrapping character, but for some
reason it was on the list of characters that were not allowed to wrap.

In reference to VS Code, it looks like `&`, `/`, `?` should wrap, so I
removed all of them.

---------

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

Jason Lee and Mikayla Maki created

e67065f Fix "select toolchain path" in WSL with python virtual environments (#40447)

Click to expand commit body
Closes #39596

Release Notes:

- N/A

Julia Ryan created

d99fdc6 Fix path separator in toolchain selector (#40449)

Click to expand commit body
Closes #40310

Release Notes:

- N/A

Julia Ryan created

038041c Fix spacing around hidden status bar items (#39992)

Click to expand commit body
This is a follow-up PR to
https://github.com/zed-industries/zed/pull/39609, and attempts to
address hidden status bar items still contributing to the layout and
creating extra spacing.

![before using display:none theres extra spaces, afterwords the buttons
are always evenly
spaced](https://github.com/user-attachments/assets/3bd07837-5f6f-4ca1-8985-9f3cb8b6893d)

- 203cbd634bfb1489b8afa4952d9594615a956b77 Adds a `.none()` method to
the `gpui::Styled` helper trait, so that status items can set their
display type to none inside their `render` method.

- 249f06e3de63b0ab32814f20e7105d8e2b642f02 Applies `.none()` to all the
status items.

- ~~499f564906c88336608c81615b11ebc9ab43d832~~ At first I was adding an
`is_visible` method to the `StatusBarView` trait, which would be used to
skip status bar items which would just render an empty div anyway, but I
felt duplicating the conditions for hiding the buttons between the
status items `is_visible` and `render` methods could be an attraction
for bugs, so I tried to find another approach. This commit contains
those changes, reverted immediately (if the `is_visible` approach is
preferred I can bring it back!)

- f37cb75f0519ceea1f3e1cc4f97087a5cb34b0fd (bonus!) Adds a condition to
the vim mode indicator to avoid a leading space when there are no
pending keys.

Release Notes:

- N/A

kitt created

0cbab31 vim: Add vim command filename autocomplete (#36332)

Click to expand commit body
Release Notes:

- Adds filename autocomplete for vim commands:
  - write
  - edit
  - split
  - vsplit
  - tabedit
  - tabnew
- Makes command palette interceptor async
<img width="1382" height="634" alt="image"
src="https://github.com/user-attachments/assets/e7bf01c5-e9cd-4a7d-b38c-12fc3df5069f"
/>

---------

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

AidanV and Conrad Irwin created

908ae95 docs: Improve debug adapter documentation (#40441)

Click to expand commit body
docs. docs. docs.

Release Notes:

- N/A

Mikayla Maki created

4fa3331 Make python adapter error message a bit better (#40440)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

cdc9728 emacs: Support more default keybindings (#40101)

Click to expand commit body
Hello,

Thanks for the great work.
I am adding some more bindings for the emacs keymap:
- `command_palette::Toggle` as replacement for the emacs command
dispatcher
- other default aliases for existing move / delete commands
  - e.g. `alt-left` to move to previous word and `alt-del` to delete it
- some missing `SelectTo` equivalents for move commands on selection
mode

Release Notes:
- Added bindings for the Emacs keymap

Affonso, Guilherme created

aec3c2f workspace: Move panes to span the entire border in Vim mode (#39123)

Click to expand commit body
Currently, <kbd>⌃w</kbd> + <kbd>HJKL</kbd> keystrokes swap active pane
with another pane in that direction. Also, if there is no pane to swap
with, nothing happens.

This does not match the expected Vim behavior: moving the split to span
the entire border.

See
https://github.com/vim/vim/blob/ca6a260ef1a4b4ae94bc71c17cbabf8f12bf0f8c/runtime/doc/windows.txt#L527-L549

This change adds `MovePane{Up,Down,Left,Right}` actions that do exactly
that and updates default Vim keymap.

<table>
<tr>
  <th>Before</th>
  <th>After</th>
<tr>
<td><video
src="https://github.com/user-attachments/assets/5d3a25bf-e8b6-46c1-9fbb-004f0194e0dd">
<td><video
src="https://github.com/user-attachments/assets/5276f115-5063-411e-b141-5d268a79581b">
<tr>
  <th>Vim</th>
<tr>
<td><video
src="https://github.com/user-attachments/assets/df9fbf83-d0de-42c0-8fb0-b134be833bde">
</table>

Release Notes:

- Changed `ctrl+w` + `shift-[hjkl]` in Vim mode to move the split to
span the entire border, aligning with Vim‘s behavior.

Signed-off-by: Ivan Trubach <mr.trubach@icloud.com>

Ivan Trubach created

620df0c Remove unnecessary languages mapping in Tailwind for Ruby example (#40299)

Click to expand commit body
The built-in Tailwind language already maps `HTML+ERB` to `erb`, and it
seems that `Ruby` files work as well just from enabling the language
server, so we can remove the unnecessary mapping.

Release Notes:
- N/A

Janko Marohnić created

cd51efa Fixed nushell error when creating new folder when uploading wsl-remote-server (#40432)

Click to expand commit body
Closes #40269 

Release Notes:

- N/A

kingananas20 created

e85c060 fs: Replace a bunch of uses of smol::fs with manual impls (again) (#40433)

Click to expand commit body
Follow-up after #40417, which should've fixed hangs.

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

65acf12 Fix use of PRNG in Rope benchmarks (#39949)

Click to expand commit body
Using a seeded PRNG to produce consistent test data and reduce
variability makes sense.

However, the way it was used previously, by always cloning the RNG,
means that every generated string is the same, and every offset is the
same. After this change, the tested value stream should still be the same on
each run of the benchmark, but the values within each run will vary.

The `generate_random_text` measured in chars also seems possibly
inconsistent with later comments about it being a number of bytes.

Release Notes:

- N/A

Martin Pool created

2adc023 anthropic: Haiku 4.5 support (#40298)

Click to expand commit body
Release Notes:

- Added Claude Haiku 4.5

<img width="1512" height="919" alt="Screenshot 2025-10-15 at 5 23 37 PM"
src="https://github.com/user-attachments/assets/fd3eb8e7-ddd8-4d38-a171-400949c0cef4"
/>

versecafe created

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