diff --git a/src/commands/runTestFromCodeLens.ts b/src/commands/runTestFromCodeLens.ts index 19e37af..22fd38d 100644 --- a/src/commands/runTestFromCodeLens.ts +++ b/src/commands/runTestFromCodeLens.ts @@ -8,10 +8,24 @@ type RunArgs = { module?: string; }; -export default function runFromCodeLens(args: RunArgs): void { +export default async function runFromCodeLens(args: RunArgs): Promise { + const { activeTextEditor, terminals, createTerminal } = window; + + if (!activeTextEditor) { + return; + } + + if (activeTextEditor.document.isDirty) { + const saved = await activeTextEditor.document.save(); + + if (!saved) { + return; + } + } + const elixirLsTerminal = - window.terminals.find((terminal) => terminal.name == "ElixirLS") || - window.createTerminal("ElixirLS"); + terminals.find((terminal) => terminal.name == "ElixirLS") || + createTerminal("ElixirLS"); elixirLsTerminal.show(); elixirLsTerminal.sendText("clear");