terminal/src/cascadia/UnitTests_TerminalCore
Carlos Zamora c070be12d3
Implement Keyboard Selection (#10824)
Implements the following keyboard selection non-configurable key bindings:
- shift+arrow --> move endpoint by character
- ctrl+shift+left/right --> move endpoint by word
- shift+home/end --> move to beginning/end of line
- ctrl+shift+home/end --> move to beginning/end of buffer

This was purposefully done in the ControlCore layer to make keyboard selection an innate part of how the terminal functions (aka a shared component across terminal consumers).

## References
#715 - Keyboard Selection
#2840 - Spec

## Detailed Description of the Pull Request / Additional comment
The most relevant section is `TerminalSelection.cpp`, where we define how each movement operates. It's basically a giant embedded switch-case statement. We leverage a lot of the work done in a11y to perform the movements.

## Validation Steps Performed
- General cases:
   - test all of the key bindings added
- Corner cases:
   - `char`: wide glyph support
   - `word`: move towards, away, and across the selection pivot
   - automatically scroll viewport
   - ESC (and other key combos) are still clearing the selection properly
2021-09-23 12:24:32 -07:00
..
ConptyRoundtripTests.cpp Implement and action for manually clearing the Terminal (and conpty) buffer (#10906) 2021-09-02 14:59:42 +00:00
InputTest.cpp Adding/fixing Alt+Space handling (#10799) 2021-08-10 19:53:07 +00:00
MockTermSettings.h Add an ENUM setting for disabling rendering "intense" text as bold (#10759) 2021-08-16 13:45:56 +00:00
pch.cpp Move ICore/ControlSettings to TerminalControl project (#7167) 2020-08-07 14:46:52 +00:00
pch.h Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
ScreenSizeLimitsTest.cpp Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
ScrollTest.cpp Fix TerminalControl crash on exit (#10031) 2021-05-04 21:17:37 +00:00
SelectionTest.cpp Implement Keyboard Selection (#10824) 2021-09-23 12:24:32 -07:00
TerminalApiTest.cpp Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
TerminalBufferTests.cpp Initial Implementation for tab stops in TerminalDispatch (#9597) 2021-04-16 16:26:28 +00:00
TestUtils.h Fix wrapped lines in less in Git for Windows (#5771) 2020-05-08 21:22:09 +00:00
UnitTests.vcxproj Link to WinMM.Lib for PlaySound with 19041 (#9624) 2021-03-26 11:35:17 -05:00