diff --git a/src/command.rs b/src/command.rs index 85d7f7f..7b1fb23 100644 --- a/src/command.rs +++ b/src/command.rs @@ -137,14 +137,15 @@ impl fmt::Display for Command { Command::Back => "back".to_string(), Command::Open(mode) => format!("open {}", mode), Command::Goto(mode) => format!("goto {}", mode), - Command::Move(mode, MoveAmount::Extreme) => { - format!("move {}", match mode { + Command::Move(mode, MoveAmount::Extreme) => format!( + "move {}", + match mode { MoveMode::Up => "top", MoveMode::Down => "bottom", MoveMode::Left => "leftmost", MoveMode::Right => "rightmost", - }) - }, + } + ), Command::Move(mode, MoveAmount::Integer(amount)) => format!("move {} {}", mode, amount), Command::Shift(mode, amount) => format!("shift {} {}", mode, amount.unwrap_or(1)), Command::Search(term) => format!("search {}", term), @@ -229,20 +230,20 @@ pub fn parse(input: &str) -> Option { } "move" => { let cmd: Option = { - args.get(0) - .and_then(|extreme| match *extreme { - "top" => Some(Command::Move(MoveMode::Up, MoveAmount::Extreme)), - "bottom" => Some(Command::Move(MoveMode::Down, MoveAmount::Extreme)), - "leftmost" => Some(Command::Move(MoveMode::Left, MoveAmount::Extreme)), - "rightmost" => Some(Command::Move(MoveMode::Right, MoveAmount::Extreme)), - _ => None - }) + args.get(0).and_then(|extreme| match *extreme { + "top" => Some(Command::Move(MoveMode::Up, MoveAmount::Extreme)), + "bottom" => Some(Command::Move(MoveMode::Down, MoveAmount::Extreme)), + "leftmost" => Some(Command::Move(MoveMode::Left, MoveAmount::Extreme)), + "rightmost" => Some(Command::Move(MoveMode::Right, MoveAmount::Extreme)), + _ => None, + }) }; cmd.or({ - let amount = args.get(1) + let amount = args + .get(1) .and_then(|amount| amount.parse().ok()) - .map(|amount| MoveAmount::Integer(amount)) + .map(MoveAmount::Integer) .unwrap_or_default(); args.get(0) diff --git a/src/commands.rs b/src/commands.rs index d4f4732..71ebf22 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -2,7 +2,9 @@ use std::collections::HashMap; use std::sync::Arc; use std::time::Duration; -use crate::command::{parse, Command, GotoMode, MoveAmount, MoveMode, SeekDirection, ShiftMode, TargetMode}; +use crate::command::{ + parse, Command, GotoMode, MoveAmount, MoveMode, SeekDirection, ShiftMode, TargetMode, +}; use crate::library::Library; use crate::queue::{Queue, RepeatSetting}; use crate::spotify::{Spotify, VOLUME_PERCENT}; @@ -263,22 +265,64 @@ impl CommandManager { kb.insert("A".into(), Command::Goto(GotoMode::Artist)); kb.insert("Up".into(), Command::Move(MoveMode::Up, Default::default())); - kb.insert("Down".into(), Command::Move(MoveMode::Down, Default::default())); - kb.insert("Left".into(), Command::Move(MoveMode::Left, Default::default())); - kb.insert("Right".into(), Command::Move(MoveMode::Right, Default::default())); - kb.insert("PageUp".into(), Command::Move(MoveMode::Up, MoveAmount::Integer(5))); - kb.insert("PageDown".into(), Command::Move(MoveMode::Down, MoveAmount::Integer(5))); - kb.insert("Home".into(), Command::Move(MoveMode::Up, MoveAmount::Extreme)); - kb.insert("End".into(), Command::Move(MoveMode::Down, MoveAmount::Extreme)); + kb.insert( + "Down".into(), + Command::Move(MoveMode::Down, Default::default()), + ); + kb.insert( + "Left".into(), + Command::Move(MoveMode::Left, Default::default()), + ); + kb.insert( + "Right".into(), + Command::Move(MoveMode::Right, Default::default()), + ); + kb.insert( + "PageUp".into(), + Command::Move(MoveMode::Up, MoveAmount::Integer(5)), + ); + kb.insert( + "PageDown".into(), + Command::Move(MoveMode::Down, MoveAmount::Integer(5)), + ); + kb.insert( + "Home".into(), + Command::Move(MoveMode::Up, MoveAmount::Extreme), + ); + kb.insert( + "End".into(), + Command::Move(MoveMode::Down, MoveAmount::Extreme), + ); kb.insert("k".into(), Command::Move(MoveMode::Up, Default::default())); - kb.insert("j".into(), Command::Move(MoveMode::Down, Default::default())); - kb.insert("h".into(), Command::Move(MoveMode::Left, Default::default())); - kb.insert("l".into(), Command::Move(MoveMode::Right, Default::default())); + kb.insert( + "j".into(), + Command::Move(MoveMode::Down, Default::default()), + ); + kb.insert( + "h".into(), + Command::Move(MoveMode::Left, Default::default()), + ); + kb.insert( + "l".into(), + Command::Move(MoveMode::Right, Default::default()), + ); - kb.insert("Ctrl+p".into(), Command::Move(MoveMode::Up, Default::default())); - kb.insert("Ctrl+n".into(), Command::Move(MoveMode::Down, Default::default())); - kb.insert("Ctrl+a".into(), Command::Move(MoveMode::Left, Default::default())); - kb.insert("Ctrl+e".into(), Command::Move(MoveMode::Right, Default::default())); + kb.insert( + "Ctrl+p".into(), + Command::Move(MoveMode::Up, Default::default()), + ); + kb.insert( + "Ctrl+n".into(), + Command::Move(MoveMode::Down, Default::default()), + ); + kb.insert( + "Ctrl+a".into(), + Command::Move(MoveMode::Left, Default::default()), + ); + kb.insert( + "Ctrl+e".into(), + Command::Move(MoveMode::Right, Default::default()), + ); kb.insert("Shift+Up".into(), Command::Shift(ShiftMode::Up, None)); kb.insert("Shift+Down".into(), Command::Shift(ShiftMode::Down, None)); diff --git a/src/ui/listview.rs b/src/ui/listview.rs index 5855cd1..ec9dfba 100644 --- a/src/ui/listview.rs +++ b/src/ui/listview.rs @@ -376,9 +376,7 @@ impl ViewExt for ListView { } return Ok(CommandResult::Consumed(None)); } - MoveMode::Down - if self.selected == last_idx && self.can_paginate() => - { + MoveMode::Down if self.selected == last_idx && self.can_paginate() => { self.pagination.call(&self.content); } _ => {}