🐛 fix(vscode): 调用树按钮一直显示,点开时没数到就当场再查

This commit is contained in:
cruldra committed 2026-10-11 22:49:42 +11:00
1 parent 6e8be1447a
commit 83d1f4a675
5 files changed
+155 -39

No files matched your search

@@ -1,5 +1,6 @@
import type { ReactElement } from 'react'
import { Eye, GitBranch, MessageSquareText, Pencil, Sparkles } from 'lucide-react'
import { cn } from '@/lib/utils'
/** 「重写注释」按钮的样子和动作:fresh 是块还没有注释、点了新写一段;正在重写时不能再点。 */
export interface RewriteTool {
@@ -23,7 +24,7 @@ export function BlockTools({ editing, onToggleEdit, asking, onToggleAsk, rewrite
onToggleAsk?: () => void
/** 没给就不显示「按注释规范重写」(不能写注释的块) */
rewrite?: RewriteTool
/** 没给,或棵数是 0,就不显示调用树(还没查到、没有调用者、语言不提供) */
/** 没给就不显示调用树。count 是后台数出的棵数,大于 0 时按钮上带这个数字,是 0 时只有图标(还没数到、没有调用者,点开时会当场再问) */
callTree?: { anchor: string, count: number, open: boolean, onOpen: () => void }
}): ReactElement {
const label = editing ? '预览' : '编辑'
@@ -67,10 +68,10 @@ export function BlockTools({ editing, onToggleEdit, asking, onToggleAsk, rewrite
>
<Icon size={14} strokeWidth={1.8} aria-hidden />
</button>
{callTree && callTree.count > 0 && (
{callTree && (
<button
type="button"
className="cr-tool flex h-5 items-center justify-center gap-px rounded px-1"
className={cn('cr-tool flex h-5 items-center justify-center rounded', callTree.count > 0 ? 'gap-px px-1' : 'w-6')}
data-call-tree={callTree.anchor}
data-active={callTree.open ? '' : undefined}
data-tooltip="调用树"
@@ -79,7 +80,7 @@ export function BlockTools({ editing, onToggleEdit, asking, onToggleAsk, rewrite
onClick={callTree.onOpen}
>
<GitBranch size={14} strokeWidth={1.8} aria-hidden />
<span className="cr-call-count">{callTree.count}</span>
{callTree.count > 0 && <span className="cr-call-count">{callTree.count}</span>}
</button>
)}
</div>