-
Notifications
You must be signed in to change notification settings - Fork 34.6k
Description
Investigate and improve key bindings customisations experience.
Following are the proposals, use cases, challenges in this area
Keybindings view
A table based view, each row for each key binding
Key | Command | When | Action |
---|---|---|---|
alt+cmd+[ | editor.fold | editorTextFocus | Unbind |
alt+cmd+] | editor.unfoldRecursively | editorTextFocus | Unbind |
Bind | workbench.action.reloadWindow | Bind |
Show the correct Keybindings based on the keyboard layout (both defaults and user)
Currently, keybindings show the keys those were shown in the US Keyboard. Since the keys location changes with Keyboard layout, some of the Keybindings shown as is in the file do not work. For eg:
ctrl+` does not work on German layout key board. Instead the associated Keybinding for this is ctrl+<
Show the invalid Keybindings
Some key bindings might not makes sense in some keyboard layouts since . Show such keybindings as unbound entries, probably with message?
Grouping
Group key bindings by VS code core and each extension key bindings
Command id vs title
Show just title or just id or both for the command column? Not all commands have labels and not all command ids are straight to interpret what action they perform. Not all command ids maps well with labels.
When context
when
is a combination of the location in VS Code where key binding is applied to and the pre-condition to be met to trigger the action. Not all commands have proper separation of location and precondition. Also some commands have multiple locations. How to render this when clause? How to let user edit this?
Command args
args
How to display args
Bound and unbound commands
Display bound and unbound commands as two different groups
As a user, I would like to associate a Keybinding to a command/action
User should be able to find an action say in Keybindings editor
or Command Pallette
and associate a key binding to it. Use the widget Define Keybinding
to record the Key bindings instead of writing it by hand.
An action next to command pallette list entry to bind/unbind the key binding?
As a user, I would like to find the command/action for a Keybinding.
User should be able to find the Keybinding in Keybindings editor
and see the associated commands/actions to it.