From c2efcba9a658b316c3a872f5c147c505d6f4a9c3 Mon Sep 17 00:00:00 2001 From: Takshit Saini <94343242+takshittt@users.noreply.github.com> Date: Fri, 23 May 2025 01:01:20 +0530 Subject: [PATCH 1/2] Shortcut key for create new folder --- client/common/useKeyDownHandlers.js | 5 ++++- client/modules/IDE/components/Header/Nav.jsx | 3 +++ .../Header/__snapshots__/Nav.unit.test.jsx.snap | 5 +++++ client/modules/IDE/components/IDEKeyHandlers.jsx | 8 +++++++- client/modules/IDE/components/KeyboardShortcutModal.jsx | 8 ++++++++ translations/locales/en-US/translations.json | 3 ++- 6 files changed, 29 insertions(+), 3 deletions(-) diff --git a/client/common/useKeyDownHandlers.js b/client/common/useKeyDownHandlers.js index dbe2ee06b..ecca0fa28 100644 --- a/client/common/useKeyDownHandlers.js +++ b/client/common/useKeyDownHandlers.js @@ -32,7 +32,10 @@ export default function useKeyDownHandlers(keyHandlers) { if (!e.key) return; const isMac = navigator.userAgent.toLowerCase().indexOf('mac') !== -1; const isCtrl = isMac ? e.metaKey : e.ctrlKey; - if (e.shiftKey && isCtrl) { + if (e.shiftKey && isCtrl && e.altKey && e.code === 'KeyN') { + // specifically for creating a new folder + handlers.current[`ctrl-alt-shift-n`]?.(e); + } else if (e.shiftKey && isCtrl) { handlers.current[ `ctrl-shift-${ /^\d+$/.test(e.code.at(-1)) ? e.code.at(-1) : e.key.toLowerCase() diff --git a/client/modules/IDE/components/Header/Nav.jsx b/client/modules/IDE/components/Header/Nav.jsx index f40e9137b..de59a4271 100644 --- a/client/modules/IDE/components/Header/Nav.jsx +++ b/client/modules/IDE/components/Header/Nav.jsx @@ -139,6 +139,8 @@ const ProjectMenu = () => { metaKey === 'Ctrl' ? `${metaKeyName}+H` : `${metaKeyName}+⌥+F`; const newFileCommand = metaKey === 'Ctrl' ? `${metaKeyName}+Alt+N` : `${metaKeyName}+⌥+N`; + const newFolderCommand = + metaKey === 'Ctrl' ? `${metaKeyName}+Alt+Shift+N` : `${metaKeyName}+⌥+⇧+N`; return (

{t('KeyboardShortcuts.General')} diff --git a/translations/locales/en-US/translations.json b/translations/locales/en-US/translations.json index 376c18471..84922fc91 100644 --- a/translations/locales/en-US/translations.json +++ b/translations/locales/en-US/translations.json @@ -249,7 +249,8 @@ "FindPreviousTextMatch": "Find Previous Text Match", "CodeEditing": "Code Editing", "ColorPicker": "Show Inline Color Picker", - "CreateNewFile": "Create New File" + "CreateNewFile": "Create New File", + "CreateNewFolder": "Create New Folder" }, "General": "General", "GeneralSelection": { From 116dcdf0eefa98303ed9502b12c8ce46a134e831 Mon Sep 17 00:00:00 2001 From: Takshit Saini <94343242+takshittt@users.noreply.github.com> Date: Fri, 23 May 2025 01:22:49 +0530 Subject: [PATCH 2/2] keyboardShortcut for creating new folder --- client/common/useKeyDownHandlers.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/client/common/useKeyDownHandlers.js b/client/common/useKeyDownHandlers.js index ecca0fa28..75c81e1ff 100644 --- a/client/common/useKeyDownHandlers.js +++ b/client/common/useKeyDownHandlers.js @@ -32,18 +32,19 @@ export default function useKeyDownHandlers(keyHandlers) { if (!e.key) return; const isMac = navigator.userAgent.toLowerCase().indexOf('mac') !== -1; const isCtrl = isMac ? e.metaKey : e.ctrlKey; - if (e.shiftKey && isCtrl && e.altKey && e.code === 'KeyN') { + + if (isCtrl && e.shiftKey && e.altKey && e.code === 'KeyN') { // specifically for creating a new folder handlers.current[`ctrl-alt-shift-n`]?.(e); + } else if (isCtrl && e.altKey && e.code === 'KeyN') { + // specifically for creating a new file + handlers.current[`ctrl-alt-n`]?.(e); } else if (e.shiftKey && isCtrl) { handlers.current[ `ctrl-shift-${ /^\d+$/.test(e.code.at(-1)) ? e.code.at(-1) : e.key.toLowerCase() }` ]?.(e); - } else if (isCtrl && e.altKey && e.code === 'KeyN') { - // specifically for creating a new file - handlers.current[`ctrl-alt-n`]?.(e); } else if (isCtrl) { handlers.current[`ctrl-${e.key.toLowerCase()}`]?.(e); }