From fec465cca8fb880cfb2bd9318fefcde91c91a019 Mon Sep 17 00:00:00 2001 From: Andy Jordan Date: Mon, 24 Oct 2022 14:56:22 -0700 Subject: [PATCH] Only check a script's extension if a script file was given Since it could be an inline script. --- src/features/DebugSession.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/features/DebugSession.ts b/src/features/DebugSession.ts index 33a1149515..fadb91eb59 100644 --- a/src/features/DebugSession.ts +++ b/src/features/DebugSession.ts @@ -15,6 +15,7 @@ import Settings = require("../settings"); import { Logger } from "../logging"; import { LanguageClientConsumer } from "../languageClientConsumer"; import path = require("path"); +import utils = require("../utils"); export const StartDebuggerNotificationType = new NotificationType("powerShell/startDebugger"); @@ -244,17 +245,21 @@ export class DebugSessionFeature extends LanguageClientConsumer } // Check the temporary console setting for untitled documents only, and - // check the document extension for everything else. + // check the document extension for if the script is an extant file (it + // could be inline). if (config.untitled_document) { if (config.createTemporaryIntegratedConsole) { await vscode.window.showErrorMessage("Debugging untitled files in a temporary console is not supported."); return undefined; } } else if (config.script) { - const ext = path.extname(config.script).toLowerCase(); - if (!(ext === ".ps1" || ext === ".psm1")) { - await vscode.window.showErrorMessage(`PowerShell does not support debugging this file type: '${path.basename(config.script)}'`); - return undefined; + // TODO: Why even bother with this complexity? + if (await utils.checkIfFileExists(config.script)) { + const ext = path.extname(config.script).toLowerCase(); + if (!(ext === ".ps1" || ext === ".psm1")) { + await vscode.window.showErrorMessage(`PowerShell does not support debugging this file type: '${path.basename(config.script)}'`); + return undefined; + } } }