C no Maguyva: grafos de chamadas para código de sistemas e embarcado
Em C, o grafo de chamadas é a arquitetura. Um agente deveria lê-lo antes de editar.
Extensões
.c, .h
O Maguyva oferece suporte a Lua com AST, símbolos e grafo, para que agentes de IA sigam módulos, métodos com dois-pontos, classes com metatables e cadeias de require.
Lua não tem palavra-chave para classes. Objetos são tabelas, métodos são funções guardadas nelas, e herança é uma chamada a setmetatable. Um módulo é o que require retornar. A estrutura é real, mas vive em convenções que uma busca de texto não entende.
O Maguyva lê essas convenções como estrutura, para que um agente possa perguntar quem chama um método ou quais tabelas estendem uma base e receber uma resposta direta.
O Maguyva cobre arquivos .lua. Declarações de função, definições local function e expressões de função são extraídas, e métodos com dois-pontos como function Account:deposit() são atribuídos à tabela dona deles, Account. Cadeias de métodos são seguidas chamada a chamada, e chamadas em self continuam ligadas ao objeto que as contém.
As convenções do Lua viram relações:
require, dofile e loadfile registram imports.setmetatable no nível do módulo registra herança.ClassName:new(), ClassName.new() e setmetatable({...}, ClassName) contam como instanciação.error() registra um throw, e pcall e xpcall registram um catch.O grafo também registra leituras e escritas e fluxo de controle.
Inventory:addItem, e de quais scripts?” (find_symbol, depois dependency_search incoming)util.http com require?” (dependency_search)get_task_context)string, table, math, io, os, coroutine, debug e utf8) mais as APIs vim.* do Neovim e ngx.* do OpenResty. Chamadas a essas APIs não são arestas do grafo, então use text_pattern_search para encontrá-las.classes e imports do structural_search não selecionam nada para Lua. Use find_symbol ou text_pattern_search.Conecte um repositório pelo início rápido e depois confira a matriz de suporte na página de compatibilidade. Para engines que embarcam Lua em código nativo, leia também o guia de C.
Uso ideal
Fluxos de trabalho de agente
Detalhes do motor
Pontos de entrada MCP úteis
Use para uma função de módulo ou método com dois-pontos quando precisar da definição e dos chamadores.
Use a travessia incoming em um módulo compartilhado para ver quais arquivos o carregam com require antes de movê-lo.
Use para chamadas a `vim.*`, `ngx.*` ou à biblioteca padrão, que são filtradas do grafo.
Guias relacionados
Em C, o grafo de chamadas é a arquitetura. Um agente deveria lê-lo antes de editar.
Extensões
.c, .h
Útil quando codebases Python se espalham por serviços, scripts, type stubs e código de integração operacional.
Extensões
.py, .pyi, .pyw