diff --git a/packages/extension-code-block/src/code-block.ts b/packages/extension-code-block/src/code-block.ts index 0ab9eadd..3e7ef2bb 100644 --- a/packages/extension-code-block/src/code-block.ts +++ b/packages/extension-code-block/src/code-block.ts @@ -101,6 +101,22 @@ export const CodeBlock = Node.create({ addKeyboardShortcuts() { return { 'Mod-Alt-c': () => this.editor.commands.toggleCodeBlock(), + + // remove code block when at start of document or code block is empty + Backspace: state => { + const { empty, $anchor } = state.selection + const isAtStart = $anchor.pos === 1 + + if (!empty || $anchor.parent.type.name !== 'codeBlock') { + return false + } + + if (isAtStart || !$anchor.parent.textContent.length) { + return this.editor.commands.clearNodes() + } + + return false + }, } },