Commit graph

34 commits

Author SHA1 Message Date
Filip Dutescu
e3765ac6d2
feat(dap): send Disconnect if Terminated event received (#5532)
Send a `Disconnect` DAP request if the `Terminated` event is received.
According to the specification, if the debugging session was started by
as `launch`, the debuggee should be terminated alongside the session. If
instead the session was started as `attach`, it should not be disposed of.

This default behaviour can be overriden if the `supportTerminateDebuggee`
capability is supported by the adapter, through the `Disconnect` request
`terminateDebuggee` argument, as described in
[the specification][discon-spec].

This also implies saving the starting command for a debug sessions, in
order to decide which behaviour should be used, as well as validating the
capabilities of the adapter, in order to decide what the disconnect should
do.

An additional change made is handling of the `Exited` event, showing a
message if the exit code is different than `0`, for the user to be aware
off the termination failure.

[discon-spec]: https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Disconnect

Closes: #4674

Signed-off-by: Filip Dutescu <filip.dutescu@gmail.com>
2023-02-20 13:00:00 +09:00
Blaž Hrastnik
c2c1280f02
Resolve a bunch of upcoming clippy lints 2022-11-04 21:06:28 +09:00
Filip Dutescu
2457111bf0
feat(csharp,debug): add C# debugger support (#4213) 2022-10-15 15:33:57 -05:00
Michael Davis
85411bed83 DAP: Make cwd required in RunTerminalArguments
The spec has `cwd` in `RunInTerminalRequestArguments` as non-optional:
https://microsoft.github.io/debug-adapter-protocol/specification#Reverse_Requests_RunInTerminal
2022-07-05 12:34:03 +02:00
Michael Davis
44f596334a DAP: Skip serializing Options when None
DAP follows the same strict TypeScript interface syntax as LSP
which states:

> The document uses TypeScript interfaces in strict mode to describe
> these. This means for example that a `null` value has to be explicitly
> listed and that a mandatory property must be listed even if a falsify
> value might exist.

So we have to skip serializing any fields that end in `?` instead
of passing `null`.
2022-07-05 12:34:03 +02:00
Gokul Soumya
6e2aaed5c2
Reuse menu::Item trait in picker (#2814)
* Refactor menu::Item to accomodate external state

Will be useful for storing editor state when reused by pickers.

* Add some type aliases for readability

* Reuse menu::Item trait in picker

This opens the way for merging the menu and picker code in the
future, since a picker is essentially a menu + prompt. More
excitingly, this change will also allow aligning items in the
picker, which would be useful (for example) in the command palette
for aligning the descriptions to the left and the keybinds to
the right in two separate columns.

The item formatting of each picker has been kept as is, even though
there is room for improvement now that we can format the data into
columns, since that is better tackled in a separate PR.

* Rename menu::Item::EditorData to Data

* Call and inline filter_text() in sort_text() completion

* Rename diagnostic picker's Item::Data
2022-07-02 13:21:27 +02:00
Blaž Hrastnik
2b4de41bf0 dap: Reply to RunInTerminal 2021-12-06 09:32:21 +09:00
Blaž Hrastnik
5545f8ebb5 dap: Add RunInTerminal reverse request, support replying to requests 2021-12-03 16:09:28 +09:00
Blaž Hrastnik
2bd8a9b39d dap: Consistently rename type as ty 2021-11-07 21:18:53 +09:00
Blaž Hrastnik
31b431bfdd dap: Remove Deref for DebuggerCapabilities
Looks like a mistake
2021-11-07 21:17:09 +09:00
Blaž Hrastnik
bda05ec4bf Use a newtype for ThreadId 2021-10-17 14:06:52 +09:00
Dmitry Sharshakov
0e51e5fbaf
editor: support setExceptionBreakpoints 2021-09-26 10:24:58 +03:00
Dmitry Sharshakov
cf7237d0b9
compat: make thread IDs signed
Delve needs it
2021-09-03 23:11:06 +03:00
Dmitry Sharshakov
b42631942b
Defaults in completions, better schema 2021-08-29 14:51:47 +03:00
Dmitry Sharshakov
2d42766a71
wip: refactor parameters in UI start 2021-08-29 10:23:36 +03:00
Dmitry Sharshakov
94901b8677
Customized completion for template parameters 2021-08-28 19:11:19 +03:00
Dmitry Sharshakov
b001008a69
Support templates in debug configurations 2021-08-24 20:04:14 +03:00
Dmitry Sharshakov
0e779381a8
Format 2021-08-24 12:01:58 +03:00
Dmitry Sharshakov
c463142e5e
Create new debugger config format 2021-08-24 11:56:18 +03:00
Dmitry Sharshakov
c09b15197b
fix freeze with lldb terminated event 2021-08-23 20:38:17 +03:00
Dmitry Sharshakov
b5b79e3656
types: make some fields optional as in spec 2021-08-23 20:22:21 +03:00
Dmitry Sharshakov
b6b99b2487
config: minor fixes 2021-08-23 17:26:12 +03:00
Dmitry Sharshakov
839d210573
Enable stdio transport via config 2021-08-23 17:18:03 +03:00
Dmitry Sharshakov
c5b210df59
Add debug-adapter field to languages.toml 2021-08-23 16:48:06 +03:00
Dmitry Sharshakov
dabec2d799
Fix line endings 2021-08-22 15:59:42 +03:00
Dmitry Sharshakov
3197c2536e
Add eval command 2021-08-22 14:44:16 +03:00
Dmitry Sharshakov
dfc70a12f3
dap: support stepIn, stepOut, next and pause commands 2021-08-22 11:02:54 +03:00
Blaž Hrastnik
28658836ee Add more event types, simplify event decoding 2021-08-22 16:05:12 +09:00
Blaž Hrastnik
a54b09e3fe dap: Split out launch from init 2021-08-20 14:06:55 +09:00
Blaž Hrastnik
8759dc7e33 Add Default to some structs 2021-08-20 13:48:33 +09:00
Blaž Hrastnik
8fbda0abaf fix: Used the wrong type for variables 2021-08-20 13:43:54 +09:00
Blaž Hrastnik
184abdc510 dap: Significantly simplify code using the Request trait 2021-08-20 13:43:54 +09:00
Blaž Hrastnik
3a9e1c305b Refactor types, add a Request trait 2021-08-20 13:43:54 +09:00
Blaž Hrastnik
2d1ae2e44b dap: Split types off into types.rs 2021-08-20 13:43:54 +09:00