Skip to content

Commit ebe66f6

Browse files
authored
Merge pull request #3309 from jsternberg/dap-step-into
dap: alias step into to next and step out to continue
2 parents 272bcb4 + 0a78659 commit ebe66f6

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

dap/adapter.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,29 @@ func (d *Adapter[C]) Next(c Context, req *dap.NextRequest, resp *dap.NextRespons
156156
return nil
157157
}
158158

159+
func (d *Adapter[C]) StepIn(c Context, req *dap.StepInRequest, resp *dap.StepInResponse) error {
160+
var (
161+
subReq dap.NextRequest
162+
subResp dap.NextResponse
163+
)
164+
165+
subReq.Arguments.ThreadId = req.Arguments.ThreadId
166+
subReq.Arguments.SingleThread = req.Arguments.SingleThread
167+
subReq.Arguments.Granularity = req.Arguments.Granularity
168+
return d.Next(c, &subReq, &subResp)
169+
}
170+
171+
func (d *Adapter[C]) StepOut(c Context, req *dap.StepOutRequest, resp *dap.StepOutResponse) error {
172+
var (
173+
subReq dap.ContinueRequest
174+
subResp dap.ContinueResponse
175+
)
176+
177+
subReq.Arguments.ThreadId = req.Arguments.ThreadId
178+
subReq.Arguments.SingleThread = req.Arguments.SingleThread
179+
return d.Continue(c, &subReq, &subResp)
180+
}
181+
159182
func (d *Adapter[C]) SetBreakpoints(c Context, req *dap.SetBreakpointsRequest, resp *dap.SetBreakpointsResponse) error {
160183
resp.Body.Breakpoints = d.breakpointMap.Set(req.Arguments.Source.Path, req.Arguments.Breakpoints)
161184
return nil
@@ -420,6 +443,8 @@ func (d *Adapter[C]) dapHandler() Handler {
420443
Launch: d.Launch,
421444
Continue: d.Continue,
422445
Next: d.Next,
446+
StepIn: d.StepIn,
447+
StepOut: d.StepOut,
423448
SetBreakpoints: d.SetBreakpoints,
424449
ConfigurationDone: d.ConfigurationDone,
425450
Disconnect: d.Disconnect,

dap/handler.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ type Handler struct {
5252
Terminate HandlerFunc[*dap.TerminateRequest, *dap.TerminateResponse]
5353
Continue HandlerFunc[*dap.ContinueRequest, *dap.ContinueResponse]
5454
Next HandlerFunc[*dap.NextRequest, *dap.NextResponse]
55+
StepIn HandlerFunc[*dap.StepInRequest, *dap.StepInResponse]
56+
StepOut HandlerFunc[*dap.StepOutRequest, *dap.StepOutResponse]
5557
Restart HandlerFunc[*dap.RestartRequest, *dap.RestartResponse]
5658
Threads HandlerFunc[*dap.ThreadsRequest, *dap.ThreadsResponse]
5759
StackTrace HandlerFunc[*dap.StackTraceRequest, *dap.StackTraceResponse]

dap/server.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ func (s *Server) handleMessage(c Context, m dap.Message) (dap.ResponseMessage, e
119119
return s.h.Continue.Do(c, req)
120120
case *dap.NextRequest:
121121
return s.h.Next.Do(c, req)
122+
case *dap.StepInRequest:
123+
return s.h.StepIn.Do(c, req)
124+
case *dap.StepOutRequest:
125+
return s.h.StepOut.Do(c, req)
122126
case *dap.RestartRequest:
123127
return s.h.Restart.Do(c, req)
124128
case *dap.ThreadsRequest:

0 commit comments

Comments
 (0)