From 85058b21a62ae5fc98f7d56ad51ee09c7ea35d5d Mon Sep 17 00:00:00 2001 From: purocean Date: Fri, 12 Jul 2024 17:37:53 +0800 Subject: [PATCH] refactor: improve code readability and selection behavior in markdown-code-run.ts --- src/renderer/plugins/markdown-code-run.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/renderer/plugins/markdown-code-run.ts b/src/renderer/plugins/markdown-code-run.ts index 4797e096..fbdfe4e8 100644 --- a/src/renderer/plugins/markdown-code-run.ts +++ b/src/renderer/plugins/markdown-code-run.ts @@ -171,6 +171,18 @@ const RunCode = defineComponent({ runner.value = getAllRunners().find((runner) => runner.match(props.language!, props.firstLine!)) } + const selectRunResult = (e: MouseEvent) => { + e.preventDefault() + e.stopPropagation() + const target = e.currentTarget as HTMLElement + + const selection = target.ownerDocument.defaultView!.getSelection() + const range = target.ownerDocument.createRange() + range.selectNodeContents(e.currentTarget as HTMLElement) + selection?.removeAllRanges() + selection?.addRange(range) + } + watchEffect(refreshRunner) registerHook('CODE_RUNNER_CHANGE', refreshRunner) @@ -197,7 +209,7 @@ const RunCode = defineComponent({ onClick: runInXterm }), ]), - h('div', { class: 'p-mcr-run-code-result skip-export', ref: resultRef }, h('output', { key: runResult, innerHTML: runResult })), + h('div', { class: 'p-mcr-run-code-result skip-export', ref: resultRef }, h('output', { onDblclick: selectRunResult, key: runResult, innerHTML: runResult })), h('div', { class: 'p-mcr-clear-btn-wrapper skip-print' }, h( h( 'div',