Skip to content

Commit

Permalink
Add inline_height setting. Zero disables inline mode (the default)
Browse files Browse the repository at this point in the history
  • Loading branch information
pdecat committed Mar 25, 2023
1 parent 5d84996 commit 4ea097b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 9 deletions.
2 changes: 2 additions & 0 deletions atuin-client/src/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ pub struct Settings {
pub filter_mode: FilterMode,
pub filter_mode_shell_up_key_binding: Option<FilterMode>,
pub shell_up_key_binding: bool,
pub inline_height: u16,
pub show_preview: bool,
pub exit_mode: ExitMode,
pub word_jump_mode: WordJumpMode,
Expand Down Expand Up @@ -336,6 +337,7 @@ impl Settings {
.set_default("search_mode", "fuzzy")?
.set_default("filter_mode", "global")?
.set_default("shell_up_key_binding", false)?
.set_default("inline_height", 0)?
.set_default("show_preview", false)?
.set_default("exit_mode", "return-original")?
.set_default("session_token", "")?
Expand Down
32 changes: 23 additions & 9 deletions src/command/client/search/interactive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -466,29 +466,37 @@ impl State {

struct Stdout {
stdout: std::io::Stdout,
inline_mode: bool,
}

impl Stdout {
pub fn new() -> std::io::Result<Self> {
pub fn new(inline_mode: bool) -> std::io::Result<Self> {
terminal::enable_raw_mode()?;
let mut stdout = stdout();
if !inline_mode {
execute!(stdout, terminal::EnterAlternateScreen)?;
}
execute!(
stdout,
// terminal::EnterAlternateScreen,
event::EnableMouseCapture,
event::EnableBracketedPaste
event::EnableBracketedPaste,
)?;
Ok(Self { stdout })
Ok(Self {
stdout,
inline_mode,
})
}
}

impl Drop for Stdout {
fn drop(&mut self) {
if !self.inline_mode {
execute!(self.stdout, terminal::LeaveAlternateScreen).unwrap();
}
execute!(
self.stdout,
// terminal::LeaveAlternateScreen,
event::DisableMouseCapture,
event::DisableBracketedPaste
event::DisableBracketedPaste,
)
.unwrap();
terminal::disable_raw_mode().unwrap();
Expand Down Expand Up @@ -531,12 +539,16 @@ pub async fn history(
settings: &Settings,
db: &mut impl Database,
) -> Result<String> {
let stdout = Stdout::new()?;
let stdout = Stdout::new(settings.inline_height > 0)?;
let backend = CrosstermBackend::new(stdout);
let mut terminal = Terminal::with_options(
backend,
TerminalOptions {
viewport: Viewport::Inline(24),
viewport: if settings.inline_height > 0 {
Viewport::Inline(settings.inline_height)
} else {
Viewport::Fullscreen
},
},
)?;

Expand Down Expand Up @@ -614,7 +626,9 @@ pub async fn history(
}
};

terminal.clear()?;
if settings.inline_height > 0 {
terminal.clear()?;
}

if index < results.len() {
// index is in bounds so we return that entry
Expand Down

0 comments on commit 4ea097b

Please sign in to comment.