# current-question

[English](./README.md) | [简体中文](./README.zh-CN.md)

> pi 扩展：在编辑器上方置顶显示最近 N 条用户问题，支持切换/展开/复制/带上下文的外部编辑器回复。

pi coding agent 扩展，在编辑器上方固定显示「最近 n 条用户问题」，方便在长会话中快速定位「我哪条问题对应下面的回答」。

## 功能

- 显示最近 N 条用户问题（默认 5 条，`/current-question <数字>` 设置）
- 每条只展示一行，超长自动截断并加 `...`（正确处理中文等双宽字符）
- 标题带「第 N 轮」计数：`❯ Current Questions (N)`，N 为当前提问轮数
- 默认收起；选中条可 `Ctrl+Alt+L` 展开看问题全文 + 该轮回答，`Ctrl+Alt+H` 收起
- 收起态 `Ctrl+Alt+H` 隐藏当前问题；隐藏态 `Ctrl+Alt+L` 重新显示
- 展开态 `Ctrl+Alt+J/K` 滚动回答内容；收起态 `Ctrl+Alt+J/K` 切换问题条目
  （vim 风格 j=下/k=上；展开时 j=往后看回答，收起时 j=更早的问题）
- 选择可超出显示窗口：列表含全部历史问题，窗口固定显示 maxLines 条，选中移出窗口时窗口随之滚动；到顶/到底静默停止
- 展开后回答以固定行数窗口显示，可滚动，到顶/到底静默停止
- 展开态高度自适应终端：问题全文超长截断，回答窗口按终端高度动态压缩，避免触碰顶部引发流式抖动
- `Ctrl+Alt+B` 同时复制选中条完整问题与回答
- `Ctrl+Alt+G` 带选中问答上下文打开外部编辑器编辑回复（vi 系列自动锁定历史区只读）
- 发新消息后选中自动归位到最新一条、收起
- 以 sessionManager 为唯一真相源，`/undo`、`/redo`、`/tree`、压缩后保持一致

## 安装

```bash
# 全局安装
pi install npm:@zzs-fun/current-question

# 或仅安装到当前项目
pi install -l npm:@zzs-fun/current-question
```

## 快捷键

| 快捷键 | 收起态 | 展开态 |
|--------|--------|--------|
| `Ctrl+Alt+J` | 选更早问题 | 回答下滚 |
| `Ctrl+Alt+K` | 选更新问题 | 回答上滚 |
| `Ctrl+Alt+L` | 展开选中条（显示问题全文 + 回答） | — |
| `Ctrl+Alt+H` | 隐藏当前问题 | 收起选中条 |
| `Ctrl+Alt+B` | 复制选中条完整问题与回答 | 复制选中条完整问题与回答 |
| `Ctrl+Alt+G` | 带选中问答上下文打开外部编辑器回复 | 同左 |

> 注：会覆盖编辑器原 `Ctrl+Alt+J` / `Ctrl+Alt+K` 光标移动。

## 命令

```
/current-question [on|off|toggle|<数字>]
```

- `on` / `off` / `toggle`：切换开关
- 数字：设置显示条数（如 `/current-question 8`），并开启
- 不带参数：等价于 `toggle`

## License

MIT