mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-23 01:50:12 +01:00
🎨 Improve fold heading editing https://github.com/siyuan-note/siyuan/issues/16197
Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
parent
549069a8ee
commit
50f00c69d8
1 changed files with 0 additions and 52 deletions
|
|
@ -22,7 +22,6 @@ import (
|
|||
"fmt"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
|
|
@ -170,7 +169,6 @@ func performTx(tx *Transaction) (ret *TxErr) {
|
|||
|
||||
isLargeInsert := tx.processLargeInsert()
|
||||
if !isLargeInsert {
|
||||
tx.processUndoInsertWithFoldedHeading()
|
||||
for _, op := range tx.DoOperations {
|
||||
switch op.Action {
|
||||
case "create":
|
||||
|
|
@ -339,56 +337,6 @@ func performTx(tx *Transaction) (ret *TxErr) {
|
|||
return
|
||||
}
|
||||
|
||||
func (tx *Transaction) processUndoInsertWithFoldedHeading() {
|
||||
// 删除折叠标题后撤销,需要调整 insert 顺序和 previousID
|
||||
// https://github.com/siyuan-note/siyuan/issues/16120
|
||||
|
||||
if 1 > len(tx.DoOperations) {
|
||||
return
|
||||
}
|
||||
|
||||
// 所有操作均为 insert 才处理
|
||||
for _, op := range tx.DoOperations {
|
||||
if "insert" != op.Action {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 找到 ignoreProcess=true 的区间 [j, k]
|
||||
var j, k int
|
||||
for i := 0; i < len(tx.DoOperations); i++ {
|
||||
op := tx.DoOperations[i]
|
||||
ignoreProcess := false
|
||||
if nil != op.Context["ignoreProcess"] {
|
||||
var convErr error
|
||||
ignoreProcess, convErr = strconv.ParseBool(op.Context["ignoreProcess"].(string))
|
||||
if nil != convErr {
|
||||
logging.LogErrorf("parse ignoreProcess failed: %s", convErr)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if !ignoreProcess {
|
||||
if 0 != j && 0 != k {
|
||||
break
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
if 0 == j && 0 == k {
|
||||
j = i
|
||||
}
|
||||
k = i
|
||||
}
|
||||
|
||||
// 调整 [j, k] 区间内的操作顺序和 previousID
|
||||
for x := j; x <= k; x++ {
|
||||
opx := tx.DoOperations[x]
|
||||
opx.PreviousID = tx.DoOperations[k].PreviousID
|
||||
}
|
||||
slices.Reverse(tx.DoOperations[j : k+1])
|
||||
}
|
||||
|
||||
func (tx *Transaction) processLargeInsert() bool {
|
||||
opSize := len(tx.DoOperations)
|
||||
isLargeInsert := 128 < opSize
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue