✨ feat(vscode): 代码阅读的函数和类可以看调用树
This commit is contained in:
1 parent
8dc572bf94
commit
645542eb5c
17 files changed
+1679
-5
No files matched your search
@@ -1,5 +1,5 @@
|
||||
import type { ReactElement } from 'react'
|
||||
import { Eye, MessageSquareText, Pencil, Sparkles } from 'lucide-react'
|
||||
import { Eye, GitBranch, MessageSquareText, Pencil, Sparkles } from 'lucide-react'
|
||||
|
||||
/** 「重写注释」按钮的样子和动作:fresh 是块还没有注释、点了新写一段;正在重写时不能再点。 */
|
||||
export interface RewriteTool {
|
||||
@@ -14,7 +14,7 @@ export interface RewriteTool {
|
||||
* 「问 AI」:点开 / 收起块下面的问答区,展开时带按下的底色。
|
||||
* 「编辑 / 预览」切换:预览时是铅笔「编辑」,编辑时是眼睛「预览」、带按下的底色。
|
||||
*/
|
||||
export function BlockTools({ editing, onToggleEdit, asking, onToggleAsk, rewrite }: {
|
||||
export function BlockTools({ editing, onToggleEdit, asking, onToggleAsk, rewrite, callTree }: {
|
||||
editing: boolean
|
||||
onToggleEdit: () => void
|
||||
/** 块下面的问答区展开着 */
|
||||
@@ -23,6 +23,8 @@ export function BlockTools({ editing, onToggleEdit, asking, onToggleAsk, rewrite
|
||||
onToggleAsk?: () => void
|
||||
/** 没给就不显示「按注释规范重写」(不能写注释的块) */
|
||||
rewrite?: RewriteTool
|
||||
/** 没给,或棵数是 0,就不显示调用树(还没查到、没有调用者、语言不提供) */
|
||||
callTree?: { anchor: string, count: number, open: boolean, onOpen: () => void }
|
||||
}): ReactElement {
|
||||
const label = editing ? '预览' : '编辑'
|
||||
const Icon = editing ? Eye : Pencil
|
||||
@@ -65,6 +67,21 @@ export function BlockTools({ editing, onToggleEdit, asking, onToggleAsk, rewrite
|
||||
>
|
||||
<Icon size={14} strokeWidth={1.8} aria-hidden />
|
||||
</button>
|
||||
{callTree && callTree.count > 0 && (
|
||||
<button
|
||||
type="button"
|
||||
className="cr-tool flex h-5 items-center justify-center gap-px rounded px-1"
|
||||
data-call-tree={callTree.anchor}
|
||||
data-active={callTree.open ? '' : undefined}
|
||||
data-tooltip="调用树"
|
||||
aria-label="调用树"
|
||||
aria-expanded={callTree.open}
|
||||
onClick={callTree.onOpen}
|
||||
>
|
||||
<GitBranch size={14} strokeWidth={1.8} aria-hidden />
|
||||
<span className="cr-call-count">{callTree.count}</span>
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Reference in new issue
Block a user