terminal/src/winconpty
Mike Griese f32761849f
Add support for win32-input-mode to conhost, ConPTY, Terminal (#6309)
Adds support for `win32-input-mode` to conhost, conpty, and the Windows
Terminal.

* The shared `terminalInput` class supports sending these sequences when
  a VT client application requests this mode.
* ConPTY supports synthesizing `INPUT_RECORD`s from the input sent to it
  from a terminal
* ConPTY requests this mode immediately on startup (if started with a
  new flag, `PSEUDOCONSOLE_WIN32_INPUT_MODE`)
* The Terminal now supports sending this input as well, when conpty asks
  for it.

Also adds a new ConPTY flag `PSEUDOCONSOLE_WIN32_INPUT_MODE` which
requests this functionality from conpty, and the Terminal requests this
by default.

Also adds `experimental.input.forceVT` as a global setting to let a user
opt-out of this behavior, if they don't want it / this ends up breaking
horribly.

## Validation Steps Performed
* played with this mode in vtpipeterm
* played with this mode in Terminal
* checked a bunch of scenarios, as outlined in a [comment] on #4999

[comment]: https://github.com/microsoft/terminal/issues/4999#issuecomment-628718631

References #4999: The megathread
References #5887: The spec

Closes #879
Closes #2865
Closes #530 
Closes #3079
Closes #1119
Closes #1694 
Closes #3608 
Closes #4334
Closes #4446
2020-06-08 22:31:28 +00:00
..
dll Force the use of the static pseudoconsole functions in TConn (#3582) 2019-11-15 17:02:38 -08:00
ft_pty Change NULL to nullptr since they are pointers (#4960) 2020-03-20 20:35:12 +00:00
lib Make ConPTY build as both LIB and DLL. (#3565) 2019-11-14 11:22:00 -08:00
device.h Open-source the PseudoConsole family of functions in a new DLL (#2611) 2019-09-04 12:03:44 -07:00
precomp.cpp Open-source the PseudoConsole family of functions in a new DLL (#2611) 2019-09-04 12:03:44 -07:00
precomp.h Open-source the PseudoConsole family of functions in a new DLL (#2611) 2019-09-04 12:03:44 -07:00
winconpty.cpp Add support for win32-input-mode to conhost, ConPTY, Terminal (#6309) 2020-06-08 22:31:28 +00:00
winconpty.h Add support for win32-input-mode to conhost, ConPTY, Terminal (#6309) 2020-06-08 22:31:28 +00:00