Skip to content

Commit 4b1aacd

Browse files
committed
Refactor
1 parent 39f6594 commit 4b1aacd

File tree

5 files changed

+45
-48
lines changed

5 files changed

+45
-48
lines changed

lsp-dart-dap-devtools.el

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ If URI is not found on buffer, schedule re-check."
7979
(defun lsp-dart-dap-devtools--activated-p ()
8080
"Return non-nil if devtools is activated otherwise nil."
8181
(lsp-dart-dap-devtools--clean-buffer lsp-dart-dap-devtools--pub-list-packages-buffer-name)
82-
(let* ((pub (lsp-dart-project-get-pub-command))
82+
(let* ((pub (lsp-dart-project-pub-command))
8383
(_proc (call-process pub
8484
nil
8585
lsp-dart-dap-devtools--pub-list-packages-buffer-name
@@ -91,7 +91,7 @@ If URI is not found on buffer, schedule re-check."
9191
(defun lsp-dart-dap-devtools--activate (callback)
9292
"Activate Dart Devtools via pub then call CALLBACK."
9393
(lsp-dart-dap-devtools-log "Activating...")
94-
(let ((pub (lsp-dart-project-get-pub-command)))
94+
(let ((pub (lsp-dart-project-pub-command)))
9595
(lsp-async-start-process
9696
(lambda ()
9797
(lsp-dart-dap-devtools-log "Activated successfully!")
@@ -123,7 +123,7 @@ If it is already activated or after activated successfully, call CALLBACK."
123123
(lambda ()
124124
(if-let ((uri (lsp-workspace-get-metadata "dart-debug-devtools-uri")))
125125
(funcall callback uri)
126-
(let* ((pub (lsp-dart-project-get-pub-command))
126+
(let* ((pub (lsp-dart-project-pub-command))
127127
(proc (start-process "Start DevTools"
128128
lsp-dart-dap-devtools--buffer-name
129129
pub "global" "run" "devtools"

lsp-dart-dap.el

Lines changed: 26 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,21 @@ Required to support 'Inspect Widget'."
120120
"npm" "install" "--prefix" (f-join lsp-dart-dap-debugger-path "extension")
121121
"--no-package-lock" "--silent" "--no-save"))
122122

123+
(defun lsp-dart-dap--base-debugger-args (conf)
124+
"Return the base args for debugging merged with CONF."
125+
(-> conf
126+
(dap--put-if-absent :request "launch")
127+
(dap--put-if-absent :dartPath (lsp-dart-project-dart-command))
128+
(dap--put-if-absent :cwd (lsp-dart-project-get-root))
129+
(dap--put-if-absent :pubPath (lsp-dart-project-pub-command))
130+
(dap--put-if-absent :pubSnapshotPath (lsp-dart-project-pub-snapshot-command))
131+
(dap--put-if-absent :vmAdditionalArgs lsp-dart-dap-vm-additional-args)
132+
(dap--put-if-absent :debugExternalLibraries lsp-dart-dap-debug-external-libraries)
133+
(dap--put-if-absent :debugSdkLibraries lsp-dart-dap-debug-sdk-libraries)
134+
(dap--put-if-absent :flutterPath (lsp-dart-project-get-flutter-path))
135+
(dap--put-if-absent :flutterTrackWidgetCreation lsp-dart-dap-flutter-track-widget-creation)
136+
(dap--put-if-absent :useFlutterStructuredErrors lsp-dart-dap-flutter-structured-errors)))
137+
123138
;; Dart
124139

125140
(dap-utils-github-extension-setup-function
@@ -133,40 +148,26 @@ Required to support 'Inspect Widget'."
133148
(defun lsp-dart-dap--populate-dart-start-file-args (conf)
134149
"Populate CONF with the required arguments for dart debug."
135150
(-> conf
151+
lsp-dart-dap--base-debugger-args
136152
(dap--put-if-absent :type "dart")
137153
(dap--put-if-absent :name "Dart")
138-
(dap--put-if-absent :request "launch")
139154
(dap--put-if-absent :dap-server-path lsp-dart-dap-dart-debugger-program)
140-
(dap--put-if-absent :cwd (lsp-dart-project-get-root))
141-
(dap--put-if-absent :program (buffer-file-name))
142-
(dap--put-if-absent :dartPath (lsp-dart-project-dart-command))
143-
(dap--put-if-absent :pubPath (lsp-dart-project-get-pub-command))
144-
(dap--put-if-absent :pubSnapshotPath (lsp-dart-project-pub-snapshot-command))
145-
(dap--put-if-absent :vmAdditionalArgs lsp-dart-dap-vm-additional-args)
146-
(dap--put-if-absent :debugExternalLibraries lsp-dart-dap-debug-external-libraries)
147-
(dap--put-if-absent :debugSdkLibraries lsp-dart-dap-debug-sdk-libraries)))
155+
(dap--put-if-absent :program (buffer-file-name))))
148156

149157
(dap-register-debug-provider "dart" 'lsp-dart-dap--populate-dart-start-file-args)
150158
(dap-register-debug-template "Dart :: Debug"
151159
(list :type "dart"))
152160

153161
(defun lsp-dart-dap-debug-dart-test (path args)
154162
"Start dart test debugging from PATH with ARGS."
155-
(-> (list :name "Tests"
156-
:type "dart"
157-
:request "launch"
163+
(-> (list :type "dart"
164+
:name "Dart Tests"
158165
:dap-server-path lsp-dart-dap-dart-test-debugger-program
166+
:program path
159167
:noDebug nil
160168
:shouldConnectDebugger t
161-
:cwd (lsp-dart-project-get-root)
162-
:dartPath (lsp-dart-project-dart-command)
163-
:pubPath (lsp-dart-project-get-pub-command)
164-
:pubSnapshotPath (lsp-dart-project-pub-snapshot-command)
165-
:vmAdditionalArgs lsp-dart-dap-vm-additional-args
166-
:debugExternalLibraries lsp-dart-dap-debug-external-libraries
167-
:debugSdkLibraries lsp-dart-dap-debug-sdk-libraries
168-
:program path
169169
:args args)
170+
lsp-dart-dap--base-debugger-args
170171
dap-start-debugging))
171172

172173
;; Flutter
@@ -201,26 +202,18 @@ Call CALLBACK when the device is chosen and started successfully."
201202
(defun lsp-dart-dap--populate-flutter-start-file-args (conf)
202203
"Populate CONF with the required arguments for Flutter debug."
203204
(let ((pre-conf (-> conf
205+
lsp-dart-dap--base-debugger-args
204206
(dap--put-if-absent :type "flutter")
205-
(dap--put-if-absent :request "launch")
206207
(dap--put-if-absent :flutterMode "debug")
207208
(dap--put-if-absent :dap-server-path lsp-dart-dap-flutter-debugger-program)
208-
(dap--put-if-absent :cwd (lsp-dart-project-get-root))
209-
(dap--put-if-absent :program (lsp-dart-project-get-entrypoint))
210-
(dap--put-if-absent :dartPath (lsp-dart-project-dart-command))
211-
(dap--put-if-absent :flutterPath (lsp-dart-project-get-flutter-path))
212-
(dap--put-if-absent :flutterTrackWidgetCreation lsp-dart-dap-flutter-track-widget-creation)
213-
(dap--put-if-absent :useFlutterStructuredErrors lsp-dart-dap-flutter-structured-errors)
214-
(dap--put-if-absent :debugExternalLibraries lsp-dart-dap-debug-external-libraries)
215-
(dap--put-if-absent :debugSdkLibraries lsp-dart-dap-debug-sdk-libraries))))
209+
(dap--put-if-absent :program (lsp-dart-project-get-entrypoint)))))
216210
(lambda (start-debugging-callback)
217211
(lsp-dart-dap--flutter-get-or-create-device
218212
(-lambda ((&hash "id" device-id "name" device-name))
219213
(funcall start-debugging-callback
220214
(-> pre-conf
221215
(dap--put-if-absent :deviceId device-id)
222216
(dap--put-if-absent :deviceName device-name)
223-
(dap--put-if-absent :vmAdditionalArgs lsp-dart-dap-vm-additional-args)
224217
(dap--put-if-absent :flutterPlatform "default")
225218
(dap--put-if-absent :name (concat "Flutter (" device-name ")")))))))))
226219

@@ -304,23 +297,15 @@ Call CALLBACK when the device is chosen and started successfully."
304297

305298
(defun lsp-dart-dap-debug-flutter-test (path args)
306299
"Start dart test debugging from PATH with ARGS."
307-
(-> (list :name "Tests"
300+
(-> (list :name "Flutter Tests"
308301
:type "flutter"
309-
:request "launch"
310302
:dap-server-path lsp-dart-dap-flutter-test-debugger-program
303+
:program path
311304
:noDebug nil
312305
:shouldConnectDebugger t
313-
:cwd (lsp-dart-project-get-root)
314-
:dartPath (lsp-dart-project-dart-command)
315-
:pubPath (lsp-dart-project-get-pub-command)
316-
:pubSnapshotPath (lsp-dart-project-pub-snapshot-command)
317-
:flutterPath (lsp-dart-project-get-flutter-path)
318306
:flutterMode "debug"
319-
:vmAdditionalArgs lsp-dart-dap-vm-additional-args
320-
:debugExternalLibraries lsp-dart-dap-debug-external-libraries
321-
:debugSdkLibraries lsp-dart-dap-debug-sdk-libraries
322-
:program path
323307
:args args)
308+
lsp-dart-dap--base-debugger-args
324309
dap-start-debugging))
325310

326311
;;;###autoload

lsp-dart-project.el

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ flutter cache dir."
6666
(locate-dominating-file "bin")
6767
file-truename))))
6868

69-
(defun lsp-dart-project-get-pub-command ()
69+
(defun lsp-dart-project-pub-command ()
7070
"Return the pub executable path from dart SDK path."
7171
(-> (lsp-dart-project-get-sdk-dir)
7272
file-name-as-directory

lsp-dart-test-support.el

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ If TEST is non nil, it will run only this test."
131131
(lambda (_) lsp-dart-test-support-tests-buffer-name)))))
132132

133133
(defun lsp-dart-test-support-debug (test)
134-
"Debug Dart/Flutter TEST in a compilation buffer."
134+
"Debug Dart/Flutter TEST."
135135
(let* ((file-name (lsp-dart-test-file-name test))
136136
(names (lsp-dart-test-names test))
137137
(kind (lsp-dart-test-kind test))
@@ -218,11 +218,17 @@ PARAMS is the notification data from outline."
218218
(string-match "_test.dart" file-name))
219219

220220
(defun lsp-dart-test-support-run-last-test ()
221-
"Visit the last ran test going to the test definition."
221+
"Run last ran test."
222222
(if-let ((test (lsp-workspace-get-metadata "last-ran-test")))
223223
(lsp-dart-test-support-run test)
224224
(lsp-dart-project-log "No last test found.")))
225225

226+
(defun lsp-dart-test-support-debug-last-test ()
227+
"Debug last ran test."
228+
(if-let ((test (lsp-workspace-get-metadata "last-ran-test")))
229+
(lsp-dart-test-support-debug test)
230+
(lsp-dart-project-log "No last test found.")))
231+
226232
(defun lsp-dart-test-support-visit-last-test ()
227233
"Visit the last ran test going to the test definition."
228234
(-if-let* ((test (lsp-workspace-get-metadata "last-ran-test"))

lsp-dart.el

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,10 +439,16 @@ all test overlays in the current buffer."
439439

440440
;;;###autoload
441441
(defun lsp-dart-run-last-test ()
442-
"Visit the last ran test going to test definition."
442+
"Run the last ran test."
443443
(interactive)
444444
(lsp-dart-test-support-run-last-test))
445445

446+
;;;###autoload
447+
(defun lsp-dart-debug-last-test ()
448+
"Debug the last ran test."
449+
(interactive)
450+
(lsp-dart-test-support-debug-last-test))
451+
446452

447453
;;;###autoload(with-eval-after-load 'lsp-mode (require 'lsp-dart))
448454

0 commit comments

Comments
 (0)