-
Notifications
You must be signed in to change notification settings - Fork 35.3k
Description
Test for #17521
- Windows - @mousetraps
- Linux - @rebornix
- Mac - @jrieken
Complexity: 4
Windows
There should be no observable difference compared to the previous VS Code stable version (i.e. dispatching still works on e.keyCode
). There are a few improvements, we now detect keyboard layout changes and we display some dead key based keybindings better.
Note: this is not a test plan of default keyboard shortcuts. Based on keyboard layouts, defaults might be all over the place (i.e. poor). We do not ship with kb layout specific default shortcuts.
Please check by sampling that we render the correct labels for keybindings in the kb layouts: US, Latin American, UK, German, French. Hint: I use the touch keyboard to validate. (i.e. please pick an action, find its keybinding from our UI, press those key, validate that action executes, do this multiple times). You can use Developer: Inspect Key Mappings
to take a look behind the scenes.
Linux & Mac
There should be no observable difference compared to the previous VS Code stable version for the US keyboard layout. On Mac, we detect keyboard layout changes.
Note: this is not a test plan of default keyboard shortcuts. Based on keyboard layouts, defaults might be all over the place (i.e. poor). We do not ship with kb layout specific default shortcuts.
Key code based default shortcuts will be transformed, with heuristics to scan code based shortcuts. The heuristics are about what each scan code combination produces. e.g. ctrl+/ is ctrl+shift+7 on GER because shift+7 produces /. This is a heuristic and there might be edge cases where it might not work well.
Recording a keypress might sometimes (depends on heuristics) resort to using scan codes (i.e. the define keybinding widget). Scan codes look like "[This]".
Please check by sampling that we render the correct labels for keybindings in the kb layouts:
- mac: US, Spanish, British, German, French
- linux: us, gb, latam, br, es,
Please also use the define keybinding widget and check that what you press results in something that can be persisted inkeybindings.json
and repeated (pressing it again triggers the bound command under the same kb layout).
Hint: I use the keyboard utilities that render a kb on screen to validate (i.e. please pick an action, find its keybinding from our UI, press those key, validate that action executes, do this multiple times). You can use Developer: Inspect Key Mappings
to take a look behind the scenes.
Example analysis:
#4084 (comment)
#8568 (comment)