diff --git a/app/editor/extensions/FindAndReplace.tsx b/app/editor/extensions/FindAndReplace.tsx index 29721ab420..d82fa7a3e6 100644 --- a/app/editor/extensions/FindAndReplace.tsx +++ b/app/editor/extensions/FindAndReplace.tsx @@ -163,6 +163,7 @@ export default class FindAndReplaceExtension extends Extension { ...attrs, }); }, + expandCodeBlockAt: + (pos: number): Command => + (state, dispatch) => { + const $pos = state.doc.resolve(pos); + const codeBlock = findParentNodeClosestToPos($pos, isCode); + if (!codeBlock) { + return false; + } + + const collapseState = CodeFence.collapseKey.getState(state); + if (!collapseState?.collapsedBlocks.has(codeBlock.pos)) { + return false; + } + + if (dispatch) { + dispatch( + state.tr + .setMeta(CodeFence.collapseKey, { expand: codeBlock.pos }) + .setMeta("addToHistory", false) + ); + } + return true; + }, toggleCodeBlockCollapse: (): Command => (state, dispatch) => { const codeBlock = findParentNode(isCode)(state.selection); if (!codeBlock) {