Coverage for cli / input.py: 67%
9 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-29 02:55 +0800
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-29 02:55 +0800
1"""
2用户输入模块
4负责 prompt_toolkit 键绑定和读取用户输入。
5"""
6from prompt_toolkit import PromptSession
7from prompt_toolkit.key_binding import KeyBindings
9_bindings = KeyBindings()
12@_bindings.add("escape", "enter") # Alt+Enter 或 Esc+Enter 换行
13def _newline(event):
14 event.current_buffer.insert_text("\n")
17def get_input(session_id: str) -> str:
18 """读取一行用户输入,Enter 提交,Alt+Enter 换行。"""
19 prompt_session = PromptSession(key_bindings=_bindings)
20 return prompt_session.prompt(
21 f"[{session_id}] > ",
22 multiline=False,
23 )