tui: move view mode state
This commit is contained in:
parent
80a41d3264
commit
bc31bfac58
|
|
@ -16,7 +16,7 @@ use crate::command::{
|
||||||
use crate::input::InputBuffer;
|
use crate::input::InputBuffer;
|
||||||
use crate::scroll::Scroll;
|
use crate::scroll::Scroll;
|
||||||
use crate::task::TaskStore;
|
use crate::task::TaskStore;
|
||||||
use crate::ui::Mode;
|
use crate::view_mode::Mode;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum CommandCompletionApply {
|
pub enum CommandCompletionApply {
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ mod spawn;
|
||||||
mod task;
|
mod task;
|
||||||
mod tool;
|
mod tool;
|
||||||
mod ui;
|
mod ui;
|
||||||
|
mod view_mode;
|
||||||
|
|
||||||
use std::future::Future;
|
use std::future::Future;
|
||||||
use std::io;
|
use std::io;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ use unicode_width::{UnicodeWidthChar, UnicodeWidthStr};
|
||||||
|
|
||||||
use crate::block::{Block, ToolCallBlock, ToolCallState};
|
use crate::block::{Block, ToolCallBlock, ToolCallState};
|
||||||
use crate::cache::FileCache;
|
use crate::cache::FileCache;
|
||||||
use crate::ui::Mode;
|
use crate::view_mode::Mode;
|
||||||
|
|
||||||
/// Maximum body lines in normal mode for tool output previews.
|
/// Maximum body lines in normal mode for tool output previews.
|
||||||
const NORMAL_MAX_BODY: usize = 5;
|
const NORMAL_MAX_BODY: usize = 5;
|
||||||
|
|
|
||||||
|
|
@ -31,36 +31,7 @@ use crate::app::{ActionbarNoticeLevel, App, CompletionState, alert_source_label,
|
||||||
use crate::block::{Block, CompactEvent, ThinkingBlock, ThinkingState};
|
use crate::block::{Block, CompactEvent, ThinkingBlock, ThinkingState};
|
||||||
use crate::command::CommandCandidate;
|
use crate::command::CommandCandidate;
|
||||||
use crate::task::{TaskCounts, TaskEntry, TaskStatus, TaskStore};
|
use crate::task::{TaskCounts, TaskEntry, TaskStatus, TaskStore};
|
||||||
|
use crate::view_mode::Mode;
|
||||||
/// Display density for the history view.
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
||||||
pub enum Mode {
|
|
||||||
/// Every block fully expanded.
|
|
||||||
Detail,
|
|
||||||
/// Completed blocks compressed to roughly 5–6 lines; in-progress
|
|
||||||
/// tool blocks stay in detail.
|
|
||||||
Normal,
|
|
||||||
/// Each block rendered as a single line.
|
|
||||||
Overview,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Mode {
|
|
||||||
pub fn cycle(self) -> Self {
|
|
||||||
match self {
|
|
||||||
Mode::Detail => Mode::Normal,
|
|
||||||
Mode::Normal => Mode::Overview,
|
|
||||||
Mode::Overview => Mode::Detail,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn label(self) -> &'static str {
|
|
||||||
match self {
|
|
||||||
Mode::Detail => "detail",
|
|
||||||
Mode::Normal => "normal",
|
|
||||||
Mode::Overview => "overview",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn draw(frame: &mut Frame, app: &mut App) {
|
pub fn draw(frame: &mut Frame, app: &mut App) {
|
||||||
let area = frame.area();
|
let area = frame.area();
|
||||||
|
|
|
||||||
29
crates/tui/src/view_mode.rs
Normal file
29
crates/tui/src/view_mode.rs
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
/// Display density for the history view.
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
pub enum Mode {
|
||||||
|
/// Every block fully expanded.
|
||||||
|
Detail,
|
||||||
|
/// Completed blocks compressed to roughly 5–6 lines; in-progress
|
||||||
|
/// tool blocks stay in detail.
|
||||||
|
Normal,
|
||||||
|
/// Each block rendered as a single line.
|
||||||
|
Overview,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Mode {
|
||||||
|
pub fn cycle(self) -> Self {
|
||||||
|
match self {
|
||||||
|
Mode::Detail => Mode::Normal,
|
||||||
|
Mode::Normal => Mode::Overview,
|
||||||
|
Mode::Overview => Mode::Detail,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn label(self) -> &'static str {
|
||||||
|
match self {
|
||||||
|
Mode::Detail => "detail",
|
||||||
|
Mode::Normal => "normal",
|
||||||
|
Mode::Overview => "overview",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user