Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 247bd27

Browse files
SpecProcId - interactive var replacement supports only string type (#1323)
Fix #1322
1 parent cf8f31b commit 247bd27

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

‎src/features/DebugSession.ts‎

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ export class DebugSessionFeature implements IFeature, DebugConfigurationProvider
4141
config: DebugConfiguration,
4242
token?: CancellationToken): ProviderResult<DebugConfiguration> {
4343

44-
const currentDocument = vscode.window.activeTextEditor.document;
44+
// Starting a debug session can be done when there is no document open e.g. attach to PS host process
45+
const currentDocument = vscode.window.activeTextEditor ? vscode.window.activeTextEditor.document : undefined;
4546
const debugCurrentScript = (config.script === "${file}") || !config.request;
4647
const generateLaunchConfig = !config.request;
4748

@@ -85,10 +86,18 @@ export class DebugSessionFeature implements IFeature, DebugConfigurationProvider
8586
if (config.request === "launch") {
8687

8788
// For debug launch of "current script" (saved or unsaved), warn before starting the debugger if either
88-
// A) the unsaved document's language type is not PowerShell or
89-
// B) the saved document's extension is a type that PowerShell can't debug.
89+
// A) there is not an active document
90+
// B) the unsaved document's language type is not PowerShell
91+
// C) the saved document's extension is a type that PowerShell can't debug.
9092
if (debugCurrentScript) {
9193

94+
if (currentDocument === undefined) {
95+
const msg = "To debug the \"Current File\", you must first open a " +
96+
"PowerShell script file in the editor.";
97+
vscode.window.showErrorMessage(msg);
98+
return;
99+
}
100+
92101
if (currentDocument.isUntitled) {
93102
if (currentDocument.languageId === "powershell") {
94103
if (!generateLaunchConfig) {
@@ -118,7 +127,7 @@ export class DebugSessionFeature implements IFeature, DebugConfigurationProvider
118127
path = currentDocument.fileName.substring(vscode.workspace.rootPath.length + 1);
119128
}
120129

121-
const msg = "'"+path+"' is a file type that cannot be debugged by the PowerShell debugger.";
130+
const msg = "PowerShell does not support debugging this file type: '"+path+"'.";
122131
vscode.window.showErrorMessage(msg);
123132
return;
124133
}
@@ -129,7 +138,7 @@ export class DebugSessionFeature implements IFeature, DebugConfigurationProvider
129138
}
130139
}
131140

132-
if (config.cwd === "${file}") {
141+
if ((currentDocument!==undefined)&&(config.cwd === "${file}")) {
133142
config.cwd = currentDocument.fileName;
134143
}
135144

@@ -337,7 +346,9 @@ export class PickPSHostProcessFeature implements IFeature {
337346
};
338347

339348
return vscode.window.showQuickPick(items, options).then((item) => {
340-
return item ? item.pid : "";
349+
// Return undefined when user presses Esc.
350+
// This prevents VSCode from opening launch.json in this case which happens if we return "".
351+
return item ? `${item.pid}` : undefined;
341352
});
342353
});
343354
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /