Skip to content

Commit 5de57ed

Browse files
committed
Fix debug launch when emulator is already running
1 parent aba7ad5 commit 5de57ed

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

lsp-dart-dap.el

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
(require 'lsp-dart-flutter-daemon)
3030
(require 'lsp-dart-devtools)
3131

32-
(defcustom lsp-dart-dap-extension-version "3.23.0"
32+
(defcustom lsp-dart-dap-extension-version "3.25.1"
3333
"The extension version."
3434
:group 'lsp-dart
3535
:type 'string)

lsp-dart-flutter-daemon.el

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,29 @@ of this command."
138138
"emulator.getEmulators"
139139
nil
140140
(-lambda (emulators)
141-
(->> lsp-dart-flutter-daemon-devices
142-
(-map #'cdr)
143-
(append emulators)
144-
(funcall callback)))))
141+
(let ((devices-excluding-emulators (-remove (-lambda ((&FlutterDaemonDevice :emulator-id?))
142+
(and emulator-id?
143+
(-first (lambda (emulator) (string= emulator-id? (lsp:flutter-daemon-device-id emulator)))
144+
(append emulators nil))))
145+
(-map #'cdr lsp-dart-flutter-daemon-devices))))
146+
(->> devices-excluding-emulators
147+
(append emulators)
148+
(funcall callback))))))
145149

146150
(lsp-defun lsp-dart-flutter-daemon-launch ((device &as &FlutterDaemonDevice :id :is-device?) callback)
147151
"Launch DEVICE and wait for connected state and call CALLBACK."
148152
(if is-device?
149153
(funcall callback device)
150-
(-let* ((params (lsp-make-flutter-daemon-emulator-launch :emulator-id id)))
151-
(add-to-list 'lsp-dart-flutter-daemon-device-added-listeners
152-
(cons id (list :callback callback)))
153-
(lsp-dart-flutter-daemon--send "emulator.launch" params callback))))
154+
(lsp-dart-flutter-daemon--send
155+
"device.getDevices"
156+
nil
157+
(-lambda (devices)
158+
(if-let (emulator-running? (-first (-lambda ((&FlutterDaemonDevice :emulator-id?)) (string= emulator-id? id)) (append devices nil)))
159+
(funcall callback device)
160+
(-let* ((params (lsp-make-flutter-daemon-emulator-launch :emulator-id id)))
161+
(add-to-list 'lsp-dart-flutter-daemon-device-added-listeners
162+
(cons id (list :callback callback)))
163+
(lsp-dart-flutter-daemon--send "emulator.launch" params callback)))))))
154164

155165
;;;###autoload
156166
(define-derived-mode lsp-dart-flutter-daemon-mode comint-mode lsp-dart-flutter-daemon-name

lsp-dart-protocol.el

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
(FlutterDaemonCommand (:id :method) (:params))
5151
(FlutterDaemonResponse (:id) (:result :event :params))
5252
(FlutterDaemonResponseParams nil (:level :message))
53-
(FlutterDaemonDevice (:id :name :platform :category :platformType :ephemeral :emulator) (:isDevice))
53+
(FlutterDaemonDevice (:id :name :platform :category :platformType :ephemeral :emulator) (:isDevice :emulatorId))
5454
(FlutterDaemonEmulatorLaunch (:emulatorId)))
5555

5656
(lsp-interface

0 commit comments

Comments
 (0)