Make typeahead play better with different terminals #2594
Merged
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.
There are a some issues when using typeahead in different terminals mainly (xterm vs screen)
Issues that this PR fixes
1) The cursor is in weird positions when using Terminal.app
See sindresorhus/ansi-escapes#1 for more info about why this happens
To fix this instead of clearing the whole screen every time we are only clearing it then the user goes into pattern mode.
ansiEscapes.cursorRestorePosition
we useansiEscapes.cursorTo
as a fallbackansiEscapes.cursorRestorePosition
we use that.NOTE: This also fixes an issue where the cursor in iTerm2 jumps around
2) Killing the process while the typeahead is active leaves some ghost characters.
Before
After
I've been testing typeahead mode in the following environments and it seems fine.
Here is a mega gif how it works in each and every env
NOTE: I had some weird issues with my terminal half way through the video, feel free to either ignore it or troll me.
Final Notes