fix(editor): disable slash and emoji menus inside code blocks (#1897)

The slash command menu (/) and emoji menu (:) were incorrectly
triggering when typing inside code blocks, breaking keyboard
navigation and confusing users who type paths like /work or
symbols like := in their code.

Added an `allow` function to both SlashCommand and EmojiCommand
extensions that checks if the cursor is inside a code block and
disables the menu accordingly.

Closes #1730
This commit is contained in:
faruk-agentiqus
2026-03-03 17:51:00 +01:00
committed by GitHub
parent 4b105586a9
commit a3c1c6cccd
2 changed files with 16 additions and 0 deletions
@@ -15,6 +15,14 @@ const Command = Extension.create({
command: ({ editor, range, props }) => {
props.command({ editor, range, props });
},
allow: ({ state, range }) => {
const $from = state.doc.resolve(range.from);
// Disable emoji menu inside code blocks
if ($from.parent.type.name === "codeBlock") {
return false;
}
return true;
},
} as Partial<SuggestionOptions>,
};
},
@@ -17,6 +17,14 @@ const Command = Extension.create({
command: ({ editor, range, props }) => {
props.command({ editor, range, props });
},
allow: ({ state, range }) => {
const $from = state.doc.resolve(range.from);
// Disable slash menu inside code blocks
if ($from.parent.type.name === 'codeBlock') {
return false;
}
return true;
},
} as Partial<SuggestionOptions>,
};
},