diff --git a/src/mcp_client.py b/src/mcp_client.py index d11a4a42..b1f45e83 100644 --- a/src/mcp_client.py +++ b/src/mcp_client.py @@ -376,6 +376,23 @@ def get_git_diff(path: str, base_rev: str = "HEAD", head_rev: str = "") -> str: #region: C +def ts_c_get_skeleton(path: str) -> str: + """ + Returns a skeleton of a C file. + [C: tests/test_ts_c_tools.py:test_ts_c_get_skeleton] + """ + p, err = _resolve_and_check(path) + if err: return err + assert p is not None + if not p.exists(): return f"ERROR: file not found: {path}" + try: + from src.file_cache import ASTParser + code = p.read_text(encoding="utf-8") + parser = ASTParser("c") + return parser.get_skeleton(code, path=str(p)) + except Exception as e: + return f"ERROR generating skeleton for '{path}': {e}" + def ts_c_get_code_outline(path: str) -> str: """ Returns a hierarchical outline of a C file.