From ac79a185defc1a4ab7167cd24635a7ff02b5bc73 Mon Sep 17 00:00:00 2001 From: Finn Dittmar <86927734+Vito0912@users.noreply.github.com> Date: Tue, 8 Jul 2025 23:13:21 +0200 Subject: [PATCH] fix ctrl-a for codeblocks (#1336) --- .../editor-ext/src/lib/custom-code-block.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/packages/editor-ext/src/lib/custom-code-block.ts b/packages/editor-ext/src/lib/custom-code-block.ts index 094b8b9a..702e98a9 100644 --- a/packages/editor-ext/src/lib/custom-code-block.ts +++ b/packages/editor-ext/src/lib/custom-code-block.ts @@ -35,6 +35,42 @@ export const CustomCodeBlock = CodeBlockLowlight.extend( return true; } }, + "Mod-a": () => { + if (this.editor.isActive("codeBlock")) { + const { state } = this.editor; + const { $from } = state.selection; + + let codeBlockNode = null; + let codeBlockPos = null; + let depth = 0; + + for (depth = $from.depth; depth > 0; depth--) { + const node = $from.node(depth); + if (node.type.name === "codeBlock") { + codeBlockNode = node; + codeBlockPos = $from.start(depth) - 1; + break; + } + } + + if (codeBlockNode && codeBlockPos !== null) { + const codeBlockStart = codeBlockPos; + const codeBlockEnd = codeBlockPos + codeBlockNode.nodeSize; + + const contentStart = codeBlockStart + 1; + const contentEnd = codeBlockEnd - 1; + + this.editor.commands.setTextSelection({ + from: contentStart, + to: contentEnd, + }); + + return true; + } + } + + return false; + }, }; },