diff --git a/src/extension.ts b/src/extension.ts index 50673951c..824c3544f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -300,6 +300,10 @@ export async function activate(context: vscode.ExtensionContext) { // Save on run await currentTextDocument.save(); + if (!currentTextDocument.fileName.endsWith(".py")) { + utils.logToOutputChannel(outChannel, CONSTANTS.ERROR.NO_FILE_TO_RUN, true); + return; + } utils.logToOutputChannel( outChannel, CONSTANTS.INFO.FILE_SELECTED(currentFileAbsPath) @@ -570,13 +574,13 @@ export async function activate(context: vscode.ExtensionContext) { UsbDetector.getInstance().initialize(context.extensionPath); UsbDetector.getInstance().startListening(); - if (CPXWorkspace.rootPath && + if (CPXWorkspace.rootPath && (utils.fileExistsSync(path.join(CPXWorkspace.rootPath, CPX_CONFIG_FILE)) || vscode.window.activeTextEditor)) { - (() => { - if (!SerialMonitor.getInstance().initialized) { - SerialMonitor.getInstance().initialize(); - } - })(); + (() => { + if (!SerialMonitor.getInstance().initialized) { + SerialMonitor.getInstance().initialize(); + } + })(); } // Debugger configuration @@ -651,9 +655,10 @@ const getFileFromFilePicker = () => { openLabel: "Run File" }; - return vscode.window.showOpenDialog(options).then(fileUri => { + return vscode.window.showOpenDialog(options).then(async (fileUri) => { if (fileUri && fileUri[0] && fileUri[0].fsPath.endsWith(".py")) { console.log(`Selected file: ${fileUri[0].fsPath}`); + currentTextDocument = await vscode.workspace.openTextDocument(fileUri[0]) return fileUri[0].fsPath; } }); @@ -725,6 +730,6 @@ function getWebviewContent(context: vscode.ExtensionContext) { export async function deactivate() { const monitor: SerialMonitor = SerialMonitor.getInstance(); - await monitor.closeSerialMonitor(null, false); + await monitor.closeSerialMonitor(null, false); UsbDetector.getInstance().stopListening(); }