Skip to content

Commit aa15b9c

Browse files
authored
Merge pull request #371 from leungbk/capability-event
Support capabilities event
2 parents 60ce700 + d2d1eb5 commit aa15b9c

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

dap-mode.el

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
;; Author: Ivan Yonchovski <[email protected]>
1919
;; Keywords: languages, debug
2020
;; URL: https://github.com/emacs-lsp/dap-mode
21-
;; Package-Requires: ((emacs "26.1") (dash "2.18.0") (lsp-mode "6.0") (bui "1.1.0") (f "0.20.0") (s "1.12.0") (lsp-treemacs "0.1") (posframe "0.7.0"))
21+
;; Package-Requires: ((emacs "26.1") (dash "2.18.0") (lsp-mode "6.0") (bui "1.1.0") (f "0.20.0") (s "1.12.0") (lsp-treemacs "0.1") (posframe "0.7.0") (ht "2.3"))
2222
;; Version: 0.6
2323

2424
;;; Commentary:
@@ -34,6 +34,7 @@
3434
(require 'cl-lib)
3535
(require 'ansi-color)
3636
(require 'posframe)
37+
(require 'ht)
3738

3839
(require 'dap-launch)
3940

@@ -278,8 +279,8 @@ locations."
278279
(thread-stack-frames (make-hash-table :test 'eql) :read-only t)
279280
;; the arguments that were used to start the debug session.
280281
(launch-args nil)
281-
;; The result of initialize request. It holds the server capabilities.
282-
(initialize-result nil)
282+
;; Currently-available server capabilities
283+
(current-capabilities (make-hash-table :test 'equal))
283284
(error-message nil)
284285
(loaded-sources nil)
285286
(program-proc)
@@ -961,6 +962,9 @@ PARAMS are the event params.")
961962
(-let [(&hash "body" (&hash "source")) event]
962963
(cl-pushnew source (dap--debug-session-loaded-sources debug-session))
963964
(run-hook-with-args 'dap-loaded-sources-changed-hook debug-session)))
965+
("capabilities"
966+
(-let [(&hash "body" (&hash "capabilities")) event]
967+
(ht-update! (dap--debug-session-current-capabilities debug-session) capabilities)))
964968
(_ (dap-handle-event (intern event-type) debug-session body)))))
965969

966970
(defcustom dap-default-terminal-kind "integrated"
@@ -1231,12 +1235,11 @@ DEBUG-SESSION is the active debug session."
12311235
#'equal))
12321236

12331237
(defun dap--set-exception-breakpoints (debug-session callback)
1234-
(-let [(&dap-session 'initialize-result 'launch-args (&plist :type)) debug-session]
1238+
(-let [(&dap-session 'current-capabilities 'launch-args (&plist :type)) debug-session]
12351239
(dap--send-message
12361240
(dap--make-request "setExceptionBreakpoints"
12371241
(list :filters
1238-
(or (-some->> initialize-result
1239-
(gethash "body")
1242+
(or (-some->> current-capabilities
12401243
(gethash "exceptionBreakpointFilters")
12411244
(-keep (-lambda ((&hash "default" "filter"))
12421245
(when (dap--breakpoint-filter-enabled filter type default)
@@ -1618,10 +1621,10 @@ before starting the debug process."
16181621
(dap--initialize-message type)
16191622
(dap--session-init-resp-handler
16201623
debug-session
1621-
(lambda (initialize-result)
1624+
(-lambda ((&hash "body" capabilities))
16221625
(-let [debug-sessions (dap--get-sessions)]
16231626

1624-
(setf (dap--debug-session-initialize-result debug-session) initialize-result)
1627+
(ht-update! (dap--debug-session-current-capabilities debug-session) capabilities)
16251628

16261629
(dap--set-sessions (cons debug-session debug-sessions)))
16271630
(dap--send-message

dap-ui.el

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,15 +1086,14 @@ request."
10861086
(dap-breakpoint-log-message file-name breakpoint))
10871087

10881088
(defun dap-ui--breakpoints-data ()
1089-
(-let (((debug-session &as &dap-session 'launch-args 'initialize-result 'breakpoints all-session-breakpoints)
1089+
(-let (((debug-session &as &dap-session 'launch-args 'current-capabilities 'breakpoints all-session-breakpoints)
10901090
(or (dap--cur-session)
10911091
(make-dap--debug-session)))
10921092
(lsp-file-truename-cache (ht)))
10931093
(lsp-with-cached-filetrue-name
10941094
(append
10951095
(when (dap--session-running debug-session)
1096-
(-some->> initialize-result
1097-
(gethash "body")
1096+
(-some->> current-capabilities
10981097
(gethash "exceptionBreakpointFilters")
10991098
(-map (-lambda ((&hash "label" "filter" "default"))
11001099
(list :label (propertize

0 commit comments

Comments
 (0)