From 57f9c4ddc1dadc048128620d5b250de8bc0332b4 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 18 Sep 2023 10:05:15 +0800 Subject: [PATCH] :art: Improve doc dynamic loading --- kernel/model/file.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kernel/model/file.go b/kernel/model/file.go index 8c7e7fac2..2f12a7f95 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -681,6 +681,19 @@ func GetDoc(startID, endID, id string, index int, query string, queryTypes map[s if 1 > len(nodes) { // 按 mode 加载兜底 nodes, eof = loadNodesByMode(node, inputIndex, mode, size, isDoc, isHeading) + } else { + // 文档块没有指定 index 时需要计算 index,否则初次打开文档时 node-index 会为 0,导致首次 Ctrl+Home 无法回到顶部 + ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus { + if !entering { + return ast.WalkContinue + } + + index++ + if nodes[0].ID == n.ID { + return ast.WalkStop + } + return ast.WalkContinue + }) } } else { nodes, eof = loadNodesByMode(node, inputIndex, mode, size, isDoc, isHeading)