Skip to content

VT Passthrough enhancements beyond the FHL #10001

@zadjii-msft

Description

@zadjii-msft

Claimed by @miniksa.

See also:

This issue represents the follow-on items from #11264. It's a bunch of known issues from the PR that will be required to make the VT passthrough more robust.

It is not all-encompassing and resolving all of these will not necessarily be the end (and therefore not necessarily the satisfactory completion of #1173).

Conhost-side issues:

  • Peek/Read console input should probably only synchronize the cursor during cooked mode
  • Fill output character is converting WC2MB way too many times but it works
  • (also VtEngine::_WriteFill could do with a REP command which is I think a VT thing too)
  • GetConsoleCursorInfo could probably work but we'd have to pipe through a bunch of stuff
  • GetConsoleScreenBufferInfoEx is... just some data. But it's probably not correct.
  • Popups erase stuff behind them which is gonna be gross...
  • Scroll could just be DECCRA implemented in Terminal
  • WriteConsoleOutput should probably trim to the buffer size
  • ReadConsoleOutput likely needs some sort of trim as well
  • Console Title might be able to resolve a more complete answer (either by asking the host or spying on the VT going by or parallel running commands locally... idk)
  • Reconcile inheriting the cursor on PTY startup with the Looking For DSR methods (a.k.a. should we always set up the DSR watcher every time the cursor query command is called? See [FHL] Make VTApiRoutines, which does VT translation for output #11264 (comment) for details)
  • Reconcile how many times we copy the API routines into the message packet. Do we really need to do it on every message? [FHL] Make VTApiRoutines, which does VT translation for output #11264 (comment)

Terminal-side

Broadly, the Terminal doesn't actually support that many VT sequences. We'll likely run into issues immediately...

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions