live-share
live-share copied to clipboard
Shared terminals don’t render animations correctly
Issue Type: Bug
When I connect to a live share session and the host gives access to the terminal, it does not animate correctly for me as the connectee. On the host's screen, npm's animations display normally, however they do not animate on my side. Instead it renders a new row in the terminal for every animation change.
Extension version: 1.0.2478 VS Code version: Code 1.47.2 (17299e413d5590b14ab0340ea477cdd86ff13daf, 2020-07-15T18:22:06.216Z) OS version: Windows_NT x64 10.0.18363
System Info
Item | Value |
---|---|
CPUs | Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (12 x 2208) |
GPU Status | 2d_canvas: enabled flash_3d: enabled flash_stage3d: enabled flash_stage3d_baseline: enabled gpu_compositing: enabled multiple_raster_threads: enabled_on oop_rasterization: disabled_off protected_video_decode: unavailable_off rasterization: enabled skia_renderer: disabled_off_ok video_decode: enabled viz_display_compositor: enabled_on viz_hit_test_surface_layer: disabled_off_ok webgl: enabled webgl2: enabled |
Load (avg) | undefined |
Memory (System) | 31.74GB (7.27GB free) |
Process Argv | . |
Screen Reader | no |
VM | 0% |
@IlyaBiryukov Is this a sizing issue? I would have sworn that we supported animations in shared terminals?
Possibly.
Shared terminals broadcast host terminal stdout to the guests, including all ANSI ESC sequences. The guest renderer interprets them by changing color (as on the screenshot) or positioning the cursor, or doing something else. We do not interpret these ESC sequences in Live Share.
The issue may be due guest terminal not interpreting the ANSI ESC sequences coming from the host terminal correctly. This may happen for many reasons, one of them is that the terminal size on the guest is different from the host. Other reason may be that the guest terminal didn't initialize properly (the guest terminal may generate its own ESC sequence and send it to the host terminal shell, and that may not work because the shell is already assuming it works with the host terminal renderer).
To get 100% fidelity in the shared terminals, we'd need to capture and broadcast terminal window buffer changes instead of terminal stdout.
David's team or the extensibility team will be the right owner of the shared terminals in Live Share now.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically in 2 days.
To get 100% fidelity in the shared terminals, we'd need to capture and broadcast terminal window buffer changes instead of terminal stdout.
This'd be a feature that I'd really appreciate. Love this extension but shared terminal support is a bit too dodgy for me to reliably use for pair/group programming.
We’re not able to prioritize this issue over the other higher-impact issues we receive every week, based on the votes and comments from others in the community and our understanding of the issue. However, rest assured that we love your input. If you feel it deserves to stay open, then clarify your use case and contact us to let us know how severe it is for you.