-
Notifications
You must be signed in to change notification settings - Fork 315
Open
Labels
Needs-More InvestigationInitial investigation is done, but need to follow up.Initial investigation is done, but need to follow up.
Milestone
Description
Environment data
PS version: 7.0.0-preview.1
PSReadline version: 2.0.0-beta4
os: 10.0.18362.1 (WinBuild.160101.0800)
PS file version: 7.0.0.0
BufferWidth: 180
BufferHeight: 9999
Steps to reproduce or exception report
Note: The problem surfaces on Windows only.
Run the following code with and without PSReadLine imported:
# Show a spinner until the user presses a key.
$i=0; while (-not $host.UI.RawUI.KeyAvailable) { Write-Host -NoNewline ("`r{0}" -f '/―\|'[($i++ % 4)]); start-sleep -ms 200 }
Expected: A spinner should appear and keep spinning until the user presses a key.
Actual, with PSReadLine
imported: The while
loop is either never entered (1st invocation immediately after start of the PS session) or stops after one iteration even if no key is pressed (subsequent invocations).
Once you run Remove-Module PSReadLine
, the behavior is as expected in regular console windows; interestingly, the problem persists in a Windows Terminal window.
For consoles / terminals only, using [Console]::KeyAvailable
in lieu of $host.UI.RawUI.KeyAvailable
is an effective workaround.
SlionSlion
Metadata
Metadata
Assignees
Labels
Needs-More InvestigationInitial investigation is done, but need to follow up.Initial investigation is done, but need to follow up.