Make PSReadline render correct portion of prompt on Unix when it's a multi-line string (#3867)
Check whether the prompt is multi-line or not. If it is, then only use the part that is shown in the input line.
This commit is contained in:
parent
c29bd7d684
commit
e75cff662a
|
@ -560,6 +560,13 @@ namespace Microsoft.PowerShell
|
|||
|
||||
#if UNIX // TODO: not necessary if ReadBufferLines worked, or if rendering worked on spans instead of complete lines
|
||||
string newPrompt = GetPrompt();
|
||||
int index = newPrompt.LastIndexOf('\n');
|
||||
if (index != -1)
|
||||
{
|
||||
// The prompt text could be a multi-line string, and in such case
|
||||
// we only want the part of it that is shown on the input line.
|
||||
newPrompt = newPrompt.Substring(index + 1);
|
||||
}
|
||||
var bufferLineCount = (newPrompt.Length) / (_console.BufferWidth) + 1;
|
||||
_consoleBuffer = ReadBufferLines(_initialY, bufferLineCount);
|
||||
|
||||
|
|
Loading…
Reference in a new issue