MaguyvaのC対応: システム・組み込みコードのコールグラフ
Cでは、コールグラフこそがアーキテクチャです。エージェントは編集の前にそれを読むべきです。
拡張子
.c, .h
Luaにはクラスを宣言するキーワードがありません。オブジェクトはテーブルで、メソッドはその中に格納された関数で、継承は setmetatable の呼び出しです。モジュールは require が返すものすべてです。構造は確かに存在しますが、それはテキスト検索には理解できない慣習の中にあります。
Maguyvaはそうした慣習を構造として読み取るため、エージェントはメソッドの呼び出し元や、基底を拡張しているテーブルを尋ねて、直接の答えを得られます。
Maguyvaは .lua ファイルに対応しています。関数宣言、local function の定義、関数式が抽出され、function Account:deposit() のようなコロンメソッドは、それを所有するテーブル Account に帰属されます。メソッドチェーンは呼び出しごとにたどられ、self に対する呼び出しはそれを囲むオブジェクトに結び付いたままです。
Luaの慣習は次のように関係性に対応付けられます。
require、dofile、loadfile はインポートを記録します。setmetatable の呼び出しは継承を記録します。ClassName:new()、ClassName.new()、setmetatable({...}, ClassName) はインスタンス化として数えられます。error() はスローを、pcall と xpcall はキャッチを記録します。グラフには、読み取りと書き込み、制御フローも記録されます。
Inventory:addItem を呼び出しているのは誰で、どのスクリプトからか?」(find_symbol、次に dependency_search の incoming)util.http をrequireしているモジュールはどれか?」(dependency_search)get_task_context)string、table、math、io、os、coroutine、debug、utf8)に加え、Neovimの vim.* とOpenRestyの ngx.* のAPIです。それらのAPIへの呼び出しはグラフのエッジにならないため、見つけるには text_pattern_search を使ってください。structural_search の classes と imports のプリセットはLuaでは何も選択しません。代わりに find_symbol か text_pattern_search を使ってください。クイックスタートでリポジトリを接続し、互換性ページで対応マトリクスを確認してください。ネイティブコードにLuaを組み込むエンジンについては、Cガイドもご覧ください。
最適な用途
エージェントワークフロー
エンジンの詳細
役立つMCPエントリーポイント
定義と呼び出し元が必要なときに、モジュール関数やコロンメソッドで使ってください。
共有モジュールを移動する前に、incomingのトラバーサルを使い、それをrequireしているファイルを確認してください。
グラフから除外される `vim.*`、`ngx.*`、標準ライブラリへの呼び出しに使ってください。
関連ガイド
Cでは、コールグラフこそがアーキテクチャです。エージェントは編集の前にそれを読むべきです。
拡張子
.c, .h
Pythonのコードベースがサービス、スクリプト、型スタブ、運用のつなぎコードにまたがって広がっているときに役立ちます。
拡張子
.py, .pyi, .pyw