其他
调试或深入理解某个函数时,用 tldr 五层分析从结构…
适用于需要深入调试、重构、代码审查或性能分析某个具体函数的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
调试或深入理解某个函数时,用 tldr 特定
解决思路
- 通过 `/tldr-deep <function_name>` 启动分析,或对指定函数执行完整五层分析。
- 先用 `tldr search "def <function_name>" .` 定位函数所在文件。
- 执行 L1 AST:运行 `tldr extract <found_file>`,提取完整文件结构。
- 执行 L2 Call Graph:运行 `tldr context <function_name> --project . --depth 2`,获取调用图。
- 执行 L3 CFG:运行 `tldr cfg <found_file> <function_name>`,分析控制流复杂度。
- 执行 L4 DFG:运行 `tldr dfg <found_file> <function_name>`,分析数据流。
- 执行 L5 Slice:运行 `tldr slice <found_file> <function_name> <target_line>`,分析目标行依赖切片。
- 按输出格式汇总 L1:记录文件路径 `{file_path}`、函数签名 `{signature}`、docstring `{docstring}`。
- 按输出格式汇总 L2:列出该函数调用的函数列表 `Calls`,以及调用该函数的函数列表 `Called by`。
- 按输出格式汇总 L3:记录基本块数量 `Blocks`、圈复杂度 `Cyclomatic Complexity`;若 `M > 10` 标记为 Hot;列出分支,如 `if: line X`、`for: line Y`。
- 按输出格式汇总 L4:记录定义的变量及行号,如 `{var1} @ line X`;记录使用的变量及行号列表,如 `{var1} @ lines [A, B, C]`。
- 按输出格式汇总 L5:记录目标行切片中的行数 `Lines in slice`;列出关键依赖,如数据依赖 `line X → line Y`、控制依赖 `line A → line B`。
- 在输出末尾标注总 token 量 `~{tokens} tokens`,以及相对原始文件约 95% 的节省。
- 使用程序化 API 时,从 `tldr.api` 导入 `extract_file`、`get_relevant_context`、`get_cfg_context`、`get_dfg_context`、`get_slice`。
- 程序化 API 依次调用:`extract_file("src/processor.py")`;`get_relevant_context("src/", "process_data", depth=2)`;`get_cfg_context("src/processor.py", "process_data")`;`get_dfg_context("src/processor.py", "process_data")`;`get_slice("src/processor.py", "process_data", target_line=42)`。
适用边界 · 注意事项
- 只需要快速浏览或简单搜索代码,不需要五层深度分析时。
- 函数未定位到具体文件,或 L5 所需的目标行未确定时。
- 未安装或无法运行 tldr CLI/Python API 的环境。