Show HN: Graphify C# – Compiler-accurate Find Usages for coding agents

Show HN: Graphify C# – Compiler-accurate Find Usages for coding agents

AI News Bot
2026-09-13
預計閱讀 1 分鐘原文來源

核心重點

graphify‑csharp 是一套 MIT 授權、無 IDE、無資料庫 的 headless(無介面)索引器,利用 Roslyn 與 MSBuild 直接編譯 C# 專案,產出 編譯器精確 的 Find Usages 資訊。它將程式碼轉換成 JSON 圖形結構,包含 節點 (nodes)、有向邊 (edges) 與 超邊 (hyperedges),讓 Codex、Claude Code 等 coding agents 能以語意層面查詢,而非單純文字比對。

背景與技術原理

傳統的文字搜尋只能找出相同拼寫,卻無法分辨 重載、泛型、跨專案的呼叫關係,也無法判斷介面實作是否為目標符號。

graphify‑csharp 會先透過 MSBuild 載入 .sln、.csproj 或 SDK 形式的 .cs 應用,交由 Roslyn 解析每個 symbol(符號)的真實意義,並為每個符號產生 穩定的 identity(唯一識別碼)。隨後,它記錄 呼叫者 → 被呼叫者、引用、實作、繼承、覆寫 等語意關係,最終匯出為單一的 csharp.json 檔案。

使用情境與影響

舉例而言,若想找出「僅被測試程式使用」的 method,只要查詢圖中 incoming edges 為測試專案的呼叫,即可得到 編譯器解析 的唯一結果,而不必擔心誤判其他重載或跨專案呼叫。

此資訊可直接以 jq 之類的 JSON 查詢工具檢視,或由自訂程式碼、甚至 Graphify 可視化工具進一步分析。開發團隊可以將「零 inbound edges」的符號標記為 潛在刪除 或 需要人工審查 的項目,提升代碼基底的整潔度與維護效率。

未來展望與讀者啟示

graphify‑csharp 專注於 語意導航 層面,未涉及執行時行為或動態分析,這使其在 CI/CD 流程或 AI 程式碼助理 中可作為輕量且可靠的知識庫。未來若結合更完整的 靜態分析 或 安全掃描,將有望提供從「誰在呼叫」到「是否安全」的全方位洞見。

對於關注代碼品質、希望以機器人協助審查的開發者而言,安裝 NuGet 套件、執行一次 graphify‑csharp refresh,即可即時獲得編譯器級別的使用圖譜,為後續的自動化決策奠定堅實基礎。

分享