✨ feat(vscode): 有说明的函数、类卡片也能重写注释

重写按钮不再只挂在单独的注释卡片上。只替换说明那几行,上下文用这块代码,不当成文件顶上的说明。
This commit is contained in:
cruldra committed 2026-10-03 03:22:20 +08:00
1 parent b608f6cb87
commit a66e4410e7
5 files changed
+46 -7

No files matched your search

+10 -6
View File
@@ -285,6 +285,8 @@ export interface CommentRewriteInput {
earlierKinds: readonly string[]
/** 普通注释后面紧挨着的那一块的原文;没有就不填 */
following?: string
/** 说明挂在这块代码上(函数、类的 docstring)。有它就不当成文件顶上的说明,上下文用这块。 */
attached?: string
}
/** 发给模型的整段话。开头是技能命令,Claude Code 自己加载技能。注释认不出就不组。 */
@@ -292,12 +294,14 @@ export function commentRewritePrompt(input: CommentRewriteInput): string | undef
const body = commentProse(input.comment)
if (body === undefined)
return undefined
const fileComment = isModuleComment(input.comment, input.earlierKinds)
const context = fileComment
? clip(splitLines(input.source).filter((_, index) => index < input.startLine || index > input.endLine).join('\n').trim(), '文件其余部分')
: input.following
? clip(input.following, '这块代码')
: { text: '(后面没有紧挨着的代码)', note: '' }
const fileComment = input.attached === undefined && isModuleComment(input.comment, input.earlierKinds)
const context = input.attached !== undefined
? clip(input.attached, '这块代码')
: fileComment
? clip(splitLines(input.source).filter((_, index) => index < input.startLine || index > input.endLine).join('\n').trim(), '文件其余部分')
: input.following
? clip(input.following, '这块代码')
: { text: '(后面没有紧挨着的代码)', note: '' }
return [
COMMENT_SKILL,
'只按这个技能重写这一段注释。用中文。不要改代码,不要加技能没要求的中文名记号。只输出新注释的正文,不要定界符,不要解释。',