|
99 | 99 | :event event |
100 | 100 | :body body})) |
101 | 101 |
|
| 102 | +(defn- send-command-to-debug-server |
| 103 | + ([handler command] (send-command-to-debug-server handler command false)) |
| 104 | + ([handler command update-breakpoints?] |
| 105 | + (let [to-debug-server (get-in handler [:channels :to-debug-server])] |
| 106 | + (assert (some? to-debug-server)) |
| 107 | + |
| 108 | + (when update-breakpoints? |
| 109 | + (>!! to-debug-server {:cmd :set-breakpoints :breakpoints (:breakpoints handler)})) |
| 110 | + |
| 111 | + (>!! to-debug-server command)))) |
| 112 | + |
102 | 113 | (defn handle-initialize [handler message] |
103 | 114 | (let [response |
104 | 115 | (success |
|
264 | 275 | :breakpoint (let [file (get-in command [:breakpoint :file]) |
265 | 276 | line (get-in command [:breakpoint :line]) |
266 | 277 | id (find-breakpoint-id handler file line)] |
267 | | - (assert (some? id)) |
268 | 278 | (adapter/send-message! |
269 | 279 | (:adapter handler) |
270 | 280 | (event |
271 | 281 | "stopped" |
272 | 282 | {:reason "breakpoint" |
273 | 283 | :allThreadsStopped true |
274 | 284 | :threadId 1 |
275 | | - :hitBreakpointIds [id]}))) |
| 285 | + :hitBreakpointIds (vec (filter some? [id]))}))) |
276 | 286 |
|
277 | 287 | (:step :out :over) |
278 | 288 | (adapter/send-message! |
|
344 | 354 | ; |
345 | 355 | (defn handle-configuration-done [handler message] |
346 | 356 | (adapter/send-message! (:adapter handler) (success (:seq message) "configurationDone" nil)) |
347 | | - |
348 | | - (let [to-debug-server (get-in handler [:channels :to-debug-server])] |
349 | | - (>!! to-debug-server {:cmd :set-breakpoints :breakpoints (:breakpoints handler)}) |
350 | | - (>!! to-debug-server {:cmd :run})) |
351 | | - |
| 357 | + (send-command-to-debug-server handler {:cmd :run} true) |
352 | 358 | handler) |
353 | 359 |
|
354 | 360 | (defn handle-threads [handler message] |
|
357 | 363 | handler) |
358 | 364 |
|
359 | 365 | (defn handle-stacktrace [handler message] |
360 | | - (let [to-debug-server (get-in handler [:channels :to-debug-server]) |
361 | | - start-frame (get-in message [:arguments :startFrame]) |
| 366 | + (let [start-frame (get-in message [:arguments :startFrame]) |
362 | 367 | levels (get-in message [:arguments :levels])] |
363 | | - |
364 | | - (>!! to-debug-server {:cmd :stacktrace :start start-frame :length levels :seq (:seq message)}) |
365 | | - |
| 368 | + (send-command-to-debug-server handler {:cmd :stacktrace :start start-frame :length levels :seq (:seq message)}) |
366 | 369 | handler)) |
367 | 370 |
|
368 | 371 | (defn- create-scope [frame vars name hint] |
|
387 | 390 | (:adapter handler) |
388 | 391 | (success (:seq message) |
389 | 392 | "scopes" |
390 | | - {:scopes (filter some? [stack-scope upvals-scope])})) |
| 393 | + {:scopes (vec (filter some? [stack-scope upvals-scope]))})) |
391 | 394 | handler)) |
392 | 395 |
|
393 | 396 | (defn- find-vars-scope-by-id [data id] |
|
537 | 540 | (assert (and (some? vars) (some? type))) |
538 | 541 |
|
539 | 542 | (let [variables |
540 | | - (filter some? (case type |
541 | | - :scope (create-scope-variables vars) |
542 | | - :vars (create-variables vars) |
543 | | - :else []))] |
| 543 | + (vec (filter some? (case type |
| 544 | + :scope (create-scope-variables vars) |
| 545 | + :vars (create-variables vars) |
| 546 | + :else [])))] |
544 | 547 |
|
545 | 548 | (adapter/send-message! |
546 | 549 | (:adapter handler) |
|
550 | 553 | handler)) |
551 | 554 |
|
552 | 555 | (defn handle-continue [handler message] |
553 | | - (let [to-debug-server (get-in handler [:channels :to-debug-server])] |
554 | | - (>!! to-debug-server {:cmd :set-breakpoints :breakpoints (:breakpoints handler)}) |
555 | | - (>!! to-debug-server {:cmd :run})) |
| 556 | + (send-command-to-debug-server handler {:cmd :run} true) |
556 | 557 | (adapter/send-message! (:adapter handler) (success (:seq message) "continue" nil)) |
557 | 558 | handler) |
558 | 559 |
|
559 | 560 | (defn handle-step-in [handler message] |
560 | | - (let [to-debug-server (get-in handler [:channels :to-debug-server])] |
561 | | - (>!! to-debug-server {:cmd :set-breakpoints :breakpoints (:breakpoints handler)}) |
562 | | - (>!! to-debug-server {:cmd :step-in}) |
563 | | - (adapter/send-message! (:adapter handler) (success (:seq message) "stepIn" nil)) |
564 | | - handler)) |
| 561 | + (send-command-to-debug-server handler {:cmd :step-in} true) |
| 562 | + (adapter/send-message! (:adapter handler) (success (:seq message) "stepIn" nil)) |
| 563 | + handler) |
565 | 564 |
|
566 | 565 | (defn handle-step-out [handler message] |
567 | | - (let [to-debug-server (get-in handler [:channels :to-debug-server])] |
568 | | - (>!! to-debug-server {:cmd :step-out}) |
569 | | - (adapter/send-message! (:adapter handler) (success (:seq message) "stepOut" nil)) |
570 | | - handler)) |
| 566 | + (send-command-to-debug-server handler {:cmd :step-out} true) |
| 567 | + (adapter/send-message! (:adapter handler) (success (:seq message) "stepOut" nil)) |
| 568 | + handler) |
571 | 569 |
|
572 | 570 | (defn handle-next [handler message] |
573 | | - (let [to-debug-server (get-in handler [:channels :to-debug-server])] |
574 | | - (>!! to-debug-server {:cmd :over}) |
575 | | - (adapter/send-message! (:adapter handler) (success (:seq message) "next" nil)) |
576 | | - handler)) |
| 571 | + (send-command-to-debug-server handler {:cmd :over} true) |
| 572 | + (adapter/send-message! (:adapter handler) (success (:seq message) "next" nil)) |
| 573 | + handler) |
577 | 574 |
|
578 | 575 | (defn handle-terminate [handler message] |
579 | | - (>!! (get-in handler [:channels :to-debug-server]) {:cmd :exit}) |
| 576 | + (send-command-to-debug-server handler {:cmd :exit}) |
580 | 577 | (adapter/send-message! (:adapter handler) (success (:seq message) "terminate" nil)) |
581 | 578 | handler) |
582 | 579 |
|
|
0 commit comments