From b27f064ad4caf45565e87d8fce69187568d51baf Mon Sep 17 00:00:00 2001 From: Sudlon <4639035+Sudlon@users.noreply.github.com> Date: Thu, 16 Oct 2025 13:59:37 +0200 Subject: [PATCH] editor: Add keybindings for highlighting the currently selected text (#8577) * editor: Add keybindings for highlighting the currently selected text Signed-off-by: Sudlon * editor: Change keybinding command to TipTap "syntax" Signed-off-by: Sudlon * editor: Remove SHIFT-keybinding (leaving ALT-keybinding) for highlighting currently selected text Signed-off-by: Sudlon sudlondon@outlook.com * editor: Remove left-over references to the double keybinding for highlighting currently selected text Signed-off-by: Sudlon sudlondon@outlook.com --------- Signed-off-by: Sudlon Signed-off-by: Sudlon sudlondon@outlook.com Co-authored-by: sudlon --- docs/help/contents/keyboard-shortcuts.md | 123 +++++++++--------- packages/common/src/utils/keybindings.ts | 6 + .../src/extensions/highlight/highlight.ts | 19 ++- 3 files changed, 81 insertions(+), 67 deletions(-) diff --git a/docs/help/contents/keyboard-shortcuts.md b/docs/help/contents/keyboard-shortcuts.md index ed41c4b41..bd6a38f3d 100644 --- a/docs/help/contents/keyboard-shortcuts.md +++ b/docs/help/contents/keyboard-shortcuts.md @@ -9,70 +9,71 @@ The following keyboard shortcuts will help you navigate Notesnook faster. ### General -| Description | Web | Windows/Linux | Mac | -| --- | --- | --- | --- | -| Search in notes list view if editor is not focused | Ctrl F | Ctrl F | ⌘ F | -| Settings | Ctrl , | Ctrl , | ⌘ , | -| Keyboard shortcuts | Ctrl / | Ctrl / | ⌘ / | -| New note | - | Ctrl N | ⌘ N | +| Description | Web | Windows/Linux | Mac | +| -------------------------------------------------- | ------ | ------------- | --- | +| Search in notes list view if editor is not focused | Ctrl F | Ctrl F | ⌘ F | +| Settings | Ctrl , | Ctrl , | ⌘ , | +| Keyboard shortcuts | Ctrl / | Ctrl / | ⌘ / | +| New note | - | Ctrl N | ⌘ N | ### Navigation -| Description | Web | Windows/Linux | Mac | -| --- | --- | --- | --- | -| Next tab | Ctrl Alt → / Ctrl Alt ⇧ → | Ctrl tab | ⌘ tab | -| Previous tab | Ctrl Alt ← / Ctrl Alt ⇧ ← | Ctrl ⇧ tab | ⌘ ⇧ tab | -| Command palette | Ctrl ⇧ P | Ctrl ⇧ P | ⌘ ⇧ P | -| Quick open | Ctrl P | Ctrl P | ⌘ P | -| New tab | - | Ctrl T | ⌘ T | -| Close active tab | - | Ctrl W | ⌘ W | -| Close all tabs | - | Ctrl ⇧ W | ⌘ ⇧ W | +| Description | Web | Windows/Linux | Mac | +| ---------------- | ------------------------- | ------------- | ------- | +| Next tab | Ctrl Alt → / Ctrl Alt ⇧ → | Ctrl tab | ⌘ tab | +| Previous tab | Ctrl Alt ← / Ctrl Alt ⇧ ← | Ctrl ⇧ tab | ⌘ ⇧ tab | +| Command palette | Ctrl ⇧ P | Ctrl ⇧ P | ⌘ ⇧ P | +| Quick open | Ctrl P | Ctrl P | ⌘ P | +| New tab | - | Ctrl T | ⌘ T | +| Close active tab | - | Ctrl W | ⌘ W | +| Close all tabs | - | Ctrl ⇧ W | ⌘ ⇧ W | ### Editor -| Description | Web | Windows/Linux | Mac | -| --- | --- | --- | --- | -| Add attachment | Ctrl ⇧ A | Ctrl ⇧ A | ⌘ ⇧ A | -| Insert blockquote | Ctrl ⇧ B | Ctrl ⇧ B | ⌘ ⇧ B | -| Toggle bold | Ctrl B | Ctrl B | ⌘ B | -| Toggle bullet list | Ctrl ⇧ 8 | Ctrl ⇧ 8 | ⌘ ⇧ 8 | -| Toggle check list | Ctrl ⇧ 9 | Ctrl ⇧ 9 | ⌘ ⇧ 9 | -| Split list item | ↵ | ↵ | ↵ | -| Lift list item | ⇧ Tab | ⇧ Tab | ⇧ Tab | -| Sink list item | Ctrl ⇧ Down | Ctrl ⇧ Down | ⌘ ⇧ Down | -| Toggle code | Ctrl E | Ctrl E | ⌘ E | -| Toggle code block | Ctrl ⇧ C | Ctrl ⇧ C | ⌘ ⇧ C | -| Insert date | Alt D | Alt D | ⌥ D | -| Insert time | Alt T | Alt T | ⌥ T | -| Insert date and time | Ctrl Alt D | Ctrl Alt D | ⌘ ⌥ D | -| Insert date and time with timezone | Ctrl Alt Z | Ctrl Alt Z | ⌘ ⌥ Z | -| Increase font size | Ctrl [ | Ctrl [ | ⌘ [ | -| Decrease font size | Ctrl ] | Ctrl ] | ⌘ ] | -| Insert paragraph | Ctrl ⇧ 0 | Ctrl ⇧ 0 | ⌘ ⇧ 0 | -| Insert heading 1 | Ctrl Alt 1 | Ctrl Alt 1 | ⌘ ⌥ 1 | -| Insert heading 2 | Ctrl Alt 2 | Ctrl Alt 2 | ⌘ ⌥ 2 | -| Insert heading 3 | Ctrl Alt 3 | Ctrl Alt 3 | ⌘ ⌥ 3 | -| Insert heading 4 | Ctrl Alt 4 | Ctrl Alt 4 | ⌘ ⌥ 4 | -| Insert heading 5 | Ctrl Alt 5 | Ctrl Alt 5 | ⌘ ⌥ 5 | -| Insert heading 6 | Ctrl Alt 6 | Ctrl Alt 6 | ⌘ ⌥ 6 | -| Undo | Ctrl Z | Ctrl Z | ⌘ Z | -| Redo | Ctrl ⇧ Z / Ctrl Y | Ctrl ⇧ Z / Ctrl Y | ⌘ ⇧ Z / ⌘ Y | -| Add image | Ctrl ⇧ I | Ctrl ⇧ I | ⌘ ⇧ I | -| Toggle italic | Ctrl I | Ctrl I | ⌘ I | -| Remove formatting in selection | Ctrl \ | Ctrl \ | ⌘ \ | -| Insert internal link | Ctrl ⇧ K | Ctrl ⇧ K | ⌘ ⇧ K | -| Insert link | Ctrl K | Ctrl K | ⌘ K | -| Insert math block | Ctrl ⇧ M | Ctrl ⇧ M | ⌘ ⇧ M | -| Toggle ordered list | Ctrl ⇧ 7 | Ctrl ⇧ 7 | ⌘ ⇧ 7 | -| Toggle outline list | Ctrl ⇧ O | Ctrl ⇧ O | ⌘ ⇧ O | -| Toggle outline list expand | Ctrl Space | Ctrl Space | ⌘ Space | -| Open search | Ctrl F | Ctrl F | ⌘ F | -| Toggle strike | Ctrl ⇧ S | Ctrl ⇧ S | ⌘ ⇧ S | -| Toggle subscript | Ctrl , | Ctrl , | ⌘ , | -| Toggle superscript | Ctrl . | Ctrl . | ⌘ . | -| Toggle task list | Ctrl ⇧ T | Ctrl ⇧ T | ⌘ ⇧ T | -| Text align center | Ctrl ⇧ E | Ctrl ⇧ E | ⌘ ⇧ E | -| Text align justify | Ctrl ⇧ J | Ctrl ⇧ J | ⌘ ⇧ J | -| Text align left | Ctrl ⇧ L | Ctrl ⇧ L | ⌘ ⇧ L | -| Text align right | Ctrl ⇧ R | Ctrl ⇧ R | ⌘ ⇧ R | -| Underline | Ctrl U | Ctrl U | ⌘ U | \ No newline at end of file +| Description | Web | Windows/Linux | Mac | +| ---------------------------------- | ----------------- | ----------------- | ----------- | +| Add attachment | Ctrl ⇧ A | Ctrl ⇧ A | ⌘ ⇧ A | +| Insert blockquote | Ctrl ⇧ B | Ctrl ⇧ B | ⌘ ⇧ B | +| Toggle bold | Ctrl B | Ctrl B | ⌘ B | +| Toggle bullet list | Ctrl ⇧ 8 | Ctrl ⇧ 8 | ⌘ ⇧ 8 | +| Toggle check list | Ctrl ⇧ 9 | Ctrl ⇧ 9 | ⌘ ⇧ 9 | +| Split list item | ↵ | ↵ | ↵ | +| Lift list item | ⇧ Tab | ⇧ Tab | ⇧ Tab | +| Sink list item | Ctrl ⇧ Down | Ctrl ⇧ Down | ⌘ ⇧ Down | +| Toggle code | Ctrl E | Ctrl E | ⌘ E | +| Toggle code block | Ctrl ⇧ C | Ctrl ⇧ C | ⌘ ⇧ C | +| Insert date | Alt D | Alt D | ⌥ D | +| Insert time | Alt T | Alt T | ⌥ T | +| Insert date and time | Ctrl Alt D | Ctrl Alt D | ⌘ ⌥ D | +| Insert date and time with timezone | Ctrl Alt Z | Ctrl Alt Z | ⌘ ⌥ Z | +| Increase font size | Ctrl [ | Ctrl [ | ⌘ [ | +| Decrease font size | Ctrl ] | Ctrl ] | ⌘ ] | +| Insert paragraph | Ctrl ⇧ 0 | Ctrl ⇧ 0 | ⌘ ⇧ 0 | +| Insert heading 1 | Ctrl Alt 1 | Ctrl Alt 1 | ⌘ ⌥ 1 | +| Insert heading 2 | Ctrl Alt 2 | Ctrl Alt 2 | ⌘ ⌥ 2 | +| Insert heading 3 | Ctrl Alt 3 | Ctrl Alt 3 | ⌘ ⌥ 3 | +| Insert heading 4 | Ctrl Alt 4 | Ctrl Alt 4 | ⌘ ⌥ 4 | +| Insert heading 5 | Ctrl Alt 5 | Ctrl Alt 5 | ⌘ ⌥ 5 | +| Insert heading 6 | Ctrl Alt 6 | Ctrl Alt 6 | ⌘ ⌥ 6 | +| Undo | Ctrl Z | Ctrl Z | ⌘ Z | +| Redo | Ctrl ⇧ Z / Ctrl Y | Ctrl ⇧ Z / Ctrl Y | ⌘ ⇧ Z / ⌘ Y | +| Add image | Ctrl ⇧ I | Ctrl ⇧ I | ⌘ ⇧ I | +| Toggle italic | Ctrl I | Ctrl I | ⌘ I | +| Remove formatting in selection | Ctrl \ | Ctrl \ | ⌘ \ | +| Insert internal link | Ctrl ⇧ K | Ctrl ⇧ K | ⌘ ⇧ K | +| Insert link | Ctrl K | Ctrl K | ⌘ K | +| Insert math block | Ctrl ⇧ M | Ctrl ⇧ M | ⌘ ⇧ M | +| Toggle ordered list | Ctrl ⇧ 7 | Ctrl ⇧ 7 | ⌘ ⇧ 7 | +| Toggle outline list | Ctrl ⇧ O | Ctrl ⇧ O | ⌘ ⇧ O | +| Toggle outline list expand | Ctrl Space | Ctrl Space | ⌘ Space | +| Open search | Ctrl F | Ctrl F | ⌘ F | +| Toggle strike | Ctrl ⇧ S | Ctrl ⇧ S | ⌘ ⇧ S | +| Toggle subscript | Ctrl , | Ctrl , | ⌘ , | +| Toggle superscript | Ctrl . | Ctrl . | ⌘ . | +| Toggle task list | Ctrl ⇧ T | Ctrl ⇧ T | ⌘ ⇧ T | +| Text align center | Ctrl ⇧ E | Ctrl ⇧ E | ⌘ ⇧ E | +| Text align justify | Ctrl ⇧ J | Ctrl ⇧ J | ⌘ ⇧ J | +| Text align left | Ctrl ⇧ L | Ctrl ⇧ L | ⌘ ⇧ L | +| Text align right | Ctrl ⇧ R | Ctrl ⇧ R | ⌘ ⇧ R | +| Underline | Ctrl U | Ctrl U | ⌘ U | +| Toggle highlight | Ctrl Alt H | Ctrl Alt H | ⌘ ⌥ H | diff --git a/packages/common/src/utils/keybindings.ts b/packages/common/src/utils/keybindings.ts index d59ca5fca..031e85d4e 100644 --- a/packages/common/src/utils/keybindings.ts +++ b/packages/common/src/utils/keybindings.ts @@ -388,6 +388,12 @@ export const tiptapKeys = { description: "Underline", category: "Editor", type: "tiptap" + }, + toggleHighlight: { + keys: "Mod-Alt-h", + description: "Toggle highlight", + category: "Editor", + type: "tiptap" } } satisfies Record; diff --git a/packages/editor/src/extensions/highlight/highlight.ts b/packages/editor/src/extensions/highlight/highlight.ts index 8ec31604b..b1cd9957c 100644 --- a/packages/editor/src/extensions/highlight/highlight.ts +++ b/packages/editor/src/extensions/highlight/highlight.ts @@ -19,6 +19,8 @@ along with this program. If not, see . import "@tiptap/extension-text-style"; import { Extension } from "@tiptap/core"; +import { config } from "../../utils/config.js"; +import { tiptapKeys } from "@notesnook/common"; export interface HighlightOptions { types: string[]; @@ -99,11 +101,16 @@ export const Highlight = Extension.create({ .run(); } }; - } + }, - // addKeyboardShortcuts() { - // return { - // "Mod-Shift-h": () => this.editor.commands.toggleHighlight(), - // }; - // }, + addKeyboardShortcuts() { + return { + [tiptapKeys.toggleHighlight.keys]: () => + this.editor.commands.toggleHighlight(getCurrentHighlightColor()) + }; + } }); + +function getCurrentHighlightColor() { + return config.get<"string">("highlight") || "yellow"; +}