docs: 逐模块细化中文逻辑注释并覆盖测试与示例

This commit is contained in:
2026-11-12 10:31:35 +08:00
parent d29a1be329
commit cd23e70db1
123 changed files with 2664 additions and 249 deletions
+8 -1
View File
@@ -3,7 +3,7 @@
//!
use super::*;
/// 根据当前输入构造本模块的派生结果,具体的验证与资源边界见函数内步骤。
/// 将本进程 HTTP 活动投影为可筛选请求列表和独立滚动详情,并生成选择/分隔条命中区域。
pub(super) fn build(
p: &mut Painter,
state: &mut DeveloperToolsState,
@@ -50,10 +50,13 @@ pub(super) fn build(
MUTED,
true,
);
// 上下区分隔位置取自工具状态比例,拖动只改变显示分配,不改变记录本身。
let divider = 92.0 + (bottom - 92.0) * state.network_fraction;
// 对方法、路径和状态的组合字符串做大小写不敏感子串匹配;未响应记录可用 pending 搜索。
let filter = state.filter.to_lowercase();
let visible = records
.iter()
// 清屏按 ID 水位隐藏旧记录,不删除共享 ActivityLog,Console 仍可独立展示同一条请求。
.filter(|r| r.id > state.network_after)
.filter(|r| {
format!(
@@ -82,10 +85,12 @@ pub(super) fn build(
TEXT
},
);
// 请求 ID 是选择身份,不依赖筛选后行号;点击行仅生成 Request 动作,不重新发送 HTTP。
l.selected = state.selected_request == Some(r.id);
l.action = Some(Action::Request(r.id));
lines.push(l);
}
// 空列表可能来自无记录、清屏或过滤无匹配,统一展示本进程 API 的捕获范围提示。
if lines.is_empty() {
lines.push(Line::new(
"No matching requests. Listening to Tessera's local API.",
@@ -100,6 +105,7 @@ pub(super) fn build(
false,
);
p.split(Rect::new(x + 1.0, divider, w - 2.0, 1.0), Split::Network);
// 详情从完整保留记录中查找,因此筛选隐藏某行后可继续查看已选详情;记录淘汰后才回提示。
let selected = records
.iter()
.find(|r| Some(r.id) == state.selected_request);
@@ -113,6 +119,7 @@ pub(super) fn build(
MUTED,
);
}
// 请求列表与详情使用不同 Region,各自维护滚动量,避免切换详情影响列表定位。
p.lines(
Rect::new(x + 1.0, divider + 5.0, w - 2.0, bottom - divider - 5.0),
Region::Details,