From f5350fe51af0c1b7bb6c1a93624180a293a4fc66 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Wed, 16 Feb 2022 12:23:34 -0800 Subject: [PATCH] Handle edge case where `prompt` is undefined --- .../Services/PowerShell/Host/PsesInternalHost.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/PowerShellEditorServices/Services/PowerShell/Host/PsesInternalHost.cs b/src/PowerShellEditorServices/Services/PowerShell/Host/PsesInternalHost.cs index 5e790037d..3d7a480f1 100644 --- a/src/PowerShellEditorServices/Services/PowerShell/Host/PsesInternalHost.cs +++ b/src/PowerShellEditorServices/Services/PowerShell/Host/PsesInternalHost.cs @@ -666,9 +666,18 @@ private void DoOneRepl(CancellationToken cancellationToken) private string GetPrompt(CancellationToken cancellationToken) { - var command = new PSCommand().AddCommand("prompt"); - IReadOnlyList results = InvokePSCommand(command, executionOptions: null, cancellationToken); - string prompt = results.Count > 0 ? results[0] : DefaultPrompt; + string prompt = DefaultPrompt; + try + { + // TODO: Should we cache PSCommands like this as static members? + var command = new PSCommand().AddCommand("prompt"); + IReadOnlyList results = InvokePSCommand(command, executionOptions: null, cancellationToken); + if (results.Count > 0) + { + prompt = results[0]; + } + } + catch (CommandNotFoundException) { } // Use default prompt if (CurrentRunspace.RunspaceOrigin != RunspaceOrigin.Local) {