Add a private field to indicate if PSReadLine is initialized and ready #4706
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Summary
When posting code from
AIShell
to PowerShell, we need to know if PSReadLine has finished the initialization that is required for each call toPSConsoleReadLine.ReadLine(...)
.This is especially needed when one is calling
Invoke-AIShell -PostCode
from PowerShell to request the generated code to be posted from theAIShell
side:PSReadLine
hasn't finishes the initialization, the posted code may be rendered at the wrong row/position (because the new cursor position hasn't been set to_initialX
and_initialY
) or even cause exception due to race condition.The fix is to add a private field to indicate if the initialization per call is done. This doesn't introduce any behavior changes to PSReadLine. Making it a private field means it's not an officially supported scenario, even though a tool like
AIShell
can utilize it.PR Checklist
Microsoft Reviewers: Open in CodeFlow