mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
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:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user