Maguyva 的 Elixir 支援:面向 Phoenix 與 OTP 應用的程式碼圖譜
Elixir 的結構藏在巨集裡。圖譜把它們當作結構來讀。
副檔名
.ex, .exs
Haskell 呼叫函式不需要括號,用運算子組合函式,並透過型別類別分派。render user 是一次呼叫,f . g <$> xs 包含好幾次,show 的含義則取決於該型別的實例。文字搜尋能找到名字,卻找不到名字背後的實例。
Maguyva 把實例和建構子記錄為關係,讓代理能看到哪些型別實作了某個類別,以及值在哪裡被建構。
Maguyva 把 .hs 和 .lhs 檔案對應為 Haskell。函式和繫結作為可呼叫物件擷取,型別類別、data 型別和 newtype 作為型別擷取。以空格分隔的函式應用和中綴運算子中的呼叫都能被識別,匯入會正規化 qualified、hiding 和 as 子句。
型別類別和建構子會成為圖譜中的關係:
instance Eq Point 記錄 Point 實作了 Eq。Point 1 2)計為實例化。error、undefined 和 throw 記錄拋出,catch 等處理器記錄捕捉。由於實例宣告可以定義 show 或 return 這樣的名字,同一檔案中的定義不會被預設為同名裸呼叫的目標。
parseConfig,來自哪些模組?」(先用 find_symbol,再用 dependency_search 的 incoming 方向)ToJSON 實例?」(dependency_search)get_task_context)map、foldr、fmap、pure 和 >>=),以及 Data.List、Control.Monad 等模組,會從關係中過濾掉。查詢它們請使用 text_pattern_search。structural_search 中的 functions 預設集只回傳 lambda,methods 和 variables 預設集什麼也選不到。具名函式請使用 find_symbol。.lhs 檔案會整體按 Haskell 語法讀取,因此結果可能不完整。最適合的情境
代理工作流程
引擎細節
實用的 MCP 進入點
需要函式或型別的定義和參照時使用它;結構化預設集只回傳 lambda。
對型別類別使用 incoming 方向走訪,檢視哪些型別擁有實例。
用於「追蹤一個請求如何被解碼和驗證」這類提示。