Proto commits in zed-industries/zed

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:e5b4cff
Author:Piotr Osiewicz

chore: cleanup debugger.proto

Commit:f143227
Author:Marshall Bowers
Committer:Joseph T. Lyons

language_models: Improve subscription states in the Agent configuration view (#30252) This PR improves the subscription states in the Agent configuration view to the new billing system. Zed Free (legacy): <img width="638" alt="Screenshot 2025-05-08 at 8 42 59 AM" src="https://github.com/user-attachments/assets/7b62d4c1-2a9c-4c6a-aa8f-060730b6d7b3" /> Zed Free (new): <img width="640" alt="Screenshot 2025-05-08 at 8 43 56 AM" src="https://github.com/user-attachments/assets/8a48448e-813e-4633-955d-623d3e6d603c" /> Zed Pro trial: <img width="641" alt="Screenshot 2025-05-08 at 8 45 52 AM" src="https://github.com/user-attachments/assets/1ec7ee62-e954-48e7-8447-4584527307c9" /> Zed Pro: <img width="636" alt="Screenshot 2025-05-08 at 8 47 21 AM" src="https://github.com/user-attachments/assets/f934b2e3-0943-4b78-b8dc-0a31e731d8fb" /> Release Notes: - agent: Improved the subscription-related information in the configuration view.

Commit:0490d25
Author:Marshall Bowers
Committer:Joseph T. Lyons

language_models: Improve subscription states in the Agent configuration view (#30252) This PR improves the subscription states in the Agent configuration view to the new billing system. Zed Free (legacy): <img width="638" alt="Screenshot 2025-05-08 at 8 42 59 AM" src="https://github.com/user-attachments/assets/7b62d4c1-2a9c-4c6a-aa8f-060730b6d7b3" /> Zed Free (new): <img width="640" alt="Screenshot 2025-05-08 at 8 43 56 AM" src="https://github.com/user-attachments/assets/8a48448e-813e-4633-955d-623d3e6d603c" /> Zed Pro trial: <img width="641" alt="Screenshot 2025-05-08 at 8 45 52 AM" src="https://github.com/user-attachments/assets/1ec7ee62-e954-48e7-8447-4584527307c9" /> Zed Pro: <img width="636" alt="Screenshot 2025-05-08 at 8 47 21 AM" src="https://github.com/user-attachments/assets/f934b2e3-0943-4b78-b8dc-0a31e731d8fb" /> Release Notes: - agent: Improved the subscription-related information in the configuration view.

The documentation is generated from this commit.

Commit:b343a8a
Author:Marshall Bowers
Committer:GitHub

language_models: Improve subscription states in the Agent configuration view (#30252) This PR improves the subscription states in the Agent configuration view to the new billing system. Zed Free (legacy): <img width="638" alt="Screenshot 2025-05-08 at 8 42 59 AM" src="https://github.com/user-attachments/assets/7b62d4c1-2a9c-4c6a-aa8f-060730b6d7b3" /> Zed Free (new): <img width="640" alt="Screenshot 2025-05-08 at 8 43 56 AM" src="https://github.com/user-attachments/assets/8a48448e-813e-4633-955d-623d3e6d603c" /> Zed Pro trial: <img width="641" alt="Screenshot 2025-05-08 at 8 45 52 AM" src="https://github.com/user-attachments/assets/1ec7ee62-e954-48e7-8447-4584527307c9" /> Zed Pro: <img width="636" alt="Screenshot 2025-05-08 at 8 47 21 AM" src="https://github.com/user-attachments/assets/f934b2e3-0943-4b78-b8dc-0a31e731d8fb" /> Release Notes: - agent: Improved the subscription-related information in the configuration view.

The documentation is generated from this commit.

Commit:bbfcd88
Author:Piotr Osiewicz
Committer:GitHub

debugger: Allow locators to generate full debug scenarios (#30014) Closes #ISSUE Release Notes: - N/A --------- Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Remco Smits <djsmits12@gmail.com>

Commit:68793c0
Author:Conrad Irwin
Committer:GitHub

Debug adapters log to console (#29957) Closes #ISSUE Release Notes: - N/A

Commit:7016127
Author:Conrad Irwin
Committer:Conrad Irwin

Log debug adapter progress to the Console Fixes status updates from remote projects

Commit:185bd06
Author:Marshall Bowers
Committer:Joseph T. Lyons

collab: Pass down billing information in `UpdatePlan` message (#29929) This PR updates the `UpdatePlan` message to include some additional information about the user's billing subscription usage. Release Notes: - N/A

Commit:10bdf39
Author:Marshall Bowers
Committer:GitHub

collab: Pass down billing information in `UpdatePlan` message (#29929) This PR updates the `UpdatePlan` message to include some additional information about the user's billing subscription usage. Release Notes: - N/A

Commit:93f195c
Author:Kirill Bulatov
Committer:GitHub

sibling of e14d078f8ac04df578e1dab3c698d93c7533352a

Commit:6b325a4
Author:Kirill Bulatov
Committer:GitHub

sibling of e14d078f8ac04df578e1dab3c698d93c7533352a

Commit:ba59305
Author:Kirill Bulatov
Committer:GitHub

Use rust-analyzer's flycheck as source of cargo diagnostics (#29779) Follow-up of https://github.com/zed-industries/zed/pull/29706 Instead of doing `cargo check` manually, use rust-analyzer's flycheck: at the cost of more sophisticated check command configuration, we keep much less code in Zed, and get a proper progress report. User-facing UI does not change except `diagnostics_fetch_command` and `env` settings removed from the diagnostics settings. Release Notes: - N/A

Commit:e1e3f2e
Author:Cole Miller
Committer:GitHub

Improve handling of remote-tracking branches in the picker (#29744) Release Notes: - Changed the git branch picker to make remote-tracking branches less prominent --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Commit:2a319ef
Author:Kirill Bulatov
Committer:GitHub

Add `editor::GoToParentModule` for rust-analyzer backed projects (#29755) Support rust-analyzer's "go to parent module" action https://rust-analyzer.github.io/book/contributing/lsp-extensions.html#parent-module Release Notes: - Added `editor::GoToParentModule` for rust-analyzer backed projects --------- Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>

Commit:55c7197
Author:Cole Miller

Don't show history matches for remote-tracking branches Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Commit:e07ffe7
Author:Kirill Bulatov
Committer:GitHub

Allow to fetch cargo diagnostics separately (#29706) Adjusts the way `cargo` and `rust-analyzer` diagnostics are fetched into Zed. Nothing is changed for defaults: in this mode, Zed does nothing but reports file updates, which trigger rust-analyzers' mechanisms: * generating internal diagnostics, which it is able to produce on the fly, without blocking cargo lock. Unfortunately, there are not that many diagnostics in r-a, and some of them have false-positives compared to rustc ones * running `cargo check --workspace --all-targets` on each file save, taking the cargo lock For large projects like Zed, this might take a while, reducing the ability to choose how to work with the project: e.g. it's impossible to save multiple times without long diagnostics refreshes (may happen automatically on e.g. focus loss), save the project and run it instantly without waiting for cargo check to finish, etc. In addition, it's relatively tricky to reconfigure r-a to run a different command, with different arguments and maybe different env vars: that would require a language server restart (and a large project reindex) and fiddling with multiple JSON fields. The new mode aims to separate out cargo diagnostics into its own loop so that all Zed diagnostics features are supported still. For that, an extra mode was introduced: ```jsonc "rust": { // When enabled, Zed runs `cargo check --message-format=json`-based commands and // collect cargo diagnostics instead of rust-analyzer. "fetch_cargo_diagnostics": false, // A command override for fetching the cargo diagnostics. // First argument is the command, followed by the arguments. "diagnostics_fetch_command": [ "cargo", "check", "--quiet", "--workspace", "--message-format=json", "--all-targets", "--keep-going" ], // Extra environment variables to pass to the diagnostics fetch command. "env": {} } ``` which calls to cargo, parses its output and mixes in with the existing diagnostics: https://github.com/user-attachments/assets/e986f955-b452-4995-8aac-3049683dd22c Release Notes: - Added a way to get diagnostics from cargo and rust-analyzer without mutually locking each other - Added `ctrl-r` binding to refresh diagnostics in the project diagnostics editor context

Commit:2d775b6
Author:Kirill Bulatov
Committer:Kirill Bulatov

Draft the diagnostics update process

Commit:19f0c2d
Author:Conrad Irwin
Committer:Mikayla Maki

Tidy up diagnostics more (#29629) - Stop merging same row diagnostics - (for Rust) show code fragments surrounded by `'s in monospace Co-authored-by: Serge Radinovich <sergeradinovich@gmail.com> Closes #29362 Release Notes: - diagnostics: Diagnostics are no longer merged when they're on the same line - rust: Diagnostics now show code snippets in monospace font: <img width="551" alt="Screenshot 2025-04-29 at 16 13 45" src="https://github.com/user-attachments/assets/d289be31-717d-404f-a76a-a0cda3e96fbe" /> Co-authored-by: Serge Radinovich <sergeradinovich@gmail.com>

Commit:e364e48
Author:Conrad Irwin
Committer:GitHub

Tidy up diagnostics more (#29629) - Stop merging same row diagnostics - (for Rust) show code fragments surrounded by `'s in monospace Co-authored-by: Serge Radinovich <sergeradinovich@gmail.com> Closes #29362 Release Notes: - diagnostics: Diagnostics are no longer merged when they're on the same line - rust: Diagnostics now show code snippets in monospace font: <img width="551" alt="Screenshot 2025-04-29 at 16 13 45" src="https://github.com/user-attachments/assets/d289be31-717d-404f-a76a-a0cda3e96fbe" /> Co-authored-by: Serge Radinovich <sergeradinovich@gmail.com>

Commit:91f55b8
Author:Kirill Bulatov
Committer:Kirill Bulatov

Draft the diagnostics update process

Commit:93cf95f
Author:Marshall Bowers
Committer:Joseph T. Lyons

collab: Remove `CountLanguageModelTokens` RPC message (#29314) This PR removes the `CountLanguageModelTokens` RPC message from collab. We were only using this for Google AI models through the Zed provider (which is only available to Zed staff). For now we're returning `0`, but will bring back soon. Release Notes: - N/A

Commit:8a68fad
Author:Marshall Bowers
Committer:Joseph T. Lyons

collab: Remove code for embeddings (#29310) This PR removes the embeddings-related code from collab and the protocol, as we weren't using it anywhere. Release Notes: - N/A

Commit:67615b9
Author:Piotr Osiewicz
Committer:GitHub

debugger/tasks: Remove TaskType enum (#29208) Closes #ISSUE Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Conrad <conrad@zed.dev>

Commit:5e83839
Author:Piotr Osiewicz

Pass environment variables through to the debuggee

Commit:bab9046
Author:Piotr Osiewicz

Pass through SpawnInTerminal, not tasktemplates

Commit:d22c9a2
Author:Piotr Osiewicz

WIP Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Commit:644c7b6
Author:Piotr Osiewicz

Rework locators a bit so that all of them are queried.

Commit:2b1a220
Author:Piotr Osiewicz

Merge branch 'main' into remove-task-type

Commit:9d10489
Author:Conrad Irwin
Committer:GitHub

Show diagnostic codes (#29296) Closes #28135 Closes #4388 Closes #28136 Release Notes: - diagnostics: Show the diagnostic code if available --------- Co-authored-by: Neo Nie <nihgwu@live.com> Co-authored-by: Zed AI <ai+claude-3.7@zed.dev>

Commit:74442b6
Author:Marshall Bowers
Committer:GitHub

collab: Remove `CountLanguageModelTokens` RPC message (#29314) This PR removes the `CountLanguageModelTokens` RPC message from collab. We were only using this for Google AI models through the Zed provider (which is only available to Zed staff). For now we're returning `0`, but will bring back soon. Release Notes: - N/A

Commit:ecc600a
Author:Marshall Bowers
Committer:GitHub

collab: Remove code for embeddings (#29310) This PR removes the embeddings-related code from collab and the protocol, as we weren't using it anywhere. Release Notes: - N/A

Commit:c00bf4e
Author:Smit Barmase
Committer:GitHub

sibling of ba588161d9e0f36efeffec313ad31172235ad4cb

Commit:abf9798
Author:Piotr Osiewicz

Add Debug kind to settings

Commit:556f24f
Author:Conrad Irwin

Show diagnostics codes This also updates the hover popover to use the same markdown as the block diagnostics

Commit:a21a593
Author:Piotr Osiewicz

Another checkpoint

Commit:9d35f03
Author:Conrad Irwin
Committer:GitHub

debugger: More tidy up for SSH (#28993) Split `locator` out of DebugTaskDefinition to make it clearer when location needs to happen. Release Notes: - N/A --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Cole Miller <m@cole-miller.net>

Commit:9330320
Author:Nathan Sobo
Committer:Joseph T. Lyons

Rename regex search tool to grep and accept an include glob pattern (#29100) This PR renames the `regex_search` tool to `grep` because I think it conveys more meaning to the model, the idea of searching the filesystem with a regular expression. It's also one word and the model seems to be using it effectively after some additional prompt tuning. It also takes an include pattern to filter on the specific files we try to search. I'd like to encourage the model to scope its searches more aggressively, as in my testing, I'm only seeing it filter on file extension. Release Notes: - N/A

Commit:107d8ca
Author:Nathan Sobo
Committer:GitHub

Rename regex search tool to grep and accept an include glob pattern (#29100) This PR renames the `regex_search` tool to `grep` because I think it conveys more meaning to the model, the idea of searching the filesystem with a regular expression. It's also one word and the model seems to be using it effectively after some additional prompt tuning. It also takes an include pattern to filter on the specific files we try to search. I'd like to encourage the model to scope its searches more aggressively, as in my testing, I'm only seeing it filter on file extension. Release Notes: - N/A

Commit:e68cae9
Author:Conrad Irwin

WIPWIPWIWP

Commit:e45d293
Author:Kirill Bulatov
Committer:GitHub

sibling of 7badd6053ddc0371625fd6fdcb98c50e7f8427c4

Commit:f181d59
Author:Conrad Irwin
Committer:Conrad Irwin

Merge branch 'main' into debugger-ssh

Commit:1bdcf31
Author:Marshall Bowers
Committer:Joseph T. Lyons

proto: Add `ZedProTrial` to `Plan` (#28885) This PR adds the `ZedProTrial` member to the `Plan` enum. Release Notes: - N/A

Commit:ba7f886
Author:Smit Barmase
Committer:GitHub

project: Show detached head commit SHA in branch pickers (#29007) When Git is in a detached HEAD state, the branch is `None`, and we can't get any meaningful information from it. This PR adds a `head_commit` field to the snapshot, which is always populated with the HEAD details, even when the branch is `None`. This also pave path to fix: https://github.com/zed-industries/zed/issues/28736 git panel branch picker (before, after): <img width="197" alt="image" src="https://github.com/user-attachments/assets/0b6abbba-2988-4890-a708-bcd8aad84f26" /> <img width="198" alt="image" src="https://github.com/user-attachments/assets/4b08b1a8-5e79-4aa3-a44e-932249602c18" /> title bar branch picker (before, after): <img width="183" alt="image" src="https://github.com/user-attachments/assets/d94357f8-a4da-4d60-8ddd-fdd978b99fdf" /> <img width="228" alt="image" src="https://github.com/user-attachments/assets/d20824a1-9279-44d6-afd1-bf9319fc50e4" /> Release Notes: - Added head commit SHA information to the Git branch picker in the title bar and Git panel.

Commit:f9a0782
Author:Conrad Irwin

TEMP

Commit:1e59dbb
Author:Anthony

Fix some of the compiler errors

Commit:7f1fb6c
Author:Conrad Irwin

MOAR

Commit:7e928dd
Author:Max Brunsfeld
Committer:GitHub

Implement dragging external files to remote projects (#28987) Release Notes: - Added the ability to copy external files into remote projects by dragging them onto the project panel. --------- Co-authored-by: Peter Tripp <petertripp@gmail.com>

Commit:29987f9
Author:Conrad Irwin

TEMP

Commit:d791977
Author:Conrad Irwin
Committer:GitHub

sibling of 040046ed2ac4b5051a9005f63d0aad6603bb9711

Commit:2eaddd4
Author:Marshall Bowers
Committer:Thomas Mickley-Doyle

proto: Add `ZedProTrial` to `Plan` (#28885) This PR adds the `ZedProTrial` member to the `Plan` enum. Release Notes: - N/A

Commit:efcd97f
Author:Marshall Bowers
Committer:Thomas Mickley-Doyle

proto: Add `ZedProTrial` to `Plan` (#28885) This PR adds the `ZedProTrial` member to the `Plan` enum. Release Notes: - N/A

Commit:97b044a
Author:Marshall Bowers
Committer:GitHub

proto: Add `ZedProTrial` to `Plan` (#28885) This PR adds the `ZedProTrial` member to the `Plan` enum. Release Notes: - N/A

Commit:78ecc3c
Author:Smit Barmase
Committer:GitHub

git: Amend (#28187) Adds git amend support. - [x] Turn existing commit button into split button - [x] Clean up + Handle shortcuts/focus cases - [x] Test remote Release Notes: - Added git amend support. --------- Co-authored-by: Cole Miller <cole@zed.dev>

Commit:3c6b498
Author:Conrad Irwin
Committer:GitHub

sibling of c2e3134963c92f26cff94c7cc29a08ea7e57b180

Commit:1609bf4
Author:Cole Miller
Committer:GitHub

sibling of 66b3e03baaa660d4ace61e76f65967a4f1ad3fad

Commit:8ede292
Author:Cole Miller
Committer:GitHub

sibling of b687a5e56dd1320dd9014b33edae160d5b1030b2

Commit:b15ee1b
Author:João Marcos
Committer:GitHub

Add dedicated actions for `LSP` completions insertion mode (#28121) Adds actions so you can have customized keybindings for `insert` and `replace` modes. And add `shift-enter` as a default for `replace`, this will override the default setting `completions.lsp_insert_mode` which is set to `replace_suffix`, which tries to "smartly" decide whether to replace or insert based on the surrounding text. For those who come from VSCode, if you want to mimic their behavior, you only have to set `completions.lsp_insert_mode` to `insert`. If you want `tab` and `enter` to do different things, you need to remap them, here is an example: ```jsonc [ // ... { "context": "Editor && showing_completions", "bindings": { "enter": "editor::ConfirmCompletionInsert", "tab": "editor::ConfirmCompletionReplace" } }, ] ``` Closes #24577 - [x] Make LSP completion insertion mode decision in guest's machine (host is currently deciding it and not allowing guests to have their own setting for it) - [x] Add shift-enter as a hotkey for `replace` by default. - [x] Test actions. - [x] Respect the setting being specified per language, instead of using the "defaults". - [x] Move `insert_range` of `Completion` to the Lsp variant of `.source`. - [x] Fix broken default, forgotten after https://github.com/zed-industries/zed/pull/27453#pullrequestreview-2736906628, should be `replace_suffix` and not `insert`. Release Notes: - LSP completions: added actions `ConfirmCompletionInsert` and `ConfirmCompletionReplace` that control how completions are inserted, these override `completions.lsp_insert_mode`, by default, `shift-enter` triggers `ConfirmCompletionReplace` which replaces the whole word.

Commit:39c98ce
Author:Kirill Bulatov
Committer:GitHub

Support tasks from rust-analyzer (#28359) (and any other LSP server in theory, if it exposes any LSP-ext endpoint for the same) Closes https://github.com/zed-industries/zed/issues/16160 * adds a way to disable tree-sitter tasks (the ones from the plugins, enabled by default) with ```json5 "languages": { "Rust": "tasks": { "enabled": false } } } ``` language settings * adds a way to disable LSP tasks (the ones from the rust-analyzer language server, enabled by default) with ```json5 "lsp": { "rust-analyzer": { "enable_lsp_tasks": false, } } ``` * adds rust-analyzer tasks into tasks modal and gutter: <img width="1728" alt="modal" src="https://github.com/user-attachments/assets/22b9cee1-4ffb-4c9e-b1f1-d01e80e72508" /> <img width="396" alt="gutter" src="https://github.com/user-attachments/assets/bd818079-e247-4332-bdb5-1b7cb1cce768" /> Release Notes: - Added tasks from rust-analyzer

Commit:a90c10e
Author:Kirill Bulatov
Committer:GitHub

sibling of 1264e7a200e62f5f1df757aa9a2b0fd2ebeb231c

Commit:35ca1d1
Author:João Marcos
Committer:João Marcos

add new actions, add insert_range send insert_range via grpc and decide between insert_range and replace_range in guest client make new actions take precedence over settings move decision check

Commit:a4e5aa4
Author:Max Brunsfeld
Committer:Thomas Mickley-Doyle

Split protobufs into separate files (#28130) The one big protobuf file was getting a bit difficult to navigate. I split it into separate topic-specific files that import each other. Release Notes: - N/A

Commit:d2a665b
Author:Kirill Bulatov
Committer:Thomas Mickley-Doyle

Allow to temporarily stop LSP servers (#28034) Same as `editor::RestartLanguageServer`, now there's an `editor::StopLanguageServer` action that stops all language servers, related to the currently opened editor. Opening another singleton editor with the same language or changing selections in a multi buffer will bring the servers back up. Release Notes: - Added a way to temporarily stop LSP servers --------- Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Commit:8ab252c
Author:Max Brunsfeld
Committer:GitHub

Split protobufs into separate files (#28130) The one big protobuf file was getting a bit difficult to navigate. I split it into separate topic-specific files that import each other. Release Notes: - N/A

Commit:b0181b5
Author:Kirill Bulatov
Committer:GitHub

sibling of c674e8d62d1925668e4c18af01efd300d8630aa1

Commit:0c82541
Author:Kirill Bulatov
Committer:GitHub

Allow to temporarily stop LSP servers (#28034) Same as `editor::RestartLanguageServer`, now there's an `editor::StopLanguageServer` action that stops all language servers, related to the currently opened editor. Opening another singleton editor with the same language or changing selections in a multi buffer will bring the servers back up. Release Notes: - Added a way to temporarily stop LSP servers --------- Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Commit:e7290df
Author:Cole Miller
Committer:GitHub

Finish removing git repository state and scanning logic from worktrees (#27568) This PR completes the process of moving git repository state storage and scanning logic from the worktree crate to `project::git_store`. Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Conrad <conrad@zed.dev>

Commit:ada8b0f
Author:Max Brunsfeld
Committer:GitHub

Show commit author, not committer (#27856) Release Notes: - Fixed a bug where the git panel displayed a commit's committer in place of its author.

Commit:8546dc1
Author:Max Brunsfeld
Committer:GitHub

Allow viewing past commits in Zed (#27636) This PR adds functionality for loading the diff for an arbitrary git commit, and displaying it in a tab. To retrieve the diff for the commit, I'm using a single `git cat-file --batch` invocation to efficiently load both the old and new versions of each file that was changed in the commit. Todo * Features * [x] Open the commit view when clicking the most recent commit message in the commit panel * [x] Open the commit view when clicking a SHA in a git blame column * [x] Open the commit view when clicking a SHA in a commit tooltip * [x] Make it work over RPC * [x] Allow buffer search in commit view * [x] Command palette action to open the commit for the current blame line * Styling * [x] Add a header that shows the author, timestamp, and the full commit message * [x] Remove stage/unstage buttons in commit view * [x] Truncate the commit message in the tab * Bugs * [x] Dedup commit tabs within a pane * [x] Add a tooltip to the tab Release Notes: - Added the ability to show past commits in Zed. You can view the most recent commit by clicking its message in the commit panel. And when viewing a git blame, you can show any commit by clicking its sha.

Commit:d517a21
Author:Anthony Eid
Committer:GitHub

Debugger: Add conditional and hit conditional breakpoint functionality (#27760) This PR adds conditional and hit condition breakpoint functionality cc @osiewicz Co-authored-by: Remco Smits: <djsmits12@gmail.com> Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Remco Smits <djsmits12@gmail.com>

Commit:edf712d
Author:Piotr Osiewicz
Committer:GitHub

toolchains: Add support for relative paths (#27777) Closes #ISSUE Release Notes: - N/A

Commit:e1e8c17
Author:Kirill Bulatov
Committer:GitHub

Fix remote clients unable to query custom, lsp_ext, commands (#27775) Closes https://github.com/zed-industries/zed/issues/20583 Closes https://github.com/zed-industries/zed/issues/27133 A preparation for rust-analyzer's LSP tasks fetching, ensures all remote clients are able to query custom, lsp_ext, commands. Release Notes: - Fixed remote clients unable to query custom, lsp_ext, commands

Commit:f86977e
Author:Piotr Osiewicz
Committer:GitHub

debugger: Touchups to log breakpoints (#27675) This is a slight refactor that flattens Breakpoint struct in anticipation of condition/hit breakpoints. It also adds a slight delay before breakpoints are shown on gutter hover to make breakpoints less attention grabbing. Release Notes: - N/A

Commit:94939e7
Author:Smit Barmase
Committer:GitHub

sibling of 77856bf01758a0e51a52f65690f87f78b2ead290

Commit:6924720
Author:Cole Miller
Committer:GitHub

Move repository state RPC handlers to the GitStore (#27391) This is another in the series of PRs to make the GitStore own all repository state and enable better concurrency control for git repository scans. After this PR, the `RepositoryEntry`s stored in worktree snapshots are used only as a staging ground for local GitStores to pull from after git-related events; non-local worktrees don't store them at all, although this is not reflected in the types. GitTraversal and other places that need information about repositories get it from the GitStore. The GitStore also takes over handling of the new UpdateRepository and RemoveRepository messages. However, repositories are still discovered and scanned on a per-worktree basis, and we're still identifying them by the (worktree-specific) project entry ID of their working directory. - [x] Remove WorkDirectory from RepositoryEntry - [x] Remove worktree IDs from repository-related RPC messages - [x] Handle UpdateRepository and RemoveRepository RPCs from the GitStore Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Commit:72318df
Author:Bennet Bo Fenner
Committer:GitHub

lsp: Add support for `textDocument/documentSymbol` (#27488) This PR adds support for retrieving the outline of a specific buffer/document from the LSP. E.g. for this code (`crates/cli/src/cli.rs`): ```rs use collections::HashMap; pub use ipc_channel::ipc; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] pub struct IpcHandshake { pub requests: ipc::IpcSender<CliRequest>, pub responses: ipc::IpcReceiver<CliResponse>, } #[derive(Debug, Serialize, Deserialize)] pub enum CliRequest { Open { paths: Vec<String>, urls: Vec<String>, wait: bool, open_new_workspace: Option<bool>, env: Option<HashMap<String, String>>, }, } #[derive(Debug, Serialize, Deserialize)] pub enum CliResponse { Ping, Stdout { message: String }, Stderr { message: String }, Exit { status: i32 }, } /// When Zed started not as an *.app but as a binary (e.g. local development), /// there's a possibility to tell it to behave "regularly". pub const FORCE_CLI_MODE_ENV_VAR_NAME: &str = "ZED_FORCE_CLI_MODE"; ``` Rust-analyzer responds with: ``` Symbol: 'IpcHandshake' - Struct - (4:0-8:1) (5:11-5:23) Symbol: 'requests' - Field - (6:4-6:44) (6:8-6:16) Symbol: 'responses' - Field - (7:4-7:48) (7:8-7:17) Symbol: 'CliRequest' - Enum - (10:0-19:1) (11:9-11:19) Symbol: 'Open' - EnumMember - (12:4-18:5) (12:4-12:8) Symbol: 'paths' - Field - (13:8-13:26) (13:8-13:13) Symbol: 'urls' - Field - (14:8-14:25) (14:8-14:12) Symbol: 'wait' - Field - (15:8-15:18) (15:8-15:12) Symbol: 'open_new_workspace' - Field - (16:8-16:40) (16:8-16:26) Symbol: 'env' - Field - (17:8-17:44) (17:8-17:11) Symbol: 'CliResponse' - Enum - (21:0-27:1) (22:9-22:20) Symbol: 'Ping' - EnumMember - (23:4-23:8) (23:4-23:8) Symbol: 'Stdout' - EnumMember - (24:4-24:30) (24:4-24:10) Symbol: 'message' - Field - (24:13-24:28) (24:13-24:20) Symbol: 'Stderr' - EnumMember - (25:4-25:30) (25:4-25:10) Symbol: 'message' - Field - (25:13-25:28) (25:13-25:20) Symbol: 'Exit' - EnumMember - (26:4-26:24) (26:4-26:8) Symbol: 'status' - Field - (26:11-26:22) (26:11-26:17) Symbol: 'FORCE_CLI_MODE_ENV_VAR_NAME' - Constant - (29:0-31:67) (31:10-31:37) ``` We'll use this to reference specific symbols in assistant2 Release Notes: - N/A

Commit:d70ac64
Author:Anthony Eid
Committer:GitHub

Allow enabling/disabling breakpoints (#27280) This PR adds the ability to enable/disable breakpoints. It also fixes a bug where toggling a log breakpoint from the breakpoint context menu would add a standard breakpoint on top of the log breakpoint instead of deleting it. todo: - [x] Add `BreakpointState` field Breakpoint that manages if a breakpoint is active or not - [x] Don't send disabled breakpoints to DAP servers - in progress - [x] Half the opacity of disabled breakpoints - in progress - [x] Add `BreakpointState` to database - [x] Editor test for enabling/disabling breakpoints - [ ] Integration Test to make sure we don't send disabled breakpoints to DAP servers - [x] Database test to make sure we properly serialize/deserialize BreakpointState Release Notes: - N/A --------- Co-authored-by: Piotr <piotr@zed.dev> Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Commit:a709d4c
Author:Bennet Bo Fenner
Committer:GitHub

assistant: Add support for `claude-3-7-sonnet-thinking` (#27085) Closes #25671 Release Notes: - Added support for `claude-3-7-sonnet-thinking` in the assistant panel --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Agus Zubiaga <hi@aguz.me>

Commit:bc1c0a2
Author:Cole Miller
Committer:GitHub

Separate repository state synchronization from worktree synchronization (#27140) This PR updates our DB schemas and wire protocol to separate the synchronization of git statuses and other repository state from the synchronization of worktrees. This paves the way for moving the code that executes git status updates out of the `worktree` crate and onto the new `GitStore`. That end goal is motivated by two (related) points: - Disentangling git status updates from the worktree's `BackgroundScanner` will allow us to implement a simpler concurrency story for those updates, hopefully fixing some known but elusive bugs (upstream state not updating after push; statuses getting out of sync in remote projects). - By moving git repository state to the project-scoped `GitStore`, we can get rid of the duplication that currently happens when two worktrees are associated with the same git repository. Co-authored-by: Max <max@zed.dev> Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Commit:d51cd15
Author:Kirill Bulatov
Committer:GitHub

Remove an unused field in Diagnostic from zed.proto (#27091) Release Notes: - N/A

Commit:41a60ff
Author:Remco Smits
Committer:GitHub

Debugger implementation (#13433) ### DISCLAIMER > As of 6th March 2025, debugger is still in development. We plan to merge it behind a staff-only feature flag for staff use only, followed by non-public release and then finally a public one (akin to how Git panel release was handled). This is done to ensure the best experience when it gets released. ### END OF DISCLAIMER **The current state of the debugger implementation:** https://github.com/user-attachments/assets/c4deff07-80dd-4dc6-ad2e-0c252a478fe9 https://github.com/user-attachments/assets/e1ed2345-b750-4bb6-9c97-50961b76904f ---- All the todo's are in the following channel, so it's easier to work on this together: https://zed.dev/channel/zed-debugger-11370 If you are on Linux, you can use the following command to join the channel: ```cli zed https://zed.dev/channel/zed-debugger-11370 ``` ## Current Features - Collab - Breakpoints - Sync when you (re)join a project - Sync when you add/remove a breakpoint - Sync active debug line - Stack frames - Click on stack frame - View variables that belong to the stack frame - Visit the source file - Restart stack frame (if adapter supports this) - Variables - Loaded sources - Modules - Controls - Continue - Step back - Stepping granularity (configurable) - Step into - Stepping granularity (configurable) - Step over - Stepping granularity (configurable) - Step out - Stepping granularity (configurable) - Debug console - Breakpoints - Log breakpoints - line breakpoints - Persistent between zed sessions (configurable) - Multi buffer support - Toggle disable/enable all breakpoints - Stack frames - Click on stack frame - View variables that belong to the stack frame - Visit the source file - Show collapsed stack frames - Restart stack frame (if adapter supports this) - Loaded sources - View all used loaded sources if supported by adapter. - Modules - View all used modules (if adapter supports this) - Variables - Copy value - Copy name - Copy memory reference - Set value (if adapter supports this) - keyboard navigation - Debug Console - See logs - View output that was sent from debug adapter - Output grouping - Evaluate code - Updates the variable list - Auto completion - If not supported by adapter, we will show auto-completion for existing variables - Debug Terminal - Run custom commands and change env values right inside your Zed terminal - Attach to process (if adapter supports this) - Process picker - Controls - Continue - Step back - Stepping granularity (configurable) - Step into - Stepping granularity (configurable) - Step over - Stepping granularity (configurable) - Step out - Stepping granularity (configurable) - Disconnect - Restart - Stop - Warning when a debug session exited without hitting any breakpoint - Debug view to see Adapter/RPC log messages - Testing - Fake debug adapter - Fake requests & events --- Release Notes: - N/A --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com> Co-authored-by: Piotr <piotr@zed.dev>

Commit:8a31dca
Author:Kirill Bulatov
Committer:GitHub

Use textDocument/codeLens data in the actions menu when applicable #2 (#26848) Re-applies what's been reverted in https://github.com/zed-industries/zed/pull/26832 with an action-related fix in https://github.com/zed-industries/zed/commit/64b5d37d324176cc7b819418f46724cd4c67393d Before, actions were resolved only if `data` is present and either of the possible fields is empty: https://github.com/zed-industries/zed/blob/e842b4eade368127f01944f1b442016edd6b292d/crates/project/src/lsp_store.rs#L1632-L1633 But Zed resolves completions and inlays once, unconditionally, and the reverted PR applied the same strategy to actions. That did not work despite the spec not forbidding `data`-less actions to be resolved. Soon, it starts to work due to https://github.com/rust-lang/rust-analyzer/pull/19369 but it seems safer to restore the original filtering code. Code lens have no issues with `data`-less resolves: https://github.com/rust-lang/rust-analyzer/blob/220d913cbcd05f9b7635179a98c685f31821a572/crates/rust-analyzer/src/handlers/request.rs#L1618-L1620 so the same approach as completions and inlays is kept: resolve once. Release Notes: - N/A

Commit:021d658
Author:Marshall Bowers
Committer:GitHub

Revert "Use `textDocument/codeLens` data in the actions menu when applicable (#26811)" (#26832) This reverts commit b61171f1526f00c9916a5429af3d95b33d560d56. This PR reverts #26811, as it has broken `rust-analyzer` code actions. With this commit reverted my code actions are working again. Release Notes: - Community: Reverted https://github.com/zed-industries/zed/pull/26811.

Commit:b61171f
Author:Kirill Bulatov
Committer:GitHub

Use `textDocument/codeLens` data in the actions menu when applicable (#26811) Similar to how tasks are fetched via LSP, also queries for document's code lens and filters the ones with the commands, supported in server capabilities. Whatever's left and applicable to the range given, is added to the actions menu: ![image](https://github.com/user-attachments/assets/6161e87f-f4b4-4173-8bf9-30db5e94b1ce) This way, Zed can get more actions to run, albeit neither r-a nor vtsls seem to provide anything by default. Currently, there are no plans to render code lens the way as in VSCode, it's just the extra actions that are show in the menu. ------------------ As part of the attempts to use rust-analyzer LSP data about the runnables, I've explored a way to get this data via standard LSP. When particular experimental client capabilities are enabled (similar to how clangd does this now), r-a starts to send back code lens with the data needed to run a cargo command: ``` {"jsonrpc":"2.0","id":48,"result":{"range":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}},"command":{"title":"▶︎ Run Tests","command":"rust-analyzer.runSingle","arguments":[{"label":"test-mod tests::ecparser","location":{"targetUri":"file:///Users/someonetoignore/work/ec4rs/src/tests/ecparser.rs","targetRange":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}},"targetSelectionRange":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}}},"kind":"cargo","args":{"environment":{"RUSTC_TOOLCHAIN":"/Users/someonetoignore/.rustup/toolchains/1.85-aarch64-apple-darwin"},"cwd":"/Users/someonetoignore/work/ec4rs","overrideCargo":null,"workspaceRoot":"/Users/someonetoignore/work/ec4rs","cargoArgs":["test","--package","ec4rs","--lib"],"executableArgs":["tests::ecparser","--show-output"]}}]}}} ``` This data is passed as is to VSCode task processor, registered in https://github.com/rust-lang/rust-analyzer/blob/60cd01864a2d0d6e2231becee402ba063b59dfa1/editors/code/src/main.ts#L195 where it gets eventually executed as a VSCode's task, all handled by the r-a's extension code. rust-analyzer does not declare server capabilities for such tasks, and has no `workspace/executeCommand` handle, and Zed needs an interactive terminal output during the test runs, so we cannot ask rust-analyzer more than these descriptions. Given that Zed needs experimental capabilities set to get these lens: https://github.com/rust-lang/rust-analyzer/blob/60cd01864a2d0d6e2231becee402ba063b59dfa1/editors/code/src/client.ts#L318-L327 and that the lens may contain other odd tasks (e.g. docs opening or references lookup), a protocol extension to get runnables looks more preferred than lens: https://rust-analyzer.github.io/book/contributing/lsp-extensions.html#runnables This PR does not include any work on this direction, limiting to the general code lens support. As a proof of concept, it's possible to get the lens and even attempt to run it, to no avail: ![image](https://github.com/user-attachments/assets/56950880-d387-48f9-b865-727f97b5633b) Release Notes: - Used `textDocument/codeLens` data in the actions menu when applicable

Commit:55585e6
Author:Kirill Bulatov
Committer:GitHub

sibling of 5268e7431513b5fdcb5e65272d11db1aee683361

Commit:7fcc3d1
Author:Kirill Bulatov
Committer:GitHub

sibling of 8d6abf65375089b2aa2b1c4536802639c26cce23

Commit:766b1a1
Author:Alex Ozer
Committer:GitHub

sibling of 0ec15d6b02f4c0775c11e0f5dc3be6959ce7a75a

Commit:7fc05b3
Author:Conrad Irwin
Committer:GitHub

sibling of c8b782d87055f9024095b6cc13d5721f529be4bc

Commit:91c2099
Author:Kirill Bulatov
Committer:GitHub

Support word-based completions (#26410) Closes https://github.com/zed-industries/zed/issues/4957 https://github.com/user-attachments/assets/ff491378-376d-48ec-b552-6cc80f74200b Adds `"completions"` language settings section, to configure LSP and word completions per language. Word-based completions may be turned on never, always (returned along with the LSP ones), and as a fallback if no LSP completion items were returned. Future work: * words are matched with the same fuzzy matching code that the rest of the completions are This might worsen the completion menu's usability even more, and will require work on better completion sorting. * completion entries currently have no icons or other ways to indicate those are coming from LSP or from word search, or from something else * we may work with language scopes more intelligently, group words by them and distinguish during completions Release Notes: - Supported word-based completions --------- Co-authored-by: Max Brunsfeld <max@zed.dev>

Commit:828dd3c
Author:Mikayla Maki
Committer:Mikayla Maki

Add git init button (#26522) Because why not Release Notes: - N/A

Commit:7ef10d5
Author:Julia Ryan
Committer:GitHub

sibling of 2b94a35aaabc630ce6d89394085efb38935c58e8

Commit:1187e3d
Author:Mikayla Maki
Committer:GitHub

Add git init button (#26522) Because why not Release Notes: - N/A

Commit:036c123
Author:Mikayla Maki
Committer:GitHub

Add git init button (#26522) Because why not Release Notes: - N/A

Commit:0e13906
Author:Conrad Irwin
Committer:GitHub

sibling of ff1d78df3bf7ab8ef9e28c17a843a16d3b0126a2

Commit:f4028ef
Author:gcp-cherry-pick-bot[bot]
Committer:GitHub

Unwind deprecated permalinks code (cherry-pick #26395) (#26426) Cherry-picked Unwind deprecated permalinks code (#26395) Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Commit:c37d6d5
Author:Conrad Irwin
Committer:GitHub

Unwind deprecated permalinks code (#26395) Release Notes: - N/A

Commit:d81e768
Author:Kirill Bulatov
Committer:GitHub

Use proper order of `Completion::Source` field to have sane default (#26416) Follow-up of https://github.com/zed-industries/zed/pull/26300 Release Notes: - N/A

Commit:cad153a
Author:Nate Butler
Committer:GitHub

sibling of 976fc3ee977cdd6c395c6ea2211291b9fca3f2f7

Commit:4cfad48
Author:Conrad Irwin
Committer:GitHub

sibling of 3891381d3e871838c78f0aa9e119bf49234d7bd4

Commit:8a7a78f
Author:Kirill Bulatov
Committer:GitHub

Avoid modifying the LSP message before resolving it (#26347) Closes https://github.com/zed-industries/zed/issues/21277 To the left is current Zed, right is the improved version. 3rd message, from Zed, to resolve the item, does not have `textEdit` on the right side, and has one on the left. Seems to not influence the end result though, but at least Zed behaves more appropriate now. <img width="1727" alt="image" src="https://github.com/user-attachments/assets/ca1236fd-9ce2-41ba-88fe-1f3178cdcbde" /> Instead of modifying the original LSP completion item, store completion list defaults and apply them when the item is requested (except `data` defaults, needed for resolve). Now, the only place that can modify the completion items is this method, and Python impl seems to be the one doing it: https://github.com/zed-industries/zed/blob/ca9c3af56ffb05a789c2b946489f4406af2c8281/crates/languages/src/python.rs#L182-L204 Seems ok to leave untouched for now. Release Notes: - Fixed LSP completion items modified before resolve request

Commit:103ad63
Author:Kirill Bulatov
Committer:GitHub

Refactor Completions to allow non-LSP ones better (#26300) A preparation for https://github.com/zed-industries/zed/issues/4957 that pushes all LSP-related data out from the basic completion item, so that it's possible to create completion items without any trace of LSP clearly. Release Notes: - N/A