Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Allow multiple debug sessions through a single adapter #326

Merged
merged 2 commits into from
Sep 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ sectionid: changelog

#### All notable changes to the specification will be documented in this file.

* 1.59.X:
* Add a `startDebugging` reverse request which can be used to create additional debug sessions from within the debug adapter.

* 1.58.X:
* Specify the measurement unit of various `column` and "character positions" properties to be "UTF-16 code units".

Expand Down
41 changes: 41 additions & 0 deletions debugAdapterProtocol.json
Original file line number Diff line number Diff line change
Expand Up @@ -809,6 +809,43 @@
}]
},

"StartDebuggingRequest": {
"allOf": [ { "$ref": "#/definitions/Request" }, {
"type": "object",
"description": "This request is sent from the debug adapter to the client to start a new debug session of the same type as the caller.\nThis event should only be sent if the corresponding client capability `supportsStartDebuggingRequest` is true.\nA client implementation of `startDebugging` should start a new debug session (of the same type as the caller) in the same way that the caller's session was started. If the client supports hierarchical debug sessions, the newly created session can be treated as a child of the caller session.",
"properties": {
"command": {
"type": "string",
"enum": [ "startDebugging" ]
},
"arguments": {
"$ref": "#/definitions/StartDebuggingRequestArguments"
}
},
"required": [ "command", "arguments" ]
}]
},
"StartDebuggingRequestArguments": {
"type": "object",
"description": "Arguments for `startDebugging` request.",
"properties": {
"configuration": {
"oneOf": [
{ "$ref": "#/definitions/LaunchRequestArguments" },
{ "$ref": "#/definitions/AttachRequestArguments" }
],
"description": "Arguments passed to the new debug session. The arguments must only contain properties understood by the `launch` or `attach` requests of the debug adapter and they must not contain any client-specific properties (e.g. `type`) or client-specific features (e.g. substitutable 'variables')."
}
},
"required": [ "configuration" ]
},
"StartDebuggingResponse": {
"allOf": [ { "$ref": "#/definitions/Response" }, {
"type": "object",
"description": "Response to `startDebugging` request. This is just an acknowledgement, so no body field is required."
}]
},

"InitializeRequest": {
"allOf": [ { "$ref": "#/definitions/Request" }, {
"type": "object",
Expand Down Expand Up @@ -890,6 +927,10 @@
"supportsArgsCanBeInterpretedByShell": {
"type": "boolean",
"description": "Client supports the `argsCanBeInterpretedByShell` attribute on the `runInTerminal` request."
},
"supportsStartDebuggingRequest": {
"type": "boolean",
"description": "Client supports the `startDebugging` request."
}
},
"required": [ "adapterID" ]
Expand Down