Skip to content

feat: 划线评论(selection comment)支持#5

Open
onekanyuncoder wants to merge 3 commits into
mainfrom
feat/selection-comment
Open

feat: 划线评论(selection comment)支持#5
onekanyuncoder wants to merge 3 commits into
mainfrom
feat/selection-comment

Conversation

@onekanyuncoder
Copy link
Copy Markdown
Collaborator

Summary

  • createComment 支持划线评论:通过 --quote 引用文件原文,自动计算 target_selector(startOffset/endOffset/prefix/suffix),Web UI 可精确高亮
  • 可选 --offset 参数指定引用文字在文件中的字符偏移,不传则自动匹配第一次出现
  • comment list 和 MCP docz_list_comments 输出中展示引用内容(> ... 格式)

变更文件

文件 变更
src/client.ts createComment 新增 quote/targetSelector 参数;新增 buildTargetSelector 方法从文件内容计算精确偏移和上下文
src/commands.ts comment add 新增 --quote/--offset 选项;comment list 展示 target_content
src/mcp.ts docz_add_comment 新增 quote/quote_offset 参数;docz_list_comments 展示引用内容
src/client.test.ts 新增 selection comment 创建测试、buildTargetSelector 偏移计算测试(含 explicit offset、first occurrence、not found)
scripts/smoke-test-remote.sh 新增划线评论集成测试(12b/13b/16b)

使用示例

# CLI — 自动匹配第一次出现
docz comment add myspace:README.md "描述有误" --quote "Hello World"

# CLI — 指定偏移(文件中第二次出现)
docz comment add myspace:README.md "描述有误" --quote "Hello World" --offset 120

# MCP
docz_add_comment(space="myspace", path="README.md", content="描述有误", quote="Hello World")

Test plan

  • 单元测试 52/52 通过(vitest)
  • 集成测试 24/24 通过(smoke-test-remote.sh on test-uts)
  • buildTargetSelector 偏移计算、prefix/suffix 提取验证
  • 带 quote 的评论创建、列表展示、删除全流程验证

Made with Cursor

yhk added 3 commits April 24, 2026 17:27
- client.ts: createComment 支持 quote/targetSelector 参数,新增 buildTargetSelector 从文件内容计算精确偏移
- commands.ts: comment add 新增 --quote/--offset 选项,comment list 展示引用原文
- mcp.ts: docz_add_comment 新增 quote/quote_offset 参数,docz_list_comments 展示引用内容
- client.test.ts: 新增 selection comment 和 buildTargetSelector 测试用例
- smoke-test-remote.sh: 新增划线评论集成测试(创建/列表/删除)

Made-with: Cursor
- client.ts: 新增 stripMarkdownToText,将 Markdown 源码转为纯文本(匹配浏览器 DOM textContent),用于精确计算选区偏移
- commands.ts/mcp.ts: .md 文件自动 strip Markdown 标记后再计算 target_selector 偏移
- smoke-test-remote.sh: 集成测试补充 target_selector 完整验证(创建时传入 startOffset/endOffset/prefix/suffix,列表时验证保留)

Made-with: Cursor
--offset 基于字符偏移,对 Markdown 文件用户无法正确计算(源码偏移 ≠ DOM 偏移)。
改为 --nth N 表示匹配第 N 次出现,对 Markdown 和纯文本都适用。

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant