Skip to content

Conversation

@Anthony-Eid
Copy link
Contributor

Summary

This PR starts the process of adding debug task locators to Zed's debugger system. A task locator is a secondary resolution phase that allows a debug task to run a command before starting a debug session and then uses the output of the run command to configure itself.

Locators are most applicable when debugging a compiled language but will be helpful for any language as well.

Architecture

At a high level, this works by adding a debug task queue to Workspace. Which add's a debug configuration associated with a TaskId whenever a resolved task with a debug config is added to TaskInventory's queue. Then, when the SpawnInTerminal task finishes running, it emits its task_id and the result of the ran task.

When a ran task exits successfully, Workspace tells Project to start a debug session using its stored debug config, then DapStore queries the LocatorStore to configure the debug configuration if it has a valid locator argument.

Release Notes:

  • N/A

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Mar 27, 2025
@maxdeviant maxdeviant changed the title Set up Rust Debugger Code Runner Tasks Set up Rust debugger code runner tasks Mar 27, 2025
@Anthony-Eid Anthony-Eid marked this pull request as ready for review March 29, 2025 05:50
@Anthony-Eid Anthony-Eid merged commit 8add90d into main Mar 29, 2025
15 checks passed
@Anthony-Eid Anthony-Eid deleted the task-locator-poc branch March 29, 2025 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants