mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 16:40:13 +01:00
This commit is contained in:
parent
1ad395ceec
commit
3e9f5a34d3
3 changed files with 42 additions and 2 deletions
|
|
@ -311,7 +311,7 @@ export const keymap = {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (["⌘", "⇧", "⌥", "⌃"].includes(keymapStr.substr(keymapStr.length - 1, 1)) ||
|
if (["⌘", "⇧", "⌥", "⌃"].includes(keymapStr.substr(keymapStr.length - 1, 1)) ||
|
||||||
["⌘A", "⌘X", "⌘C", "⌘V", "⇧⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌘⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦"].includes(keymapStr)) {
|
["⌘A", "⌘X", "⌘C", "⌘V", "⌘-", "⌘=", "⌘0", "⇧⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌘⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦"].includes(keymapStr)) {
|
||||||
showMessage(tip + "] " + window.siyuan.languages.invalid);
|
showMessage(tip + "] " + window.siyuan.languages.invalid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ export abstract class Constants {
|
||||||
};
|
};
|
||||||
// 冲突不使用 "⌘S/Q"
|
// 冲突不使用 "⌘S/Q"
|
||||||
// "⌘", "⇧", "⌥", "⌃"
|
// "⌘", "⇧", "⌥", "⌃"
|
||||||
// "⌘A", "⌘X", "⌘C", "⌘V", "⇧⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌘⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←",
|
// "⌘A", "⌘X", "⌘C", "⌘V", "⌘-", "⌘=", "⌘0", "⇧⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌘⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←",
|
||||||
// "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义
|
// "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义
|
||||||
public static readonly SIYUAN_KEYMAP: IKeymap = {
|
public static readonly SIYUAN_KEYMAP: IKeymap = {
|
||||||
general: {
|
general: {
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,46 @@ export const matchHotKey = (hotKey: string, event: KeyboardEvent) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 是否匹配 ⌃[] / ⌃⌥[] / ⌃⇧[]/ ⌃⌥⇧[]
|
||||||
|
if (hotKey.startsWith("⌃")) {
|
||||||
|
let keyCode = hotKeys.length === 3 ? hotKeys[2] : hotKeys[1];
|
||||||
|
if (hotKeys.length === 4) {
|
||||||
|
keyCode = hotKeys[3];
|
||||||
|
}
|
||||||
|
|
||||||
|
let isMatchKey = (/^[0-9]$/.test(keyCode) ? (event.code === "Digit" + keyCode || event.code === "Numpad" + keyCode) : event.code === "Key" + keyCode) ||
|
||||||
|
event.code === keyCode ||
|
||||||
|
event.key === keyCode; // 小键盘上的 /*-+.
|
||||||
|
if (Constants.KEYCODE[event.keyCode]) {
|
||||||
|
if (event.shiftKey) {
|
||||||
|
isMatchKey = Constants.KEYCODE[event.keyCode][1] === keyCode;
|
||||||
|
} else {
|
||||||
|
isMatchKey = Constants.KEYCODE[event.keyCode][0] === keyCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 是否匹配 ⌃[]
|
||||||
|
if (isMatchKey && hotKeys.length === 2 &&
|
||||||
|
event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// ⌃⇧[]
|
||||||
|
if (isMatchKey && hotKey.startsWith("⌃⇧") && hotKeys.length === 3 &&
|
||||||
|
event.ctrlKey && !event.altKey && event.shiftKey && !event.metaKey) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// ⌃⌥[]
|
||||||
|
if (isMatchKey && hotKey.startsWith("⌃⌥") && hotKeys.length === 3 &&
|
||||||
|
event.ctrlKey && event.altKey && !event.shiftKey && !event.metaKey) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// ⌃⌥⇧[]
|
||||||
|
if (isMatchKey && hotKey.startsWith("⌃⌥⇧") && hotKeys.length === 4 &&
|
||||||
|
event.ctrlKey && event.altKey && event.shiftKey && !event.metaKey) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// 是否匹配 ⇧⌘[] / ⌘[]
|
// 是否匹配 ⇧⌘[] / ⌘[]
|
||||||
const hasShift = hotKeys.length > 2 && (hotKeys[0] === "⇧");
|
const hasShift = hotKeys.length > 2 && (hotKeys[0] === "⇧");
|
||||||
if (isCtrl(event) && !event.altKey && ((!hasShift && !event.shiftKey) || (hasShift && event.shiftKey))) {
|
if (isCtrl(event) && !event.altKey && ((!hasShift && !event.shiftKey) || (hasShift && event.shiftKey))) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue