From 5c3e9c716e11a0b795d484403289fe9940b7efda Mon Sep 17 00:00:00 2001 From: Ville Penttinen Date: Thu, 21 Mar 2019 13:56:25 +0200 Subject: Change enableCargoWatchOnStartup to have three states This fixes #1005. Defaults to `ask` which prompts users each time whether to start `cargo watch` or not. `enabled` always starts `cargo watch` and `disabled` does not. --- editors/code/src/commands/runnables.ts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'editors/code/src/commands/runnables.ts') diff --git a/editors/code/src/commands/runnables.ts b/editors/code/src/commands/runnables.ts index ea2883ad4..420635f41 100644 --- a/editors/code/src/commands/runnables.ts +++ b/editors/code/src/commands/runnables.ts @@ -153,22 +153,25 @@ export const autoCargoWatchTask: vscode.Task = { * that, when accepted, allow us to `cargo install cargo-watch` and then run it. */ export async function interactivelyStartCargoWatch() { - if (!Server.config.enableCargoWatchOnStartup) { + if (Server.config.enableCargoWatchOnStartup === 'disabled') { return; } - const execPromise = util.promisify(child_process.exec); - - const watch = await vscode.window.showInformationMessage( - 'Start watching changes with cargo? (Executes `cargo watch`, provides inline diagnostics)', - 'yes', - 'no' - ); - if (watch === 'no') { - return; + if (Server.config.enableCargoWatchOnStartup === 'ask') { + const watch = await vscode.window.showInformationMessage( + 'Start watching changes with cargo? (Executes `cargo watch`, provides inline diagnostics)', + 'yes', + 'no' + ); + if (watch === 'no') { + return; + } } + const execPromise = util.promisify(child_process.exec); + const { stderr } = await execPromise('cargo watch --version').catch(e => e); + if (stderr.includes('no such subcommand: `watch`')) { const msg = 'The `cargo-watch` subcommand is not installed. Install? (takes ~1-2 minutes)'; -- cgit v1.2.3