terminal/doc
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
..
cascadia Implement Keyboard Selection (#10824) 2021-09-23 12:24:32 -07:00
images Run all images through ImgBot (#8169) 2020-11-05 18:03:40 -08:00
reference Fix the spellbot (#8259) 2020-11-13 09:45:08 -08:00
specs Keyboard Selection Spec (#2840) 2021-09-23 10:58:31 -07:00
user-docs doc: add a link to MSYS2's WT profiles page (#8060) 2020-10-27 13:27:00 -07:00
AddASetting.md Minor grammatical fix (#8603) 2020-12-17 15:12:36 -08:00
bot.md Fix link to Fabric Bot (#9988) 2021-04-30 13:09:22 +00:00
building.md doc, tools: Improve docs around using clang-format with VS (#9782) 2021-04-21 10:51:58 -05:00
ConsoleCtrlEvent.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
ConsoleHostSettings.md Added information on WxH character (#2104) 2019-08-01 08:34:18 -05:00
creating_a_new_project.md Remove all our path antics; force native projects to bin/, obj/ (#8062) 2020-10-27 15:00:41 -07:00
Debugging.md doc: Add debugging notes on DebugBreak (#4163) 2020-01-09 17:56:05 -08:00
EXCEPTIONS.md Code highlighting and capitalization fix for doc/EXCEPTIONS.md (#1283) 2019-06-17 23:41:27 +00:00
feature_flags.md Add support for branch- and branding-based feature flagging (#10361) 2021-06-10 23:09:52 +00:00
Niksa.md Add a "shell vs terminal" section to Niksa.md (#7202) 2020-08-06 16:23:54 -05:00
ORGANIZATION.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
STYLE.md Converts Dispatcher().RunAsync to WinRT Coroutines (#4051) 2020-01-10 03:29:49 +00:00
submitting_code.md Prepare for the primary branch name to change to main (#7985) 2020-10-21 17:29:36 -07:00
TAEF.md doc: fix typo in TAEF.md (#10424) 2021-06-14 10:06:01 -07:00
terminal-v1-roadmap.md doc: update roadmap with proper v1 release date (#4860) 2020-03-09 17:04:54 -07:00
terminal-v2-roadmap.md Update terminal-v2-roadmap.md links (#11103) 2021-09-01 14:26:23 -07:00
UniversalTest.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
virtual-dtors.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
WIL.md Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
WindowsTestPasses.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00