feat: insert element boundary optimization #669

main
Hufe921 2 years ago
parent b3d8413b35
commit de44bd68ab

@ -2263,7 +2263,9 @@ export class CommandAdapt {
// 格式化上下文信息 // 格式化上下文信息
const { startIndex } = this.range.getRange() const { startIndex } = this.range.getRange()
const elementList = this.draw.getElementList() const elementList = this.draw.getElementList()
formatElementContext(elementList, cloneElementList, startIndex) formatElementContext(elementList, cloneElementList, startIndex, {
isBreakWhenWrap: true
})
this.draw.insertElementList(cloneElementList) this.draw.insertElementList(cloneElementList)
} }

@ -38,6 +38,10 @@ export function enter(evt: KeyboardEvent, host: CanvasEvent) {
if (evt.shiftKey && startElement.listId) { if (evt.shiftKey && startElement.listId) {
enterText.listWrap = true enterText.listWrap = true
} }
// 格式化上下文
formatElementContext(elementList, [enterText], startIndex, {
isBreakWhenWrap: true
})
// 标题结尾处回车无需格式化及样式复制 // 标题结尾处回车无需格式化及样式复制
if ( if (
!( !(
@ -45,8 +49,6 @@ export function enter(evt: KeyboardEvent, host: CanvasEvent) {
endElement.titleId !== elementList[endIndex + 1]?.titleId endElement.titleId !== elementList[endIndex + 1]?.titleId
) )
) { ) {
// 格式化上下文
formatElementContext(elementList, [enterText], startIndex)
// 复制样式属性 // 复制样式属性
const copyElement = getAnchorElement(elementList, endIndex) const copyElement = getAnchorElement(elementList, endIndex)
if (copyElement) { if (copyElement) {

@ -826,7 +826,7 @@ export function formatElementContext(
if ( if (
isBreakWhenWrap && isBreakWhenWrap &&
!copyElement.listId && !copyElement.listId &&
/^\n/.test(targetElement.value) START_LINE_BREAK_REG.test(targetElement.value)
) { ) {
isBreakWarped = true isBreakWarped = true
} }

Loading…
Cancel
Save