Commit Graph
31958 Commits
Author SHA1 Message Date
Lukas WirthandKirill Bulatov 83bfe2ff7b multi_buffer: Make anchor_in_excerpt fallible for bad text anchors (#40496)
`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>
2025-10-17 15:40:37 +00:00
Gaauwe Rombouts 7f9898a90b Add Amplitude tracking to docs (#40494)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-17 17:10:59 +02:00
Lukas Wirth b27fd3b8d7 worktree: Don't attempt to watch non-existing global gitignore (#40476)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-17 13:19:38 +00:00
Ben Kunkle 9056d77604 settings_ui: Add dynamic setting fields (#40443)
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 ...
2025-10-17 09:13:34 -04:00
Lukas Wirth b7112320bb file_finder: Fix open path prompt creating wrong highlight indices (#40488)
Fixes ZED-28R

Release Notes:

- Fixed open path prompt panicking on certain inputs
2025-10-17 12:41:09 +00:00
Lukas Wirth b59a3bbd49 gpui: Remove some unnecessary unsafe code (#40483)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-17 14:20:13 +02:00
happy wanganddino eb3f9b0ea3 Fix command for changing inside brackets in vim.md (#40184)
Fix bindings used in the vim documentation example for both
`MiniBrackets` and `MiniQuotes`.

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
2025-10-17 11:24:53 +00:00
Lukas Wirth dd32bb6c74 title_bar: Render chevron if show_user_picture is disabled (#40474)
Closes https://github.com/zed-industries/zed/issues/40460

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-17 11:03:29 +00:00
Julia RyanandJohn Tur 568bb02759 Bind ctrl-c and ctrl-v in the windows terminal (#40426)
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>
2025-10-17 11:02:12 +00:00
Lukas WirthandMax Brunsfeld ca1f843a0b remote: Support line and column numbers for remote paths (#40410)
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>
2025-10-17 10:50:22 +00:00
ThomasNow Productions 45a0d08535 Update README.md grammar (#40461)
Fixes a grammar issue in the readme.

Release notes:
- N/A
2025-10-17 09:15:00 +00:00
Fadhil Yusuf d5a156b774 remote: Exclude port-forward flags in scp commands (#40402)
Closes #36454

Release Notes:

- Exclude port-forward flags in `scp` commands for file and directory
uploads
2025-10-17 08:41:35 +00:00
Jason LeeandMikayla Maki 6c3a7f6ddb gpui: Fix text wrapping for URLs (#35724)
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>
2025-10-16 23:06:14 -07:00
Julia Ryan e67065f2a3 Fix "select toolchain path" in WSL with python virtual environments (#40447)
Closes #39596

Release Notes:

- N/A
2025-10-16 23:02:49 -07:00
Julia Ryan d99fdc60fd Fix path separator in toolchain selector (#40449)
Closes #40310

Release Notes:

- N/A
2025-10-16 22:35:51 -07:00
kitt 038041cc87 Fix spacing around hidden status bar items (#39992)
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
2025-10-17 02:26:39 -03:00
AidanVandConrad Irwin 0cbab311a1 vim: Add vim command filename autocomplete (#36332)
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>
2025-10-17 04:19:01 +00:00
Mikayla Maki 908ae95cf8 docs: Improve debug adapter documentation (#40441)
docs. docs. docs.

Release Notes:

- N/A
2025-10-17 00:36:47 +00:00
Mikayla Maki 4fa3331bf2 Make python adapter error message a bit better (#40440)
Release Notes:

- N/A
2025-10-16 23:44:32 +00:00
Affonso, Guilherme cdc9728391 emacs: Support more default keybindings (#40101)
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
2025-10-16 23:32:06 +00:00
Ivan Trubach aec3c2fbb7 workspace: Move panes to span the entire border in Vim mode (#39123)
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>
2025-10-16 17:09:04 -06:00
Janko Marohnić 620df0c722 Remove unnecessary languages mapping in Tailwind for Ruby example (#40299)
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
2025-10-17 01:00:24 +02:00
kingananas20 cd51efad9e Fixed nushell error when creating new folder when uploading wsl-remote-server (#40432)
Closes #40269 

Release Notes:

- N/A
2025-10-16 22:46:30 +00:00
Piotr OsiewiczandSmit Barmase e85c060625 fs: Replace a bunch of uses of smol::fs with manual impls (again) (#40433)
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>
2025-10-17 00:29:22 +02:00
Martin Pool 65acf125fb Fix use of PRNG in Rope benchmarks (#39949)
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
2025-10-17 00:15:28 +02:00
versecafe 2adc023094 anthropic: Haiku 4.5 support (#40298)
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"
/>
2025-10-16 15:59:12 -06:00
Piotr OsiewiczandCole Miller 3780fe3b8e gpui: Do not use a single shared parker within a Dispatcher (#40417)
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>
2025-10-16 21:52:09 +00:00
Cole Miller 59991e9c4d Fix compilation on main (#40428)
Updates #40420 

Release Notes:

- N/A
2025-10-16 21:22:35 +00:00
Morrow Shore e1618994c7 Mention Windows support in README (#40421)
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.
2025-10-16 20:35:39 +00:00
Andrew FarkasandCole Miller c288f9b1e6 Remove unused indices in mac/text_system (#40420)
just simplifying the code a bit

Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>
2025-10-16 20:28:36 +00:00
Cole MillerandHactarCE b26491f570 Fix crash when opening files with a BOM on macOS (#40419)
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>
2025-10-16 20:04:41 +00:00
Bartosz Kaszubowski 738dcd0c3a ui_input: Adjust step values for Font Weight stepper (#40408)
# 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.
2025-10-16 16:20:54 -03:00
81425bef72 Revert deprecate code actions on format (#40409)
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>
2025-10-16 14:11:20 -04:00
Piotr Osiewicz 04f0805502 Revert "fs: Replace a bunch of uses of smol::fs with manual impls" (#40406)
Reverts zed-industries/zed#40172
2025-10-16 20:08:53 +02:00
jneem 58ff46962d Add a helix-specific substitute method (#38735)
`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
2025-10-16 17:23:09 +00:00
localcc c5a67d85ab Add WSL distro labels to open recent (#40375)
Closes #40358 

Release Notes:

- Windows: improved recently open folders in WSL
2025-10-16 19:07:36 +02:00
localccandJohn Tur 3da4cddce2 Round the scroll offset in editor to fix jumping text (#40401)
Release Notes:

- Improved editor font rendering on lodpi displays

Co-authored-by: John Tur <john-tur@outlook.com>
2025-10-16 19:07:07 +02:00
fantacellandJakub Konka 25172f990b helix: Change selection cloning (#38090)
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>
2025-10-16 16:36:31 +00:00
Agus ZubiagaandOleksiy Syvokon 23a0b6503c zeta2: Include a single unified diff for the edit history (#40400)
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>
2025-10-16 16:03:15 +00:00
Julia Ryan 923e880150 Add winget release job (#40293)
This will automatically open PRs against the winget package registry to
bump our version there when we do a release.

Release Notes:

- N/A
2025-10-16 08:13:58 -07:00
Kirill Bulatov de8dd9bea5 Rework editors to register and query buffers on scroll (#40388)
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
2025-10-16 15:13:23 +00:00
Ben Brandt c77cc9b0eb Revert "acp: Don't collapse tool calls by default" (#40395)
Reverts zed-industries/zed#40164

Release Notes:

- N/A
2025-10-16 15:13:17 +00:00
DinoandAgus Zubiaga 3950f5af29 keymaps: Update defaults for inline assist and signature help (#39587)
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>
2025-10-16 16:07:10 +01:00
Lukas Wirth 1ee6ef5e1a gpui: Properly surface errors in gpui build script (#40381)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-16 16:58:05 +02:00
Lukas Wirth 87adc96e0f editor: Fix invalid excerpt panic in Editor::hover_links (#40387)
Fixes ZED-17N
Fixes ZED-26Z

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-16 14:32:46 +00:00
Agus Zubiaga fba7f4d8cc zeta2: Update prompts to match training more closely (#40383)
Release Notes:

- N/A
2025-10-16 14:13:19 +00:00
ae25baad02 settings_ui: Fix settings popup process alive (#39790)
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>
2025-10-16 14:12:58 +00:00
Lukas Wirth cf49194819 markdown_preview: Fix alt text causing mismatched highlighting runs (#40374)
Fixes ZED-277

Release Notes:

- Fixed alt text in markdown preview creating inconsistent highlighting
2025-10-16 13:42:10 +00:00
Ben Kunkle ea6853d35c Fix code actions migration (#40303)
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
2025-10-16 09:13:34 -04:00
Piotr OsiewiczandSmit Barmase c37a2f885a fs: Replace a bunch of uses of smol::fs with manual impls (#40172)
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>
2025-10-16 14:49:34 +02:00