Create custom, mini command palettes (quick-pick lists of commands)
VS Code has 686 default keyboard shortcuts (as of 1.60.0), and that doesn't include additional shortcuts added by extensions. While I have managed to memorize quite a few of them, I have a limited capacity for the number of keyboard shortcuts I can remember.
And although the command palette (Ctrl+Shift+P) is extremely useful, I sometimes just want a curated list of commands - for example, frequently used git commands or Java commands.
This extension allows you to define as "custom mini command palettes", and bind them to your own keyboard shortcuts.
matchOnDescription, matchOnDetail, placeHolder, and title all correspond to QuickPickOptions in the VS Code API.
label, description, and detail correspond to QuickPickItem in the VS Code API. These fields can all support rendering of theme icons via the $(<name>)-syntax.
command and commandArgs correspond to arguments to the executeCommand API method.
- To find command ids, Open the keyboard shortcuts UI using "Preferences: Open Keyboard Shortcuts", then search for the command you want. Right-click and choose "Copy Command ID".
- To configure an command that runs a specific task, use
"command": "workbench.action.tasks.runTask",
"commandArgs": ["{Task Label}"]- VS Code does not support a command to start a specific launch configuration. As a workaround, use the command id
workbench.action.debug.selectandstartto display a popup to select the launch configuration to start.
When showWhen.extensionEnabled is set, the command will only be displayed in the mini command palette when that extension is installed and enabled.
To bind the above example to a keyboard shortcut, use the following keyboard shortcut setting.
{ "key": "ctrl+alt+a", "command": "baincd.mini-command-palettes.cmds.custom-palette-1" }Note that a command will be created for each paletteConfig in settings. The command will be in the format of baincd.mini-command-palettes.cmds.{paletteName}
To enable the mini command palette keyboard shortcuts when an integrated terminal has focus, add the commands to the following setting:
"terminal.integrated.commandsToSkipShell": [
// Any other commands
"baincd.mini-command-palettes.cmds.custom-palette-1",
],

