7ef2a82
Merge remote-tracking branch 'origin/main' into inlay-hint-tooltip
Richard Feldman created
7ef2a82
Merge remote-tracking branch 'origin/main' into inlay-hint-tooltip
Richard Feldman created
0671a4d
Allow for venv activation script to use `pyenv` (#33119)
Release Notes: - Allows for configuration and use of `pyenv` as a virtual environment provider
Taylor Beever created
bd78f2c
project: Use `checked_sub` for next/previous in search history (#34408)
Use `checked_sub` instead of checking for bounds manually. Also greatly simplifies the logic for `next` and `previous`. Removing other manual bounds checks as well Release Notes: - N/A
tidely created
d1abba0
gpui: Reduce manual shifting & other minor improvements (#34407)
Minor cleanup in gpui. - Reduce manual shifting by using `u32::to_be_bytes` - Remove eager `Vec` allocation when listing registered actions - Remove unnecessary return statements - Replace manual `if let Some(_)` with `.as_deref_mut()` Release Notes: - N/A
tidely created
0506598
cli: Remove manual `std::io::copy` implementation (#34409)
Removes a manual implementation of `std::io::copy`. The internal buffer of `std::io::copy` is also 8 kB and behaves exactly the same. On Linux `std::io::copy` also has access to some better performing file copying. Release Notes: - N/A
tidely created
7ab8f43
Update to acp 0.0.9 (#34463)
Release Notes: - N/A
Ben Brandt created
050ed85
Add severity argument to GoToDiagnostic actions (#33995)
This PR adds a `severity` argument so severity can be defined when
navigating through diagnostics. This allows keybinds like the following:
```json
{
"] e": ["editor::GoToDiagnostic", { "severity": "error" }],
"[ e": ["editor::GoToDiagnostic", { "severity": "error" }]
}
```
I've added test comments and a test. Let me know if there's anything
else you need!
Release Notes:
- Add `severity` argument to `editor::GoToDiagnostic`,
`editor::GoToPreviousDiagnostic`, `project_panel::SelectNextDiagnostic`
and `project_panel::SelectPrevDiagnostic` actions
Hilmar Wiegand created
858e176
Refine keymap UI design (#34437)
Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <Ben.kunkle@gmail.com>
Danilo Leal and Ben Kunkle created
a65c0b2
collab: Fix typo in log message (#34455)
This PR fixes a small typo in a log message. Release Notes: - N/A
Marshall Bowers created
848a86a
collab: Sync model overages for all active Zed Pro subscriptions (#34452)
Release Notes: - N/A
Marshall Bowers created
52f2b32
extension_cli: Copy over snippet file when bundling extensions (#34450)
Closes #30670 Release Notes: - Fixed snippets from extensions not working.
Piotr Osiewicz created
8dca4d1
Fix border and minimap flickering on pane split (#33973)
Closes #33972 As noted on https://github.com/zed-industries/zed/pull/31390#discussion_r2147473526, when splitting panes and having a border size set for the active pane, or the minimap visibility configured to the active editor only, zed will shortly show a flicker of the border or the minimap on the pane that's being deactivated. Release Notes: - Fixed an issue where pane activations would sometimes have a brief delay, causing a flicker in the process.
Alvaro Parker created
440beb8
Improve Java LSP documentation (#34410)
Remove references to [ABckh/zed-java-eclipse-jdtls](https://github.com/ABckh/zed-java-eclipse-jdtls) which hasn't seen a new version in 10 months (2024-10-01). Release Notes: - N/A
Peter Tripp created
ce63a6d
Exclude .repo folders by default (#34431)
These are used by [Google's `repo` tool](https://android.googlesource.com/tools/repo) used for Android for managing hundreds of git subprojects. Originally reported in: - https://github.com/zed-industries/zed/issues/34302 Release Notes: - Add Google Repo `.repo` folders to default `file_scan_exclusions`
Peter Tripp created
26ba6e7
editor: Improve minimap performance (#33067)
This PR aims to improve the minimap performace. This is primarily achieved by disabling/removing stuff that is not shown in the minimal as well as by assuring the display map is not updated during minimap prepaint. This should already be much better in parts, as the block map as well as the fold map will be less frequently updated due to the minimap prepainting (optimally, they should never be, but I think we're not quite there yet). For this, I had to remove block rendering support for the minimap, which is not as bad as it sounds: Practically, we were currently not rendering most blocks anyway, there were issues due to this (e.g. scrolling any visible block offscreen in the main editor causes scroll jumps currently) and in the long run, the minimap will most likely need its own block map or a different approach anyway. The existing implementation caused resizes to occur very frequently for practically no benefit. Can pull this out into a separate PR if requested, most likely makes the other changes here easier to discuss. This is WIP as we are still hitting some code path here we definitely should not be hitting. E.g. there seems to be a rerender roughly every second if the window is unfocused but visible which does not happen when the minimap is disabled. While this primarily focuses on the minimap, it also touches a few other small parts not related to the minimap where I noticed we were doing too much stuff during prepaint. Happy for any feedback there aswell. Putting this up here already so we have a place to discuss the changes early if needed. Release Notes: - Improved performance with the minimap enabled. - Fixed an issue where interacting with blocks in the editor would sometimes not properly work with the minimap enabled.
Finn Evers created
363a265
Add test for running `Close Others` on an inactive item (#34425)
Adds a test for the changes added in: https://github.com/zed-industries/zed/pull/34355 Release Notes: - N/A
Joseph T. Lyons created
37e73e3
Only depend on scap x11 feature when gpui x11 feature is enabled (#34251)
Release Notes: - N/A
Michael Sloan created
32f5132
Fix contrast adjustment for Powerline separators (#34417)
It turns out Starship is using custom Powerline separators in the Unicode private reserved character range. This addresses some issues seen in the comments of #34234 Release Notes: - Fix automatic contrast adjustment for Powerline separators
Richard Feldman created
fd5650d
debugger: A support for data breakpoint's on variables (#34391)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Anthony Eid , Piotr Osiewicz , Mikayla Maki , and Mikayla Maki created
8b6b039
vim: Add missing normal mode binding for signature help overload (#34278)
Closes #ISSUE related https://github.com/zed-industries/zed/pull/33199
domi created
4848bd7
docs/debugger: Remove mention of onboarding calls (#34414)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
45d0686
Remove unused KeycodeSource (#34403)
Release Notes: - N/A
Conrad Irwin created
eca36c5
Route all LLM traffic through `cloud.zed.dev` (#34404)
This PR makes it so all LLM traffic is routed through `cloud.zed.dev`. We're already routing `llm.zed.dev` to `cloud.zed.dev` on the server, but we want to standardize on `cloud.zed.dev` moving forward. Release Notes: - N/A
Marshall Bowers created
6673c7c
debugger: Add memory view (#33955)
This is mostly setting up the UI for now; I expect it to be the biggest chunk of work. Release Notes: - debugger: Added memory view --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Piotr Osiewicz , Anthony Eid , Mikayla Maki , and Mikayla Maki created
a2f5c47
Add `editor::ToggleFoldAll` action (#34317)
In multibuffers adds the ability to alt-click to fold/unfold all
excepts. In singleton buffers it adds the ability to toggle back and
forth between `editor::FoldAll` and `editor::UnfoldAll`.
Bind it in your keymap with:
```json
{
"context": "Editor && (mode == full || multibuffer)",
"bindings": {
"cmd-k cmd-o": "editor::ToggleFoldAll"
}
},
```
<img width="253" height="99" alt="Screenshot 2025-07-11 at 17 04 25"
src="https://github.com/user-attachments/assets/94de8275-d2ee-4cf8-a46c-a698ccdb60e3"
/>
Release Notes:
- Add ability to fold all excerpts in a multibuffer (alt-click) and in
singleton buffers `editor::ToggleFoldAll`
Peter Tripp created
c6a6db9
emacs: Fix cmd-f not working in Terminal (#34400)
Release Notes: - N/A
Peter Tripp created
6f9e052
languages: Add JS/TS generator functions to outline (#34388)
Functions like `function* iterateElements() {}` would not show up in the
editor's navigation outline. With this change, they do.
| **Before** | **After**
|-|-|
|<img width="453" height="280" alt="Screenshot 2025-07-13 at 4 58 22 PM"
src="https://github.com/user-attachments/assets/822f0774-bda2-4855-a6dd-80ba82fffaf3"
/>|<img width="564" height="373" alt="Screenshot 2025-07-13 at 4 58
55 PM"
src="https://github.com/user-attachments/assets/f4f6b84f-cd26-49b7-923b-724860eb18ad"
/>|
Note that I decided to use Zed's agent assistance features to do this PR
as a sort of test run. I don't normally code with an AI assistant, but
figured it might be good in this case since I'm unfamiliar with the
codebase. I must say I was fairly impressed. All the changes in this PR
were done by Claude Sonnet 4, though I have done a manual review to
ensure the changes look sane and tested the changes by running the
re-built `zed` binary with a toy project.
Closes #21631
Release Notes:
- Fixed JS/TS outlines to show generator functions.
Brian Donovan created
2edf85f
evals: Switch disable_cursor_blinking to determenistic asserts (#34398)
Release Notes: - N/A
Oleksiy Syvokon created
00ec243
pane: 'Close others' now closes relative to right-clicked tab (#34355)
Closes #33445 Fixed the "Close others" context menu action to close tabs relative to the right-clicked tab instead of the currently active tab. Previously, when right-clicking on an inactive tab and selecting "Close others", it would keep the active tab open rather than the right-clicked tab. ## Before/After https://github.com/user-attachments/assets/d76854c3-c490-4a41-8166-309dec26ba8a ## Changes - Modified `close_inactive_items()` method to accept an optional `target_item_id` parameter - Updated context menu handler to pass the right-clicked tab's ID as the target - Maintained backward compatibility by defaulting to active tab when no target is specified - Updated all existing call sites to pass `None` for the new parameter Release Notes: - Fixed: "Close others" context menu action now correctly keeps the right-clicked tab open instead of the active tab
vipex created
84124c6
Fix cannot select in terminal when copy_on_select is enabled (#34131)
Closes #33989  Release Notes: - N/A
feeiyu created
cf1ce1b
languages: Fix ESLint diagnostics not getting shown (#33814)
Closes #33442 Release Notes: - Resolved an issue where the ESLint language server returned an empty string for the CodeDescription.href field in diagnostics, leading to missing diagnostics in editor.
Umesh Yadav created
e4effa5
linux: Fix keycodes mapping on Wayland (#34396)
We are already converting Wayland keycodes to X11's; double conversion results in a wrong mapping. Release Notes: - N/A
Oleksiy Syvokon created
f500417
Language independent hotkeys (#34053)
Addresses #10972 Closes #24950 Closes #24499 Adds _key_en_ to _Keystroke_ that is derived from key's scan code. This is more lightweight approach than #32529 Currently has been tested on x11 and windows. Mac code hasn't been implemented yet. Release Notes: - linux: When typing non-ASCII keys on Linux we will now also match keybindings against the QWERTY-equivalent layout. This should allow most of Zed's builtin shortcuts to work out of the box on most keyboard layouts. **Breaking change**: If you had been using `keysym` names in your keyboard shortcut file (`ctrl-cyrillic_yeru`, etc.) you should now use the QWERTY-equivalent characters instead. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Sergei Surovtsev and Conrad Irwin created
51df8a1
project_panel: Do not render a single sticky entry when scrolled all the way to the top (#34389)
Fixes root entry not expanding/collapsing on nightly. Regressed in https://github.com/zed-industries/zed/pull/34367. Release Notes: - N/A
Smit Barmase created
85d1254
linux: Add `file_finder::Toggle` key binding (#34380)
This fixes a bug on linux where repeated presses of p while holding down the ctrl modifier navigates through options in reverse. Closes #34379 The main issue is the default biding of ctrl-p on linux is menu::SelectPrevious hence in context "context": "FileFinder || (FileFinder > Picker > Editor)" it would navigate in reverse Release Notes: - Fixed `file_finder::Toggle` on Linux not scrolling forward
Somtoo Chukwurah created
0af7d32
keymap_ui: Dismiss context menu less frequently (#34387)
This PR fixes an issue where the context menu in the keymap UI would be immediately dismissed after being opened when using a trackpad on MacOS. Right clicking on MacOS almost always fires a scroll event with a delta of 0 pixels right after (which is not the case when using a mouse). The fired scroll event caused the context menu to be removed on the next frame. This change ensures the menu is only removed when a vertical scroll is actually happening. Release Notes: - N/A
Finn Evers created
1cadff9
project_panel: Fix sticky items horizontal scroll and hover propagation (#34367)
Release Notes: - Fixed horizontal scrolling not working for sticky items in the Project Panel. - Fixed issue where hovering over the last sticky item in the Project Panel showed a hovered state on the entry behind it. - Improved behavior when clicking a sticky item in the Project Panel so it scrolls just enough for the item to no longer be sticky.
Smit Barmase created
8f6b9f0
debugger: Allow users to shutdown debug sessions while they're booting (#34362)
This solves problems where users couldn't shut down sessions while locators or build tasks are running. I renamed `debugger::Session::Mode` enum to `SessionState` to be more clear when it's referenced in other crates. I also embedded the boot task that is created in `SessionState::Building` variant. This allows sessions to shut down all created threads in their boot process in a clean and idiomatic way. Finally, I added a method on terminal that allows killing the active task. Release Notes: - Debugger: Allow shutting down debug sessions while they're booting up
Anthony Eid created
970a106
git: Handle shift-click to stage a range of entries in the panel (#34296)
Release Notes: - git: shift-click can now be used to stage a range of entries in the git panel.
Cole Miller created
833bc69
debugger: Fix correctly determine replace range for debug console completions (#33959)
Follow-up #33868 This PR fixes a few issues with determining the completion range for client‑ and variable‑list completions. 1. Non‑word completions We previously supported only word characters and _, using their combined length to compute the start offset. In PHP, however, an expression can contain `$`, `-`, `>`, `[`, `]`, `(`, and `)`. Because these characters weren’t treated as word characters, the start offset stopped at them, even when the preceding character was part of a word. 2. Trailing characters inside the search text When autocompletion occurred in the middle of the search text, we didn’t account for trailing characters. As a result, the start offset was off by the number of characters after the cursor. For example, replacing res with result in print(res) produced `print(rresult)` because the trailing `)` wasn’t subtracted from the start offset. The following completions are correctly covered now: - **Before** `$aut` -> `$aut$author` **After** `$aut` -> `$author` - **Before** `$author->na` -> `$author->na$author->name` **After** `$author->na` -> `$author->name` - **Before** `$author->books[` -> `$author->books[$author->books[0]` **After** `$author->books[` -> `$author->books[0]` - **Before** `print(res)` -> `print(rresult)` **After** `print(res)` -> `print(result)` **Before** https://github.com/user-attachments/assets/b530cf31-8d4d-45e6-9650-18574f14314c https://github.com/user-attachments/assets/52475b7b-2bf2-4749-98ec-0dc933fcc364 **After** https://github.com/user-attachments/assets/c065701b-31c9-4e0a-b584-d1daffe3a38c https://github.com/user-attachments/assets/455ebb3e-632e-4a57-aea8-d214d2992c06 Release Notes: - Debugger: Fixed autocompletion not always replacing the correct search text
Remco Smits created
a8cc927
debugger: Improve appearance of session list for JavaScript debugging (#34322)
This PR updates the debugger panel's session list to be more useful in some cases that are commonly hit when using the JavaScript adapter. We make two adjustments, which only apply to JavaScript sessions: - For a child session that's the only child of a root session, we collapse it with its parent. This imitates what VS Code does in the "call stack" view for JavaScript sessions. - When a session has exactly one thread, we label the session with that thread's name, instead of the session label provided by the DAP. VS Code also makes this adjustment, which surfaces more useful information when working with browser sessions. Closes #33072 Release Notes: - debugger: Improved the appearance of JavaScript sessions in the debug panel's session list. --------- Co-authored-by: Julia <julia@zed.dev> Co-authored-by: Remco Smits <djsmits12@gmail.com>
Cole Miller , Julia , and Remco Smits created
13ddd5e
Return back the guards when goto targets are queried for (#34340)
Closes https://github.com/zed-industries/zed/issues/34310 Follow-up of https://github.com/zed-industries/zed/pull/29359 Release Notes: - Fixed goto definition not working in remote projects in certain conditions
Kirill Bulatov created
1b6e212
debugger: Fix endless restarts when connecting to TCP adapters over SSH (#34328)
Closes #34323 Closes #34313 The previous PR #33932 introduced a way to "close" the `pending_requests` buffer of the `TransportDelegate`, preventing any more requests from being added. This prevents pending requests from accumulating without ever being drained during the shutdown sequence; without it, some of our tests hang at this point (due to using a single-threaded executor). The bug occurred because we were closing `pending_requests` whenever we detected the server side of the transport shut down, and this closed state stuck around and interfered with the retry logic for SSH+TCP adapter connections. This PR fixes the bug by only closing `pending_requests` on session shutdown, and adds a regression test covering the SSH retry logic. Release Notes: - debugger: Fixed a bug causing SSH connections to some adapters (Python, Go, JavaScript) to fail and restart endlessly.
Cole Miller created
46834d3
Refine status bar design (#34324)
Experimenting with a set of standardized icons and polishing spacing a little bit. Release Notes: - N/A
Danilo Leal created
e070c81
Remove remaining plugin-related language server adapters (#34334)
Follow-up of https://github.com/zed-industries/zed/pull/34208 Release Notes: - N/A
Kirill Bulatov created
5b61b8c
agent: Fix crash with pathological fetch output (#34253)
Closes #34029 The crash is due to a stack overflow in our `html_to_markdown` conversion; I've added a maximum depth of 200 for the recursion in that crate to guard against this kind of thing. Separately, we were treating all content-types other than `text/plain` and `application/json` as HTML; I've changed this to only treat `text/html` and `application/xhtml+xml` as HTML, and fall back to plaintext. (In the original crash, the content-type was `application/octet-stream`.) Release Notes: - agent: Fixed a potential crash when fetching large non-HTML files.
Cole Miller created
625ce12
Revert "git: Intercept signing prompt from GPG when committing" (#34306)
Reverts zed-industries/zed#34096 This introduced a regression, because the unlocked key can't benefit from caching. Release Notes: - N/A
Cole Miller created
12bc890
Recall empty, unsaved buffers on app load (#33475)
Closes #33342 This PR implements serialization of pinned tabs regardless of their state (empty, untitled, etc.) The root cause was that empty untitled tabs were being skipped during serialization but their pinned state was still being persisted, leading to a mismatch between the stored pinned count and actual restorable tabs, this issue lead to a crash which was patched by @JosephTLyons, but this PR aims to be a proper fix. **Note**: I'm still evaluating the best approach for this fix. Currently exploring whether it's necessary to store the pinned state in the database schema or if there's a simpler solution that doesn't require schema changes. --- **Edit from Joseph** We ended up going with altering our recall logic, where we always restore all editors, even those that are new, empty, and unsaved. This prevents the crash that #33335 patched because we are no longer skipping the restoration of pinned editors that have no text and haven't been saved, throwing off the count dealing with the number of pinned items. This solution is rather simple, but I think it's fine. We simply just restore everything the same, no conditional dropping of anything. This is also consistent with VS Code, which also restores all editors, regardless of whether or not a new, unsaved buffers have content or not. https://github.com/zed-industries/zed/tree/alt-solution-for-%2333342 Release Notes: - N/A --------- Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
vipex and Joseph T. Lyons created
67c765a
keymap_ui: Dual-phase focus for keystroke input (#34312)
Closes #ISSUE An idea I and @MrSubidubi came up with, to improve UX around the keystroke input. Currently, there's a hard tradeoff with what to focus first in the edit keybind modal, if we focus the keystroke input, it makes keybind modification very easy, however, if you don't want to edit a keybind, you must use the mouse to escape the keystroke input before editing something else - breaking keyboard navigation. The idea in this PR is to have a dual-phased focus system for the keystroke input. There is an outer focus that has some sort of visual indicator to communicate it is focused (currently a border). While the outer focus region is focused, keystrokes are not intercepted. Then there is a keybind (currently hardcoded to `enter`) to enter the inner focus where keystrokes are intercepted, and which must be exited using the mouse. When the inner focus region is focused, there is a visual indicator for the fact it is "recording" (currently a hacked together red pulsing recording icon) <details><summary>Video</summary> https://github.com/user-attachments/assets/490538d0-f092-4df1-a53a-a47d7efe157b </details> Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
206cce6
keymap_ui: Support unbinding non-user defined keybindings (#34318)
Closes #ISSUE Makes it so that `KeymapFile::update_keybinding` treats removals of bindings that weren't user-defined as creating a new binding to `zed::NoAction`. Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created