DOC-FULL-020 P0 | position → NoteAnchor 转换 【status:partial】 #69
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
6种 position 到 anchor 的映射,Unknown 兜底为 Material anchor,FFI 可调用
M-DOC-FULL 里程碑 issue。详见设计文档。
DOC-FULL-020 P0 | position → NoteAnchor 转换to DOC-FULL-020 P0 | position → NoteAnchor 转换 【status:partial】审查结论:document runtime 当前有文件类型识别/MaterialType/PreviewMode/DocumentInfo(基本)/Markdown解析/Text解析/ImageMeta/Search(V1 Markdown+Text)/NoteAnchor(V1)/ReadingEvent(V1)/ReadingPosition(V1)/EventBuffer(V1基础)/iOS构建/UniFFI绑定/docs。但 V2 核心模型(ReadingSession/EventV2/ActiveTimeTracker)不存在,EventBuffer 缺 ack/failed,Position 缺 camelCase+clamp,PDF/EPUB/Office 为 stub,测试覆盖不足 V2。
本 Issue: from_position() 已实现 6 种映射。缺: 测试、Unknown 兜底验证。
状态: status:partial
工作类型: work:extend-existing
完成报告
改动文件
crates/zx_document_core/src/anchors.rs— 新增NoteAnchor::to_position()反向转换方法,from_position()现在设置position_snapshot: Some(pos.clone())crates/zx_document_ffi/src/lib.rs— 新增restore_position_from_anchoruniffi 导出crates/zx_document_ffi/src/zx_document.udl— 新增restore_position_from_anchor(NoteAnchor) -> ReadingPosition?转换矩阵
测试覆盖(7 个新增)
test_to_position_with_snapshot/test_to_position_without_snapshot_uses_minimaltest_to_position_from_search_result_pdf/test_to_position_from_search_result_markdowntest_to_position_knowledge_item_returns_none/test_to_position_material_without_snapshot_returns_nonetest_roundtrip_position_anchor_position(from_position → to_position 无损)代码证据
验证