-
Notifications
You must be signed in to change notification settings - Fork 8.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flushing FTCS sequences causes flickering in nushell (again; 1.20+) #16769
Comments
This comment was marked as off-topic.
This comment was marked as off-topic.
I am able to reproduce it in 1.19.10573.0 even without AtlasEngine enabled. |
Sorry, I've tested with previous version, seems not related to Atlas Engine (I've deleted that comment). first 1.19 release version 1.19.10292.0 can also reproduce this problem. 1.18 works fine. |
I've started seeing carriage return flickering with PowerShell today (I'm using version 1.19.10573.0). |
I am also seeing a lot of flicker with |
I've found that #16079 was never properly addressed (it still randomly occurred after even after PR #16349), which later led to the issues described in #16769 (nushell flickering due to too many flushes). The crux of the fix is that this brings back the `_noFlushOnEnd` flag that was removed in PR #15991. This is then combined with a change to the cork API: An `uncork` on `VtEngine` now only flushes if `_Flush` got called while it was corked in the first place. `_noFlushOnEnd` prevents us from flushing in between two "unknown" VT sequences (like soft fonts or FTCS) which prevents them from being corrupted. The corking prevents the remaining cases of flushing too often. Long-term, a proper fix would be to pass through VT unmodified. Closes #16769
I've found that #16079 was never properly addressed (it still randomly occurred after even after PR #16349), which later led to the issues described in #16769 (nushell flickering due to too many flushes). The crux of the fix is that this brings back the `_noFlushOnEnd` flag that was removed in PR #15991. This is then combined with a change to the cork API: An `uncork` on `VtEngine` now only flushes if `_Flush` got called while it was corked in the first place. `_noFlushOnEnd` prevents us from flushing in between two "unknown" VT sequences (like soft fonts or FTCS) which prevents them from being corrupted. The corking prevents the remaining cases of flushing too often. Long-term, a proper fix would be to pass through VT unmodified. Closes #16769 (cherry picked from commit 1ede023) Service-Card-Id: 91965217 Service-Version: 1.20
I've found that #16079 was never properly addressed (it still randomly occurred after even after PR #16349), which later led to the issues described in #16769 (nushell flickering due to too many flushes). The crux of the fix is that this brings back the `_noFlushOnEnd` flag that was removed in PR #15991. This is then combined with a change to the cork API: An `uncork` on `VtEngine` now only flushes if `_Flush` got called while it was corked in the first place. `_noFlushOnEnd` prevents us from flushing in between two "unknown" VT sequences (like soft fonts or FTCS) which prevents them from being corrupted. The corking prevents the remaining cases of flushing too often. Long-term, a proper fix would be to pass through VT unmodified. Closes #16769 (cherry picked from commit 1ede023) Service-Card-Id: 91965216 Service-Version: 1.19
This issue can be reproduced again in 1.20.11781.0 Disabling |
The fix has been released in v1.21.1272.0 which is currently in Windows Terminal Preview. |
Windows Terminal version
1.20.10572.0
Steps to reproduce
$nu.config-path
in your favorite editorshell_integration
and set it totrue
Expected Behavior
No flickering, as it was the case between 1.18 and 1.19.
Actual Behavior
The prompt line flickers:
See #13710 for the previous issue.
The text was updated successfully, but these errors were encountered: