+
+ {description}
+
+
+
+ {shortcuts.map(shortcut => (
+ {shortcut}
+ ))}
+
+
+
+ ))}
+
+ }
+ triggerNode={children}
+ />
+);
+
+export default KeyboardShortcutButton;
diff --git a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
index 08ddf2b0fb65a..83bb80d997a28 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
@@ -103,6 +103,10 @@ import SqlEditorLeftBar, { ExtendedTable } from '../SqlEditorLeftBar';
import AceEditorWrapper from '../AceEditorWrapper';
import RunQueryActionButton from '../RunQueryActionButton';
import QueryLimitSelect from '../QueryLimitSelect';
+import KeyboardShortcutButton, {
+ KEY_MAP,
+ KeyboardShortcut,
+} from '../KeyboardShortcutButton';
const bootstrapData = getBootstrapData();
const scheduledQueriesConf = bootstrapData?.common?.conf?.SCHEDULED_QUERIES;
@@ -114,6 +118,7 @@ const StyledToolbar = styled.div`
justify-content: space-between;
border: 1px solid ${({ theme }) => theme.colors.grayscale.light2};
border-top: 0;
+ column-gap: ${({ theme }) => theme.gridUnit}px;
form {
margin-block-end: 0;
@@ -333,8 +338,8 @@ const SqlEditor: React.FC