Skip to content

feat(terminal): 终端左边距显示行时间戳与行号 - #225

Merged
feigeCode merged 3 commits into
mainfrom
feat/terminal-timestamps-margin
Sep 18, 2026
Merged

feigeCode merged 3 commits into
mainfrom
feat/terminal-timestamps-margin

Conversation

@feigeCode

Copy link
Copy Markdown
Owner

需求

issue #220:终端支持时间戳展示,方便查看命令执行的时长;显示与否可配置。

方案

照 WindTerm 的做法,在应用侧的左侧边距列绘制「行时间戳 + 行号」,不改 shell、不接管输出路径:

[10:55:51]    1   root@shuqi-yt02:~# // ls
[10:55:51]    2   [root@shuqi-yt02 ~]#
  • 几何照 WindTerm 实测:[HH:MM:SS](10 格)+ 3 格 + 行号 + 3 格 + 内容;行号列宽跟随当前最大行号位数,不再为空量级预留空白。
  • 时间戳按行记录(terminal crate 新增 line_timeline):以 history_size + grid_line 作为行的绝对 id,在 TerminalEvent::Wakeup 处采样,因此本地 / SSH / Telnet / 串口行为一致,后台 tab 也能继续记录;备用屏幕(vim/less 等)直接跳过。
  • 视图侧(terminal_view)预留边距列:网格原点右移、网格列数扣减,鼠标坐标 / IME 候选框 / 历史补全浮层位置同步扣减。
  • 设置项:core/settings 与终端设置面板新增「显示每行时间戳」「显示行号」两个开关。

已知取舍

  • 行号位数进位(10 / 100 / 1000)时列宽变化会重算网格列数,触发一次 PTY resize。
  • 边距随开关占用屏幕列数(时间戳 + 行号全开、两位数行号时共 18 格)。

验证

  • cargo test -p terminal --lib → 501 passed
  • cargo test -p terminal_view --lib → 547 passed(含新增的边距列数 / 行号列宽单测)
  • cargo check -p terminal_view --all-targets 通过,cargo clippy 无新增告警,rustfmt --check 干净

Closes #220

feigeCode and others added 3 commits September 18, 2026 11:06
- terminal: 新增 line_timeline 行时间轴,按网格绝对行号记录每行到达时间,
  在 Wakeup 处采样,不接管输出路径,本地/SSH/Telnet/串口行为一致。
- terminal_view: 网格左侧留出边距列绘制时间戳与行号,网格列数、鼠标坐标、
  IME 与补全浮层位置同步扣减;备用屏幕不展示。
- core/settings 与设置面板新增「显示每行时间戳」「显示行号」开关。
@feigeCode
feigeCode merged commit 33bef32 into main Sep 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: 建议终端窗口支持时间戳展示

1 participant