diff --git a/lua/flutter-tools/runners/debugger_runner.lua b/lua/flutter-tools/runners/debugger_runner.lua index 6b10262..8cd91dd 100644 --- a/lua/flutter-tools/runners/debugger_runner.lua +++ b/lua/flutter-tools/runners/debugger_runner.lua @@ -184,7 +184,7 @@ local listened_events = { { "before", "event_progressEnd" }, { "before", "event_exited" }, { "before", "event_terminated" }, - { "before", "event_app.started" }, + { "before", "event_flutter.appStarted" }, { "before", "event_dart.debuggerUris" }, { "before", "event_dart.serviceExtensionAdded" }, { "before", "event_flutter.serviceExtensionStateChanged" }, @@ -235,7 +235,7 @@ local function register_dap_listeners(on_run_data, on_run_exit) dap.listeners.before["event_exited"][plugin_identifier] = function(_, _) handle_termination() end dap.listeners.before["event_terminated"][plugin_identifier] = function(_, _) handle_termination() end - dap.listeners.before["event_app.started"][plugin_identifier] = function(_, _) + dap.listeners.before["event_flutter.appStarted"][plugin_identifier] = function(_, _) started = true before_start_logs = {} utils.emit_event(utils.events.APP_STARTED) diff --git a/tests/debugger_runner_spec.lua b/tests/debugger_runner_spec.lua index 0bb028a..bd320bb 100644 --- a/tests/debugger_runner_spec.lua +++ b/tests/debugger_runner_spec.lua @@ -135,4 +135,33 @@ describe("debugger runner", function() assert.are.same({ "running", "failed" }, statuses) end) + + it("marks the app started on the adapter's flutter.appStarted event", function() + local started_events = 0 + local autocmd = vim.api.nvim_create_autocmd("User", { + pattern = "FlutterToolsAppStarted", + callback = function() started_events = started_events + 1 end, + }) + local exit_logs + runner.on_untracked_session(function() + return { + on_run_data = function() end, + on_run_exit = function(logs) exit_logs = logs end, + } + end) + dap.listeners.on_session["flutter-tools"]( + nil, + { id = 5, config = { type = "dart" }, on_close = {} } + ) + + local before = dap.listeners.before + dap.listeners.after["event_output"]["flutter-tools"](nil, { output = "Launching…" }) + before["event_flutter.appStarted"]["flutter-tools"](nil, {}) + dap.listeners.after["event_output"]["flutter-tools"](nil, { output = "app output" }) + before["event_terminated"]["flutter-tools"](nil, {}) + vim.api.nvim_del_autocmd(autocmd) + + assert.are.equal(1, started_events) + assert.is_nil(exit_logs) + end) end)