mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
const F5_KEY = 116,
|
|
F7_KEY = 118,
|
|
F8_KEY = 119,
|
|
PERIOD_KEY = 190,
|
|
FWD_SLASH_KEY = 191;
|
|
|
|
function keyboardShortcuts(sqlEditorController, queryToolActions, event) {
|
|
if (sqlEditorController.isQueryRunning()) {
|
|
return;
|
|
}
|
|
|
|
let keyCode = event.which || event.keyCode;
|
|
|
|
if (keyCode === F5_KEY) {
|
|
event.preventDefault();
|
|
queryToolActions.executeQuery(sqlEditorController);
|
|
} else if (event.shiftKey && keyCode === F7_KEY) {
|
|
_stopEventPropagation();
|
|
queryToolActions.explainAnalyze(sqlEditorController);
|
|
} else if (keyCode === F7_KEY) {
|
|
_stopEventPropagation();
|
|
queryToolActions.explain(sqlEditorController);
|
|
} else if (keyCode === F8_KEY) {
|
|
event.preventDefault();
|
|
queryToolActions.download(sqlEditorController);
|
|
} else if (((this.isMac() && event.metaKey) || (!this.isMac() && event.ctrlKey)) &&
|
|
event.shiftKey && keyCode === FWD_SLASH_KEY) {
|
|
_stopEventPropagation();
|
|
queryToolActions.commentBlockCode(sqlEditorController);
|
|
} else if (((this.isMac() && event.metaKey) || (!this.isMac() && event.ctrlKey)) &&
|
|
keyCode === FWD_SLASH_KEY) {
|
|
_stopEventPropagation();
|
|
queryToolActions.commentLineCode(sqlEditorController);
|
|
} else if (((this.isMac() && event.metaKey) || (!this.isMac() && event.ctrlKey)) &&
|
|
keyCode === PERIOD_KEY) {
|
|
_stopEventPropagation();
|
|
queryToolActions.uncommentLineCode(sqlEditorController);
|
|
}
|
|
|
|
function _stopEventPropagation() {
|
|
event.cancelBubble = true;
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
event.stopImmediatePropagation();
|
|
}
|
|
}
|
|
|
|
function isMac() {
|
|
return window.navigator.platform.search('Mac') != -1;
|
|
}
|
|
|
|
module.exports = {
|
|
processEvent: keyboardShortcuts,
|
|
isMac: isMac,
|
|
};
|