48491fa
Bump Zed to v0.193 (#32947)
Click to expand commit body
Release Notes: -N/A
Joseph T. Lyons created
48491fa
Bump Zed to v0.193 (#32947)
Release Notes: -N/A
Joseph T. Lyons created
45b5b2e
Diff view (#32922)
Todo: * [x] Open diffed files as regular buffers * [x] Update diff when buffers change * [x] Show diffed filenames in the tab title * [x] Investigate why syntax highlighting isn't reliably handled for old text * [x] remove unstage/restore buttons Release Notes: - Adds `zed --diff A B` to show the diff between the two files --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Agus Zubiaga <agus@zed.dev>
Conrad Irwin , Max Brunsfeld , Ben Brandt , and Agus Zubiaga created
2f52e2d
debugger: Fix a few issues with JS debugging (#32918)
- Don't assume all located tasks come from our test runnables - Run tests from the right working directory - Scope forking behavior customization for jest and vitest more tightly, to just our test runnables - Standardize on `$PACKAGE_MANAGER exec -- $TEST_LIBRARY ...` to fix runnables not working with npm Release Notes: - Debugger Beta: Fixed issues with debugging tasks from package.json and test runnables.
Cole Miller created
3e8a07f
zed_extension_api: Release v0.6.0 (#32945)
This PR releases v0.6.0 of the Zed extension API. Support for this version of the extension API will land in Zed v0.192.x. Release Notes: - N/A
Marshall Bowers created
8e40318
debugger: Show child sessions as indented and ensure they're next to the parent session (#32939)
Closes #ISSUE Release Notes: - debugger: Tweaked how child sessions are shown in the session list.
Piotr Osiewicz created
131f285
editor: Improve code completion filtering to provide fewer and more accurate suggestions (#32928)
Closes #32756 - Uses `filter_text` from LSP source to filter items in completion list. This fixes noisy lists like on typing `await` in Rust, it would suggest `await.or`, `await.and`, etc., which are bad suggestions. Fallbacks to label. - Add `penalize_length` flag to fuzzy matcher, which was the default behavior across. Now, this flag is set to `false` just for code completion fuzzy matching. This fixes the case where if the query is `unreac` and the completion items are `unreachable` and `unreachable!()`, the item with a shorter length would have a larger score than the other one, which is not right in the case of auto-complete context. Now these two items will have the same fuzzy score, and LSP `sort_text` will take over in finalizing its ranking. - Updated test to be more utility based rather than example based. This will help to iterate/verify logic faster on what's going on. Before/After: await: <img width="600" alt="before-await" src="https://github.com/user-attachments/assets/384138dd-a90d-4942-a430-6ae15df37268" /> <img width="600" alt="after-await" src="https://github.com/user-attachments/assets/d05a10fa-bae5-49bd-9fe7-9933ff215f29" /> iter: <img width="600" alt="before-iter" src="https://github.com/user-attachments/assets/6e57ffe9-007d-4b17-9cc2-d48fc0176c8e" /> <img width="600" alt="after-iter" src="https://github.com/user-attachments/assets/a8577a9f-dcc8-4fd6-9ba0-b7590584ec31" /> opt: <img width="600" alt="opt-before" src="https://github.com/user-attachments/assets/d45b6c52-c9ee-4bf3-8552-d5e3fdbecbff" /> <img width="600" alt="opt-after" src="https://github.com/user-attachments/assets/daac11a8-9699-48f8-b441-19fe9803848d" /> Release Notes: - Improved code completion filtering to provide fewer and more accurate suggestions.
Smit Barmase created
65067da
debugger: Add breakpoint list to the empty state of debug panel (#32930)
 Release Notes: - Debugger: Added breakpoint list to the empty debug panel
Piotr Osiewicz created
d8eb341
Fix bug where prior LSP completions can be displayed after trigger char (#32927)
Bug in #31872 Closes #32774 Release Notes: - Fixed a bug in LSP completions caching where prior completions may be used when they should not, after typing a trigger char like `.`
Michael Sloan created
70aab39
docs: Add light formatting changes to the Debugger page (#32919)
Just some tiny little formatting improvement opportunities I stumbled upon while working on the marketing stuff for the debugger. Release Notes: - N/A
Danilo Leal created
bfffc29
debugger: Parse and highlight text with ANSI escape sequences (#32915)
Relanding #32817 with an improved approach, bugs fixed, and a test. Release Notes: - N/A
Cole Miller created
4da5818
windows: Fix client area is treated as non-client area when window is fullscreen (#32916)
Closes #32909 Release Notes: - N/A
张小白 created
9bdfd1e
gpui: Fix pending keys dispatch path panic (#32891)
For me this is a panic that started occurring today in my use of Zed.
The repro is to type `ctrl-x` to start a pending key sequence and then
close the collab side panel with the mouse. The issue is that
dispatching the action based on pending keystrokes uses the same
`DispatchNodeId` as when the 1 second timer was started.
`DispatchNodeId` is not stable across frames. This also means that the
wrong `DispatchNodeId` can be used in the non-panicing case, potentially
causing the action to not occur.
The mystery here is why did this only start happening now in my use of
Zed, and why isn't it showing up in the panics dashboard / issue
reports.
Panic looks like
```
{
"thread": "main",
"payload": "index out of bounds: the len is 467 but the index is 1861",
"location_data": {
"file": "crates/gpui/src/key_dispatch.rs",
"line": 519
},
"backtrace": [
"zed::reliability::init_panic_hook::{{closure}}::he1d8257b19b16eec+155265758",
"std::panicking::rust_panic_with_hook::h33b18b24045abff4+128544307",
"std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc+128543530",
"std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a+128537145",
"__rustc[95feac21a9532783]::rust_begin_unwind+128542669",
"core::panicking::panic_fmt::hd54fb667be51beea+9456688",
"core::panicking::panic_bounds_check::h1a9bf3d94de0fc80+9457170",
"gpui::key_dispatch::DispatchTree::dispatch_path::hce77d277881569bf+73992023",
"gpui::app::App::spawn::{{closure}}::hb1e79bbbdead3012+73687056",
"async_task::raw::RawTask<F,T,S,M>::run::hd13f66f99bb24bbd+70694231",
"<gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run::h5a92ddaaf9a06dd1+74465138",
"gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hd19ac52b2d94268e+74064525",
"gpui::app::Application::run::hee83110c717a5af0+151862692",
"zed::main::hca7e2265584c4139+153307630",
"std::sys::backtrace::__rust_begin_short_backtrace::h2e04f4034c2d82c5+153146899",
"std::rt::lang_start::{{closure}}::h91cf1ca0eeae23ae+154454121",
"std::rt::lang_start_internal::h418648f91f5be3a1+128467809",
"main+153326748",
"__libc_start_call_main+25056432783818",
"__libc_start_main_impl+25056432784011",
"_start+12389486"
],
"app_version": "0.190.6",
"app_commit_sha": "9a2dcbbe244407fed51d61f38e4a4a59ec1cccc6",
"release_channel": "stable",
"target": "x86_64-unknown-linux-gnu",
"os_name": "Linux X11",
"os_version": "ubuntu 24.04",
"architecture": "x86_64",
"panicked_on": 1750185799233,
"system_id": "abae7201-61fb-442b-922b-202071ae81c0",
"installation_id": "69a0fb9a-11a2-4065-ad8c-b281e68525ad",
"session_id": "bc5b5f2f-e4c3-44a8-948e-c0550a2e2ef2"
}
```
Release Notes:
- Fixed a rare panic / potential incorrect action dispatch when a
pending keysequence is applied after the 1 second timer elapsing.
Michael Sloan created
aa1b2d7
x11: Improve error handling (#32913)
Continuing this work from a while back in #21079, now greatly aided by agent + sonnet 4. With this change, there are now only a few spots that explicitly panic, though errors during initialization will panic. Motivation was this recent user panic in `handle_event`, figured fixing all this use of unwrap was a great use of the agent. > called `Result::unwrap()` on an `Err` value: X11 GetProperty for _NET_WM_STATE failed. Release Notes: - N/A
Michael Sloan created
90aa99b
Add Caps Lock support (#30470)
Closes #21700 Release Notes: - Added caps lock support and show a warning if the user is entering an SSH password with Caps Lock enabled --------- Co-authored-by: Mikayla Maki <mikayla@zed.dev> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: 张小白 <364772080@qq.com>
Maxim Zaks , Mikayla Maki , Mikayla Maki , and 张小白 created
e47c48f
debugger: Add comment-preserving debug.json editing (#32896)
Release Notes: - Re-added "Save to `debug.json`" for custom debug tasks --------- Co-authored-by: Cole Miller <cole@zed.dev>
Julia Ryan and Cole Miller created
2f1d25d
Revert "debugger: Process ANSI color escape codes in console" (#32906)
Reverts zed-industries/zed#32817 Release Notes: - N/A
Cole Miller created
0cda28f
Fix release notes appearing in project search (#32898)
Closes #28829 Release Notes: - Fixed an issue where release notes would appear in project search results when opened locally
Ben Kunkle created
a422345
Add `(flatpak)` and `(snap)` suffixes to Zed version in system info (#32903)
Release Notes: - N/A
Michael Sloan created
051fa06
Add docs for cloning extensions repository (#32897)
Release Notes: - N/A --------- Co-authored-by: Peter Tripp <peter@zed.dev>
Joseph T. Lyons and Peter Tripp created
0191f16
Update Gemini Models (#32902)
Updates google_ai to use latest model information from the respective model cards: https://ai.google.dev/gemini-api/docs/models Release Notes: - google: Update to latest Gemini 2.5 models
Ben Brandt created
3c9fe36
debugger: Remove feature flag (#32877)
Release Notes: - debugger: Now available for everyone!
Conrad Irwin created
8883885
debugger: Improve debugger panel empty state (#32889)
Before:  After:  Release Notes: - N/A (Beta: Improved the debugger panel when there are no currently active sessions)
Nate Butler created
dbc4ccd
vim: Implement `[ e` and `] e` from vim-unimpaired (#32851)
From [this discussion](https://github.com/zed-industries/zed/discussions/30757). The default vim keymap already implements some of [vim-unimpaired keymaps](https://github.com/tpope/vim-unimpaired). I thought I could add this one as well to move lines up and down. Since the keymaps are in a plugin and not by default in vim, this might be out of the scope. If you feel like this is the case, just close the PR :) Release Notes: - vim: Added `[ e` and `] e` key bindings to move lines up and down.
Alejandro Fernández Gómez created
6223d04
docs: Add note about enabling Copilot models in GitHub settings (#32885)
Seen this in a bunch of issues now, so hopefully this will help. Release Notes: - N/A
Bennet Bo Fenner created
c7dad1c
Use more conservative settings for the minimap display (#32878)
Follow-up of https://github.com/zed-industries/zed/pull/31390 Release Notes: - N/A
Kirill Bulatov created
d5472bc
Document zed CLI (#32879)
Closes https://github.com/zed-industries/zed/issues/32646 Release Notes: - N/A
Kirill Bulatov created
b1e59b1
Revert "debugger: Remove feature flag"
This reverts commit 82dfa82ba7c9866153bcd739ee680e6adf4f955f.
Conrad Irwin created
82dfa82
debugger: Remove feature flag
Conrad Irwin created
5405c2c
Standardize on u64 for token counts (#32869)
Previously we were using a mix of `u32` and `usize`, e.g. `max_tokens: usize, max_output_tokens: Option<u32>` in the same `struct`. Although [tiktoken](https://github.com/openai/tiktoken) uses `usize`, token counts should be consistent across targets (e.g. the same model doesn't suddenly get a smaller context window if you're compiling for wasm32), and these token counts could end up getting serialized using a binary protocol, so `usize` is not the right choice for token counts. I chose to standardize on `u64` over `u32` because we don't store many of them (so the extra size should be insignificant) and future models may exceed `u32::MAX` tokens. Release Notes: - N/A
Richard Feldman created
a391d67
supermaven_api: Ensure downloaded Supermaven binary has executable permissions set (#32576)
Closes #32068 Closes #15653 Not entirely sure that it fixes the latter issue, but I am fairly certain given the comments in #32068 and the available logs in the issue. This PR fixes an issue where the Supermaven provider would not leave the "Initializing" stage. This happened due to the downloaded binary missing executable permissions. The change here ensures that freshly downloaded binaries as well as existing binaries downloaded by Zed have executable permissions set. I decided on also adding this for the latter since existing downloads would continue to be broken and Supermaven does not seem to change versions often given the logs provided by users. While I was at it, I also added a `make_file_executable` to the util crate mirroring the method of the `zed_extensions_api` and refactored existing usages where possible to use that method instead. This makes the code slightly more readable in my opinion, yet adds a method to non-unix systems that practically does nothing. I can revert this should that be preferred. Release Notes: - Fixed an issue where the Supermaven completion provider would not leave the "Initializing" stage. --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Finn Evers and Bennet Bo Fenner created
dd850dc
Add note on Opus prompt consumption (#32872)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
morgankrey created
c766f52
Fix diff indicators not restored when reopening remote project (#31384)
Closes #30917 Release Notes: - Fix diff indicators not restored when reopening remote project --------- Co-authored-by: Cole Miller <cole@zed.dev>
feeiyu and Cole Miller created
b686fb2
docs: Fix typo in debugger.md (#32867)
A small silly typo :)
Gilles De Mey created
6c7bcfe
Revert "Bail and signal error when the cwd of a resolved task doesn't exist" (#32866)
Reverts zed-industries/zed#32777
Cole Miller created
b9dc5f9
gpui: Bump blade (#32803)
in #30347 bump blade version, recently I found in my windows platform, after using zed some hours, whole system UI become hang, must reboot. So I try bump blade and then recompile, I found this problem disappear, I really don't known why. Release Notes: - N/A
CharlesChen0823 created
3eca9ef
docs: Add values.yaml files to filetypes for Helm (#32369)
Release Notes: - N/A
qvalentin created
f469575
Show inline previews for LSP document colors (#32816)
https://github.com/user-attachments/assets/ad0fa304-e4fb-4598-877d-c02141f35d6f Closes https://github.com/zed-industries/zed/issues/4678 Also adds the code to support `textDocument/colorPresentation` counterpart that serves as a resolve mechanism for the document colors. The resolve itself is not run though, and the editor does not accommodate color presentations in the editor yet — until a well described use case is provided. Use `lsp_document_colors` editor settings to alter the presentation and turn the feature off. Release Notes: - Start showing inline previews for LSP document colors
Kirill Bulatov created
acb0210
Add epoch interruption to WASM engine for cooperative yielding (#32806)
Prevent extensions from blocking async threads by enabling epoch interruption with 100ms intervals. Extensions will yield control back to the executor regularly during Future::poll operations. Addresses the [discussion](https://github.com/zed-industries/zed/discussions/24515) that goes into depth on why this is important when enabling async support with Wasmtime. Release Notes: - N/A
Ben Brandt created
4bbb7b5
Add setting for minimap on active editor only (#31390)
Release Notes:
- Add a setting to show the minimap only on the current active editor
(file)
- This can be configured on `settings.json`:
```json
{
"minimap": {
"display_in": "active_editor", // defaults to "all_editors"
}
}
```
- The minimap won't hide if you go from an editor pane to the terminal,
the project panel, the search bar, etc. It will only hide if you go from
one editor pane to another.
Preview:

Only the active editor (left) displays the minimap.
Alvaro Parker created
a69ebf0
debugger: Prevent port collision when attaching to existing node debugger (#32862)
We were translating port configuration incorrectly, using it for both attach target and debugger port. This however meant that we were spawning a 2nd process that'd listen on the same port as the existing debugger. Closes #32836 Release Notes: - debugger: Fixed issues with auto-translated Visual Studio Code debug configs for attaching to existing node debugger instances.
Piotr Osiewicz created
336c49b
debuggers: Mark processId as optional field in Delve Attach configurations (#32856)
Closes #32849 Release Notes: - Fixed overly strict validation of Go debugging configurations.
Piotr Osiewicz created
ed4b29f
language_models: Improve token counting for providers (#32853)
We push the usage data whenever we receive it from the provider to make sure the counting is correct after the turn has ended. - [x] Ollama - [x] Copilot - [x] Mistral - [x] OpenRouter - [x] LMStudio Put all the changes into a single PR open to move these to separate PR if that makes the review and testing easier. Release Notes: - N/A
Umesh Yadav created
d4c9522
debugger: Do not query threads when session is still building (#32852)
This should silence a noisy log we see whenever a debug session is started: `2025-06-17T12:06:12+02:00 ERROR [project] no adapter running to send request: ThreadsCommand` Closes #ISSUE Release Notes: - Fixed debugger logs getting clobbered with internal logs about Threads Command whenever a new debug session is created.
Piotr Osiewicz created
4b88090
language_models: Add images support to LMStudio provider (#32741)
Tested with gemma3:4b LMStudio: beta version 0.3.17 Release Notes: - Add images support to LMStudio provider
Umesh Yadav created
6ad9a66
extensions: Add "Debug Adapters" category to the extension store (#32845)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
b13144e
copilot: Allow enterprise to sign in and use copilot (#32296)
This addresses: https://github.com/zed-industries/zed/pull/32248#issuecomment-2952060834. This PR address two main things one allowing enterprise users to use copilot chat and completion while also introducing the new way to handle copilot url specific their subscription. Simplifying the UX around the github copilot and removes the burden of users figuring out what url to use for their subscription. - [x] Pass enterprise_uri to copilot lsp so that it can redirect users to their enterprise server. Ref: https://github.com/github/copilot-language-server-release#configuration-management - [x] Remove the old ui and config language_models.copilot which allowed users to specify their copilot_chat specific endpoint. We now derive that automatically using token endpoint for copilot so that we can send the requests to specific copilot endpoint for depending upon the url returned by copilot server. - [x] Tested this for checking the both enterprise and non-enterprise flow work. Thanks to @theherk for the help to debug and test it. - [ ] Udpdate the zed.dev/docs to refelect how to setup enterprise copilot. What this doesn't do at the moment: * Currently zed doesn't allow to have two seperate accounts as the token used in chat is same as the one generated by lsp. After this changes also this behaviour remains same and users can't have both enterprise and personal copilot installed. P.S: Might need to do some bit of code cleanup and other things but overall I felt this PR was ready for atleast first pass of review to gather feedback around the implementation and code itself. Release Notes: - Add enterprise support for GitHub copilot --------- Signed-off-by: Umesh Yadav <git@umesh.dev>
Umesh Yadav created
c4355d2
Fix MCP settings migration continually adding the same key (#32848)
Release Notes: - N/A
Ben Brandt created
2f3acb6
Fix panic when `editor::OpenSelectionsInMultibuffer` only has pending selection (#32842)
On the panics dashboard, saw this panic of `There must be at least one selection` in `open_locations_in_multibuffer`. Only seems to have happened once in the past month. Fix is to include the pending selection. Since `selections.all()` cannot provide anchor selections, added `selections.all_anchors()` which only really does any work if there is a pending selection. Also fixes a corner case in jump-to-definitions where if the definition is `HoverLink::InlayHint` and the `compute_target_location` fails for all definitions it could potentially also trigger this case (and return `Navigated::Yes` instead of `Navigated::No` Release Notes: - N/A
Michael Sloan created
0e794fa
extensions: Yet another PR for debugger touchups (#32822)
We'll now clean up DAP locators for unloaded extensions and load schemas proper I can now load a custom Ruby extensions with all bells and whistles and use it as my debugger. Release Notes: - N/A
Piotr Osiewicz created
d92d52b
Attempt to log error instead of crash in bracket highlighting (#32837)
Crashes look like:
```
Panic `offset 632 is greater than the snapshot.len() 631` on thread 0 (com.apple.main-thread)
<multi_buffer::MultiBufferSnapshot>::innermost_enclosing_bracket_ranges::<usize>
editor::highlight_matching_bracket::refresh_matching_bracket_highlights
<gpui::app::App>::update_window_id::<bool, <gpui::app::context::Context<editor::Editor>>::subscribe_in<multi_buffer::MultiBuffer, multi_buffer::Event, <editor::Editor>::on_buffer_event>::{closure#0}::{closure#0}>::{closure#0}
<gpui::app::context::Context<editor::Editor>>::subscribe_in::<multi_buffer::MultiBuffer, multi_buffer::Event, <editor::Editor>::on_buffer_event>::{closure#0}
<gpui::app::App>::flush_effects
<project::lsp_store::LocalLspStore>::format_buffer_locally::{closure#0}
<project::lsp_store::LspStore>::format::{closure#1}::{closure#0}::<i32>
```
Though `format_buffer_locally` is not always present. Both issue reports
mention usage of the agent. I suspect this is somehow a result of agent
format-on-save combined with the user's cursor being at the end of the
buffer as it's getting edited by the agent.
The offsets are always off-by-one in the error, so at first I thought
the issue was the condition `head < snapshot.buffer_snapshot.len()`
before setting `tail` to be `head + 1`, but an offset equal to len is
valid. Seems like to get a `to_offset` crash, `head` must be greater
than `len`. Which is quite weird, a selection's offset should never be
out of bounds.
Since this code is just about highlighting brackets, this PR logs an
error instead of crashing in the `head > len` case.
Closes #32732, #32171
Release Notes:
- N/A
Michael Sloan created