슬래시 명령 효과 계획 분리
This commit is contained in:
@@ -44,6 +44,7 @@ import {
|
||||
} from '../../lib/markdown-editor-media.js'
|
||||
import {
|
||||
createSlashCommandApplyPlan,
|
||||
createSlashCommandEditorEffectPlan,
|
||||
getNextSlashHighlightedIndex,
|
||||
getSlashCommandFocusTarget,
|
||||
getSlashCommandTextareaSelection,
|
||||
@@ -2490,28 +2491,32 @@ const applyLiveSlashCommand = (command) => {
|
||||
command,
|
||||
sourceLine: liveSlashSourceLine.value
|
||||
})
|
||||
const effectPlan = createSlashCommandEditorEffectPlan({
|
||||
plan,
|
||||
activeMode: activeMode.value
|
||||
})
|
||||
|
||||
if (plan.kind === 'none') {
|
||||
if (effectPlan.kind === 'none') {
|
||||
return
|
||||
}
|
||||
|
||||
if (plan.kind === 'media') {
|
||||
liveSlashInsertLine.value = plan.line
|
||||
replaceLineRange(plan.line, plan.line, [], false)
|
||||
if (effectPlan.kind === 'media') {
|
||||
liveSlashInsertLine.value = effectPlan.line
|
||||
replaceLineRange(effectPlan.line, effectPlan.line, [], false)
|
||||
onLiveSlashEnd()
|
||||
openMediaPicker(plan.mediaKind)
|
||||
openMediaPicker(effectPlan.mediaKind)
|
||||
return
|
||||
}
|
||||
|
||||
if (plan.kind === 'lines') {
|
||||
releaseLiveSlashLine(plan.line)
|
||||
replaceLineRange(plan.line, plan.line, plan.lines, false)
|
||||
if (effectPlan.kind === 'lines') {
|
||||
releaseLiveSlashLine(effectPlan.line)
|
||||
replaceLineRange(effectPlan.line, effectPlan.line, effectPlan.lines, false)
|
||||
clearLiveSlashState()
|
||||
|
||||
if (activeMode.value === 'write') {
|
||||
focusTextareaAfterSlashCommand(plan.line, plan.lines)
|
||||
if (effectPlan.focusTarget === 'textarea') {
|
||||
focusTextareaAfterSlashCommand(effectPlan.line, effectPlan.lines)
|
||||
} else {
|
||||
focusPreviewAfterSlashCommand(plan.line, plan.lines)
|
||||
focusPreviewAfterSlashCommand(effectPlan.line, effectPlan.lines)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user