Rustfmt
diff --git a/src/completion.rs b/src/completion.rs
index fac3366..8bcc76a 100644
--- a/src/completion.rs
+++ b/src/completion.rs
@@ -116,7 +116,9 @@
impl FilenameCompleter {
pub fn new() -> FilenameCompleter {
- FilenameCompleter { break_chars: DEFAULT_BREAK_CHARS.iter().cloned().collect() }
+ FilenameCompleter {
+ break_chars: DEFAULT_BREAK_CHARS.iter().cloned().collect(),
+ }
}
}
@@ -167,10 +169,7 @@
return input;
}
let esc_char = esc_char.unwrap();
- let n = input
- .chars()
- .filter(|c| break_chars.contains(c))
- .count();
+ let n = input.chars().filter(|c| break_chars.contains(c)).count();
if n == 0 {
return input;
}
diff --git a/src/config.rs b/src/config.rs
index b621a27..531777b 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -106,7 +106,9 @@
impl Builder {
pub fn new() -> Builder {
- Builder { p: Config::default() }
+ Builder {
+ p: Config::default(),
+ }
}
/// Set the maximum length for the history.
diff --git a/src/consts.rs b/src/consts.rs
index c20ff72..5841016 100644
--- a/src/consts.rs
+++ b/src/consts.rs
@@ -47,7 +47,7 @@
'\x06' => KeyPress::Ctrl('F'),
'\x07' => KeyPress::Ctrl('G'),
'\x08' => KeyPress::Backspace, // '\b'
- '\x09' => KeyPress::Tab, // '\t'
+ '\x09' => KeyPress::Tab, // '\t'
'\x0a' => KeyPress::Ctrl('J'), // '\n' (10)
'\x0b' => KeyPress::Ctrl('K'),
'\x0c' => KeyPress::Ctrl('L'),
@@ -76,7 +76,7 @@
#[cfg(test)]
mod tests {
- use super::{KeyPress, char_to_key_press};
+ use super::{char_to_key_press, KeyPress};
#[test]
fn char_to_key() {
diff --git a/src/error.rs b/src/error.rs
index 3df6e70..2ac7ef4 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -23,10 +23,8 @@
/// Unix Error from syscall
#[cfg(unix)]
Errno(nix::Error),
- #[cfg(windows)]
- WindowResize,
- #[cfg(windows)]
- Decode(char::DecodeUtf16Error),
+ #[cfg(windows)] WindowResize,
+ #[cfg(windows)] Decode(char::DecodeUtf16Error),
}
impl fmt::Display for ReadlineError {
diff --git a/src/history.rs b/src/history.rs
index 68d355c..3fe60dc 100644
--- a/src/history.rs
+++ b/src/history.rs
@@ -58,10 +58,10 @@
}
if line.as_ref().is_empty() ||
(self.ignore_space &&
- line.as_ref().chars().next().map_or(
- true,
- |c| c.is_whitespace(),
- ))
+ line.as_ref()
+ .chars()
+ .next()
+ .map_or(true, |c| c.is_whitespace()))
{
return false;
}
diff --git a/src/keymap.rs b/src/keymap.rs
index 4c57f73..ffca6cb 100644
--- a/src/keymap.rs
+++ b/src/keymap.rs
@@ -85,9 +85,12 @@
impl Cmd {
pub fn should_reset_kill_ring(&self) -> bool {
match *self {
- Cmd::Kill(Movement::BackwardChar(_)) |
- Cmd::Kill(Movement::ForwardChar(_)) => true,
- Cmd::ClearScreen | Cmd::Kill(_) | Cmd::Noop | Cmd::Suspend | Cmd::Yank(_, _) |
+ Cmd::Kill(Movement::BackwardChar(_)) | Cmd::Kill(Movement::ForwardChar(_)) => true,
+ Cmd::ClearScreen |
+ Cmd::Kill(_) |
+ Cmd::Noop |
+ Cmd::Suspend |
+ Cmd::Yank(_, _) |
Cmd::YankPop => false,
_ => true,
}
@@ -290,15 +293,13 @@
loop {
let key = try!(rdr.next_key());
match key {
- KeyPress::Char(digit @ '0'...'9') |
- KeyPress::Meta(digit @ '0'...'9') => {
+ KeyPress::Char(digit @ '0'...'9') | KeyPress::Meta(digit @ '0'...'9') => {
if self.num_args == -1 {
self.num_args *= digit.to_digit(10).unwrap() as i16;
} else {
- self.num_args = self.num_args.saturating_mul(10).saturating_add(
- digit.to_digit(10).unwrap() as
- i16,
- );
+ self.num_args = self.num_args
+ .saturating_mul(10)
+ .saturating_add(digit.to_digit(10).unwrap() as i16);
}
}
_ => return Ok(key),
@@ -323,48 +324,35 @@
});
}
let cmd = match key {
- KeyPress::Char(c) => {
- if positive {
- Cmd::SelfInsert(n, c)
- } else {
- Cmd::Unknown
- }
- }
+ KeyPress::Char(c) => if positive {
+ Cmd::SelfInsert(n, c)
+ } else {
+ Cmd::Unknown
+ },
KeyPress::Ctrl('A') => Cmd::Move(Movement::BeginningOfLine),
- KeyPress::Ctrl('B') => {
- if positive {
- Cmd::Move(Movement::BackwardChar(n))
- } else {
- Cmd::Move(Movement::ForwardChar(n))
- }
- }
+ KeyPress::Ctrl('B') => if positive {
+ Cmd::Move(Movement::BackwardChar(n))
+ } else {
+ Cmd::Move(Movement::ForwardChar(n))
+ },
KeyPress::Ctrl('E') => Cmd::Move(Movement::EndOfLine),
- KeyPress::Ctrl('F') => {
- if positive {
- Cmd::Move(Movement::ForwardChar(n))
- } else {
- Cmd::Move(Movement::BackwardChar(n))
- }
- }
- KeyPress::Ctrl('G') |
- KeyPress::Esc |
- KeyPress::Meta('\x07') => Cmd::Abort,
- KeyPress::Ctrl('H') |
- KeyPress::Backspace => {
- if positive {
- Cmd::Kill(Movement::BackwardChar(n))
- } else {
- Cmd::Kill(Movement::ForwardChar(n))
- }
- }
+ KeyPress::Ctrl('F') => if positive {
+ Cmd::Move(Movement::ForwardChar(n))
+ } else {
+ Cmd::Move(Movement::BackwardChar(n))
+ },
+ KeyPress::Ctrl('G') | KeyPress::Esc | KeyPress::Meta('\x07') => Cmd::Abort,
+ KeyPress::Ctrl('H') | KeyPress::Backspace => if positive {
+ Cmd::Kill(Movement::BackwardChar(n))
+ } else {
+ Cmd::Kill(Movement::ForwardChar(n))
+ },
KeyPress::Tab => Cmd::Complete,
- KeyPress::Ctrl('K') => {
- if positive {
- Cmd::Kill(Movement::EndOfLine)
- } else {
- Cmd::Kill(Movement::BeginningOfLine)
- }
- }
+ KeyPress::Ctrl('K') => if positive {
+ Cmd::Kill(Movement::EndOfLine)
+ } else {
+ Cmd::Kill(Movement::BeginningOfLine)
+ },
KeyPress::Ctrl('L') => Cmd::ClearScreen,
KeyPress::Ctrl('N') => Cmd::NextHistory,
KeyPress::Ctrl('P') => Cmd::PreviousHistory,
@@ -376,50 +364,33 @@
_ => Cmd::Unknown,
}
}
- KeyPress::Meta('\x08') |
- KeyPress::Meta('\x7f') => {
- if positive {
- Cmd::Kill(Movement::BackwardWord(n, Word::Emacs))
- } else {
- Cmd::Kill(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
- }
- }
+ KeyPress::Meta('\x08') | KeyPress::Meta('\x7f') => if positive {
+ Cmd::Kill(Movement::BackwardWord(n, Word::Emacs))
+ } else {
+ Cmd::Kill(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
+ },
KeyPress::Meta('<') => Cmd::BeginningOfHistory,
KeyPress::Meta('>') => Cmd::EndOfHistory,
- KeyPress::Meta('B') |
- KeyPress::Meta('b') => {
- if positive {
- Cmd::Move(Movement::BackwardWord(n, Word::Emacs))
- } else {
- Cmd::Move(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
- }
- }
- KeyPress::Meta('C') |
- KeyPress::Meta('c') => Cmd::CapitalizeWord,
- KeyPress::Meta('D') |
- KeyPress::Meta('d') => {
- if positive {
- Cmd::Kill(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
- } else {
- Cmd::Kill(Movement::BackwardWord(n, Word::Emacs))
- }
- }
- KeyPress::Meta('F') |
- KeyPress::Meta('f') => {
- if positive {
- Cmd::Move(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
- } else {
- Cmd::Move(Movement::BackwardWord(n, Word::Emacs))
- }
- }
- KeyPress::Meta('L') |
- KeyPress::Meta('l') => Cmd::DowncaseWord,
- KeyPress::Meta('T') |
- KeyPress::Meta('t') => Cmd::TransposeWords(n),
- KeyPress::Meta('U') |
- KeyPress::Meta('u') => Cmd::UpcaseWord,
- KeyPress::Meta('Y') |
- KeyPress::Meta('y') => Cmd::YankPop,
+ KeyPress::Meta('B') | KeyPress::Meta('b') => if positive {
+ Cmd::Move(Movement::BackwardWord(n, Word::Emacs))
+ } else {
+ Cmd::Move(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
+ },
+ KeyPress::Meta('C') | KeyPress::Meta('c') => Cmd::CapitalizeWord,
+ KeyPress::Meta('D') | KeyPress::Meta('d') => if positive {
+ Cmd::Kill(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
+ } else {
+ Cmd::Kill(Movement::BackwardWord(n, Word::Emacs))
+ },
+ KeyPress::Meta('F') | KeyPress::Meta('f') => if positive {
+ Cmd::Move(Movement::ForwardWord(n, At::AfterEnd, Word::Emacs))
+ } else {
+ Cmd::Move(Movement::BackwardWord(n, Word::Emacs))
+ },
+ KeyPress::Meta('L') | KeyPress::Meta('l') => Cmd::DowncaseWord,
+ KeyPress::Meta('T') | KeyPress::Meta('t') => Cmd::TransposeWords(n),
+ KeyPress::Meta('U') | KeyPress::Meta('u') => Cmd::UpcaseWord,
+ KeyPress::Meta('Y') | KeyPress::Meta('y') => Cmd::YankPop,
_ => self.common(key, n, positive),
};
debug!(target: "rustyline", "Emacs command: {:?}", cmd);
@@ -432,10 +403,9 @@
let key = try!(rdr.next_key());
match key {
KeyPress::Char(digit @ '0'...'9') => {
- self.num_args = self.num_args.saturating_mul(10).saturating_add(
- digit.to_digit(10).unwrap() as
- i16,
- );
+ self.num_args = self.num_args
+ .saturating_mul(10)
+ .saturating_add(digit.to_digit(10).unwrap() as i16);
}
_ => return Ok(key),
};
@@ -619,15 +589,12 @@
});
}
let cmd = match key {
- KeyPress::Char(c) => {
- if self.input_mode == InputMode::Replace {
- Cmd::Overwrite(c)
- } else {
- Cmd::SelfInsert(1, c)
- }
- }
- KeyPress::Ctrl('H') |
- KeyPress::Backspace => Cmd::Kill(Movement::BackwardChar(1)),
+ KeyPress::Char(c) => if self.input_mode == InputMode::Replace {
+ Cmd::Overwrite(c)
+ } else {
+ Cmd::SelfInsert(1, c)
+ },
+ KeyPress::Ctrl('H') | KeyPress::Backspace => Cmd::Kill(Movement::BackwardChar(1)),
KeyPress::Tab => Cmd::Complete,
KeyPress::Esc => {
// vi-movement-mode/vi-command-mode
@@ -678,23 +645,18 @@
None => None,
}
}
- KeyPress::Char(';') => {
- match self.last_char_search {
- Some(ref cs) => Some(Movement::ViCharSearch(n, cs.clone())),
- None => None,
- }
+ KeyPress::Char(';') => match self.last_char_search {
+ Some(ref cs) => Some(Movement::ViCharSearch(n, cs.clone())),
+ None => None,
+ },
+ KeyPress::Char(',') => match self.last_char_search {
+ Some(ref cs) => Some(Movement::ViCharSearch(n, cs.opposite())),
+ None => None,
+ },
+ KeyPress::Char('h') | KeyPress::Ctrl('H') | KeyPress::Backspace => {
+ Some(Movement::BackwardChar(n))
}
- KeyPress::Char(',') => {
- match self.last_char_search {
- Some(ref cs) => Some(Movement::ViCharSearch(n, cs.opposite())),
- None => None,
- }
- }
- KeyPress::Char('h') |
- KeyPress::Ctrl('H') |
- KeyPress::Backspace => Some(Movement::BackwardChar(n)),
- KeyPress::Char('l') |
- KeyPress::Char(' ') => Some(Movement::ForwardChar(n)),
+ KeyPress::Char('l') | KeyPress::Char(' ') => Some(Movement::ForwardChar(n)),
KeyPress::Char('w') => {
// 'cw' is 'ce'
if key == KeyPress::Char('c') {
diff --git a/src/lib.rs b/src/lib.rs
index 7d51716..d76db7c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -19,18 +19,18 @@
#![feature(unicode)]
#![allow(unknown_lints)]
+#[cfg(windows)]
+extern crate kernel32;
extern crate libc;
#[macro_use]
extern crate log;
+#[cfg(unix)]
+extern crate nix;
extern crate std_unicode;
extern crate unicode_segmentation;
extern crate unicode_width;
-#[cfg(unix)]
-extern crate nix;
#[cfg(windows)]
extern crate winapi;
-#[cfg(windows)]
-extern crate kernel32;
pub mod completion;
mod consts;
@@ -56,9 +56,9 @@
use tty::{Position, RawMode, RawReader, Renderer, Term, Terminal};
-use completion::{Completer, longest_common_prefix};
+use completion::{longest_common_prefix, Completer};
use history::{Direction, History};
-use line_buffer::{LineBuffer, MAX_LINE, WordAction};
+use line_buffer::{LineBuffer, WordAction, MAX_LINE};
pub use keymap::{Anchor, At, CharSearch, Cmd, Movement, RepeatCount, Word};
use keymap::EditState;
use kill_ring::{KillRing, Mode};
@@ -73,10 +73,11 @@
/// Implement rendering.
struct State<'out, 'prompt> {
out: &'out mut Renderer,
- prompt: &'prompt str, // Prompt to display
- prompt_size: Position, // Prompt Unicode/visible width and height
- line: LineBuffer, // Edited line buffer
- cursor: Position, // Cursor position (relative to the start of the prompt for `row`)
+ prompt: &'prompt str, // Prompt to display
+ prompt_size: Position, // Prompt Unicode/visible width and height
+ line: LineBuffer, // Edited line buffer
+ cursor: Position, /* Cursor position (relative to the start of the prompt
+ * for `row`) */
old_rows: usize, // Number of rows used so far (from start of prompt to end of input)
history_index: usize, // The history index we are currently editing
saved_line_for_history: LineBuffer, // Current edited line before history browsing
@@ -123,10 +124,8 @@
}
fn backup(&mut self) {
- self.saved_line_for_history.update(
- self.line.as_str(),
- self.line.pos(),
- );
+ self.saved_line_for_history
+ .update(self.line.as_str(), self.line.pos());
}
fn restore(&mut self) {
self.line.update(
@@ -137,10 +136,8 @@
fn move_cursor(&mut self) -> Result<()> {
// calculate the desired position of the cursor
- let cursor = self.out.calculate_position(
- &self.line[..self.line.pos()],
- self.prompt_size,
- );
+ let cursor = self.out
+ .calculate_position(&self.line[..self.line.pos()], self.prompt_size);
if self.cursor == cursor {
return Ok(());
}
@@ -197,10 +194,8 @@
if push {
if n == 1 && s.cursor.col + ch.width().unwrap_or(0) < s.out.get_columns() {
// Avoid a full update of the line in the trivial case.
- let cursor = s.out.calculate_position(
- &s.line[..s.line.pos()],
- s.prompt_size,
- );
+ let cursor = s.out
+ .calculate_position(&s.line[..s.line.pos()], s.prompt_size);
s.cursor = cursor;
let bits = ch.encode_utf8(&mut s.byte_buffer);
let bits = bits.as_bytes();
@@ -228,7 +223,11 @@
false
};
s.changes.borrow_mut().end();
- if succeed { s.refresh_line() } else { Ok(()) }
+ if succeed {
+ s.refresh_line()
+ } else {
+ Ok(())
+ }
}
/// Overwrite the character under the cursor (Vi mode)
@@ -347,7 +346,11 @@
s.changes.borrow_mut().begin();
let succeed = s.line.transpose_chars();
s.changes.borrow_mut().end();
- if succeed { s.refresh_line() } else { Ok(()) }
+ if succeed {
+ s.refresh_line()
+ } else {
+ Ok(())
+ }
}
fn edit_move_to_prev_word(s: &mut State, word_def: Word, n: RepeatCount) -> Result<()> {
@@ -406,14 +409,22 @@
s.changes.borrow_mut().begin();
let succeed = s.line.edit_word(a);
s.changes.borrow_mut().end();
- if succeed { s.refresh_line() } else { Ok(()) }
+ if succeed {
+ s.refresh_line()
+ } else {
+ Ok(())
+ }
}
fn edit_transpose_words(s: &mut State, n: RepeatCount) -> Result<()> {
s.changes.borrow_mut().begin();
let succeed = s.line.transpose_words(n);
s.changes.borrow_mut().end();
- if succeed { s.refresh_line() } else { Ok(()) }
+ if succeed {
+ s.refresh_line()
+ } else {
+ Ok(())
+ }
}
/// Substitute the currently edited line with the next or previous history
@@ -598,8 +609,7 @@
cmd = try!(s.next_cmd(rdr));
}
match cmd {
- Cmd::SelfInsert(1, 'y') |
- Cmd::SelfInsert(1, 'Y') => true,
+ Cmd::SelfInsert(1, 'y') | Cmd::SelfInsert(1, 'Y') => true,
_ => false,
}
} else {
@@ -654,9 +664,7 @@
cmd = try!(s.next_cmd(rdr));
}
match cmd {
- Cmd::SelfInsert(1, 'y') |
- Cmd::SelfInsert(1, 'Y') |
- Cmd::SelfInsert(1, ' ') => {
+ Cmd::SelfInsert(1, 'y') | Cmd::SelfInsert(1, 'Y') | Cmd::SelfInsert(1, ' ') => {
pause_row += s.out.get_rows() - 1;
}
Cmd::AcceptLine => {
@@ -867,16 +875,14 @@
Cmd::Overwrite(c) => {
try!(edit_overwrite_char(&mut s, c));
}
- Cmd::EndOfFile => {
- if !s.edit_state.is_emacs_mode() && !s.line.is_empty() {
- try!(edit_move_end(&mut s));
- break;
- } else if s.line.is_empty() {
- return Err(error::ReadlineError::Eof);
- } else {
- try!(edit_delete(&mut s, 1))
- }
- }
+ Cmd::EndOfFile => if !s.edit_state.is_emacs_mode() && !s.line.is_empty() {
+ try!(edit_move_end(&mut s));
+ break;
+ } else if s.line.is_empty() {
+ return Err(error::ReadlineError::Eof);
+ } else {
+ try!(edit_delete(&mut s, 1))
+ },
Cmd::Move(Movement::EndOfLine) => {
// Move to the end of line.
try!(edit_move_end(&mut s))
@@ -914,20 +920,16 @@
// Fetch the previous command from the history list.
try!(edit_history_next(&mut s, &editor.history, true))
}
- Cmd::HistorySearchBackward => {
- try!(edit_history_search(
- &mut s,
- &editor.history,
- Direction::Reverse,
- ))
- }
- Cmd::HistorySearchForward => {
- try!(edit_history_search(
- &mut s,
- &editor.history,
- Direction::Forward,
- ))
- }
+ Cmd::HistorySearchBackward => try!(edit_history_search(
+ &mut s,
+ &editor.history,
+ Direction::Reverse,
+ )),
+ Cmd::HistorySearchForward => try!(edit_history_search(
+ &mut s,
+ &editor.history,
+ Direction::Forward,
+ )),
Cmd::TransposeChars => {
// Exchange the char before cursor with the character at cursor.
try!(edit_transpose_chars(&mut s))
@@ -950,11 +952,9 @@
try!(edit_yank(&mut s, text, anchor, n))
}
}
- Cmd::ViYankTo(mvt) => {
- if let Some(text) = s.line.copy(mvt) {
- editor.kill_ring.borrow_mut().kill(&text, Mode::Append)
- }
- }
+ Cmd::ViYankTo(mvt) => if let Some(text) = s.line.copy(mvt) {
+ editor.kill_ring.borrow_mut().kill(&text, Mode::Append)
+ },
// TODO CTRL-_ // undo
Cmd::AcceptLine => {
// Accept the line regardless of where the cursor is.
diff --git a/src/line_buffer.rs b/src/line_buffer.rs
index 9f8a41d..7037903 100644
--- a/src/line_buffer.rs
+++ b/src/line_buffer.rs
@@ -49,7 +49,7 @@
/// The methods do text manipulations or/and cursor movements.
pub struct LineBuffer {
buf: String, // Edited line buffer
- pos: usize, // Current cursor position (byte position)
+ pos: usize, // Current cursor position (byte position)
dl: Option<Rc<RefCell<DeleteListener>>>,
cl: Option<Rc<RefCell<ChangeListener>>>,
}
@@ -469,18 +469,14 @@
fn search_char_pos(&self, cs: &CharSearch, n: RepeatCount) -> Option<usize> {
let mut shift = 0;
let search_result = match *cs {
- CharSearch::Backward(c) |
- CharSearch::BackwardAfter(c) => {
- self.buf[..self.pos]
- .char_indices()
- .rev()
- .filter(|&(_, ch)| ch == c)
- .take(n)
- .last()
- .map(|(i, _)| i)
- }
- CharSearch::Forward(c) |
- CharSearch::ForwardBefore(c) => {
+ CharSearch::Backward(c) | CharSearch::BackwardAfter(c) => self.buf[..self.pos]
+ .char_indices()
+ .rev()
+ .filter(|&(_, ch)| ch == c)
+ .take(n)
+ .last()
+ .map(|(i, _)| i),
+ CharSearch::Forward(c) | CharSearch::ForwardBefore(c) => {
if let Some(cc) = self.grapheme_at_cursor() {
shift = self.pos + cc.len();
if shift < self.buf.len() {
@@ -547,8 +543,7 @@
};
if let Some(pos) = search_result {
match cs {
- CharSearch::Backward(_) |
- CharSearch::BackwardAfter(_) => {
+ CharSearch::Backward(_) | CharSearch::BackwardAfter(_) => {
let end = self.pos;
self.pos = pos;
self.drain(pos..end, Direction::Backward);
@@ -638,11 +633,8 @@
pub fn replace(&mut self, range: Range<usize>, text: &str) {
let start = range.start;
for cl in &self.cl {
- cl.borrow_mut().replace(
- start,
- self.buf.index(range.clone()),
- text,
- );
+ cl.borrow_mut()
+ .replace(start, self.buf.index(range.clone()), text);
}
self.buf.drain(range);
if start == self.buf.len() {
@@ -676,18 +668,12 @@
fn drain(&mut self, range: Range<usize>, dir: Direction) -> Drain {
for dl in &self.dl {
- dl.borrow_mut().delete(
- range.start,
- &self.buf[range.start..range.end],
- dir,
- );
+ dl.borrow_mut()
+ .delete(range.start, &self.buf[range.start..range.end], dir);
}
for cl in &self.cl {
- cl.borrow_mut().delete(
- range.start,
- &self.buf[range.start..range.end],
- dir,
- );
+ cl.borrow_mut()
+ .delete(range.start, &self.buf[range.start..range.end], dir);
}
self.buf.drain(range)
}
@@ -700,29 +686,23 @@
}
match mvt {
Movement::WholeLine => Some(self.buf.clone()),
- Movement::BeginningOfLine => {
- if self.pos == 0 {
- None
- } else {
- Some(self.buf[..self.pos].to_owned())
- }
- }
- Movement::ViFirstPrint => {
- if self.pos == 0 {
- None
- } else if let Some(pos) = self.next_word_pos(0, At::Start, Word::Big, 1) {
- Some(self.buf[pos..self.pos].to_owned())
- } else {
- None
- }
- }
- Movement::EndOfLine => {
- if self.pos == self.buf.len() {
- None
- } else {
- Some(self.buf[self.pos..].to_owned())
- }
- }
+ Movement::BeginningOfLine => if self.pos == 0 {
+ None
+ } else {
+ Some(self.buf[..self.pos].to_owned())
+ },
+ Movement::ViFirstPrint => if self.pos == 0 {
+ None
+ } else if let Some(pos) = self.next_word_pos(0, At::Start, Word::Big, 1) {
+ Some(self.buf[pos..self.pos].to_owned())
+ } else {
+ None
+ },
+ Movement::EndOfLine => if self.pos == self.buf.len() {
+ None
+ } else {
+ Some(self.buf[self.pos..].to_owned())
+ },
Movement::BackwardWord(n, word_def) => {
if let Some(pos) = self.prev_word_pos(self.pos, word_def, n) {
Some(self.buf[pos..self.pos].to_owned())
@@ -746,8 +726,9 @@
};
if let Some(pos) = search_result {
Some(match cs {
- CharSearch::Backward(_) |
- CharSearch::BackwardAfter(_) => self.buf[pos..self.pos].to_owned(),
+ CharSearch::Backward(_) | CharSearch::BackwardAfter(_) => {
+ self.buf[pos..self.pos].to_owned()
+ }
CharSearch::ForwardBefore(_) => self.buf[self.pos..pos].to_owned(),
CharSearch::Forward(c) => self.buf[self.pos..pos + c.len_utf8()].to_owned(),
})
@@ -755,20 +736,16 @@
None
}
}
- Movement::BackwardChar(n) => {
- if let Some(pos) = self.prev_pos(n) {
- Some(self.buf[pos..self.pos].to_owned())
- } else {
- None
- }
- }
- Movement::ForwardChar(n) => {
- if let Some(pos) = self.next_pos(n) {
- Some(self.buf[self.pos..pos].to_owned())
- } else {
- None
- }
- }
+ Movement::BackwardChar(n) => if let Some(pos) = self.prev_pos(n) {
+ Some(self.buf[pos..self.pos].to_owned())
+ } else {
+ None
+ },
+ Movement::ForwardChar(n) => if let Some(pos) = self.next_pos(n) {
+ Some(self.buf[self.pos..pos].to_owned())
+ } else {
+ None
+ },
}
}
}
@@ -809,7 +786,7 @@
use std::cell::RefCell;
use std::rc::Rc;
use keymap::{At, CharSearch, Word};
- use super::{ChangeListener, DeleteListener, Direction, LineBuffer, MAX_LINE, WordAction};
+ use super::{ChangeListener, DeleteListener, Direction, LineBuffer, WordAction, MAX_LINE};
struct Listener {
deleted_str: Option<String>,
diff --git a/src/tty/unix.rs b/src/tty/unix.rs
index 107a8d3..d0cd992 100644
--- a/src/tty/unix.rs
+++ b/src/tty/unix.rs
@@ -123,10 +123,10 @@
Ok(match seq2 {
'1' | '7' => KeyPress::Home, // tmux, xrvt
'2' => KeyPress::Insert,
- '3' => KeyPress::Delete, // kdch1
+ '3' => KeyPress::Delete, // kdch1
'4' | '8' => KeyPress::End, // tmux, xrvt
- '5' => KeyPress::PageUp, // kpp
- '6' => KeyPress::PageDown, // knp
+ '5' => KeyPress::PageUp, // kpp
+ '6' => KeyPress::PageDown, // knp
_ => {
debug!(target: "rustyline", "unsupported esc sequence: ESC [ {} ~", seq2);
KeyPress::UnknownEscSeq
@@ -136,15 +136,15 @@
let seq4 = try!(self.next_char());
if seq4 == '~' {
Ok(match (seq2, seq3) {
- ('1', '1') => KeyPress::F(1), // rxvt-unicode
- ('1', '2') => KeyPress::F(2), // rxvt-unicode
- ('1', '3') => KeyPress::F(3), // rxvt-unicode
- ('1', '4') => KeyPress::F(4), // rxvt-unicode
- ('1', '5') => KeyPress::F(5), // kf5
- ('1', '7') => KeyPress::F(6), // kf6
- ('1', '8') => KeyPress::F(7), // kf7
- ('1', '9') => KeyPress::F(8), // kf8
- ('2', '0') => KeyPress::F(9), // kf9
+ ('1', '1') => KeyPress::F(1), // rxvt-unicode
+ ('1', '2') => KeyPress::F(2), // rxvt-unicode
+ ('1', '3') => KeyPress::F(3), // rxvt-unicode
+ ('1', '4') => KeyPress::F(4), // rxvt-unicode
+ ('1', '5') => KeyPress::F(5), // kf5
+ ('1', '7') => KeyPress::F(6), // kf6
+ ('1', '8') => KeyPress::F(7), // kf7
+ ('1', '9') => KeyPress::F(8), // kf8
+ ('2', '0') => KeyPress::F(9), // kf9
('2', '1') => KeyPress::F(10), // kf10
('2', '3') => KeyPress::F(11), // kf11
('2', '4') => KeyPress::F(12), // kf12
@@ -208,10 +208,10 @@
} else {
// ANSI
Ok(match seq2 {
- 'A' => KeyPress::Up, // kcuu1
- 'B' => KeyPress::Down, // kcud1
+ 'A' => KeyPress::Up, // kcuu1
+ 'B' => KeyPress::Down, // kcud1
'C' => KeyPress::Right, // kcuf1
- 'D' => KeyPress::Left, // kcub1
+ 'D' => KeyPress::Left, // kcub1
'F' => KeyPress::End,
'H' => KeyPress::Home, // khome
_ => {
@@ -225,16 +225,16 @@
// ESC O sequences. (SS3)
let seq2 = try!(self.next_char());
Ok(match seq2 {
- 'A' => KeyPress::Up, // kcuu1
- 'B' => KeyPress::Down, // kcud1
+ 'A' => KeyPress::Up, // kcuu1
+ 'B' => KeyPress::Down, // kcud1
'C' => KeyPress::Right, // kcuf1
- 'D' => KeyPress::Left, // kcub1
- 'F' => KeyPress::End, // kend
- 'H' => KeyPress::Home, // khome
- 'P' => KeyPress::F(1), // kf1
- 'Q' => KeyPress::F(2), // kf2
- 'R' => KeyPress::F(3), // kf3
- 'S' => KeyPress::F(4), // kf4
+ 'D' => KeyPress::Left, // kcub1
+ 'F' => KeyPress::End, // kend
+ 'H' => KeyPress::Home, // khome
+ 'P' => KeyPress::F(1), // kf1
+ 'Q' => KeyPress::F(2), // kf2
+ 'R' => KeyPress::F(3), // kf3
+ 'S' => KeyPress::F(4), // kf4
_ => {
debug!(target: "rustyline", "unsupported esc sequence: ESC O {:?}", seq2);
KeyPress::UnknownEscSeq
@@ -534,7 +534,7 @@
fn enable_raw_mode(&self) -> Result<Mode> {
use nix::errno::Errno::ENOTTY;
- use nix::sys::termios::{BRKINT, CS8, ECHO, ICANON, ICRNL, IEXTEN, INPCK, ISIG, ISTRIP,
+ use nix::sys::termios::{CS8, BRKINT, ECHO, ICANON, ICRNL, IEXTEN, INPCK, ISIG, ISTRIP,
IXON, /* OPOST, */ VMIN, VTIME};
if !self.stdin_isatty {
try!(Err(nix::Error::from_errno(ENOTTY)));
diff --git a/src/tty/windows.rs b/src/tty/windows.rs
index 62014ff..aa129ff 100644
--- a/src/tty/windows.rs
+++ b/src/tty/windows.rs
@@ -25,7 +25,7 @@
try!(Err(io::Error::new(
io::ErrorKind::Other,
"no stdio handle available for this process",
- )));
+ ),));
}
Ok(handle)
}
@@ -89,9 +89,9 @@
pub fn new() -> Result<ConsoleRawReader> {
let handle = try!(get_std_handle(STDIN_FILENO));
Ok(ConsoleRawReader {
- handle: handle,
- buf: None,
- })
+ handle: handle,
+ buf: None,
+ })
}
}
@@ -183,7 +183,8 @@
winapi::VK_F10 => return Ok(KeyPress::F(10)),
winapi::VK_F11 => return Ok(KeyPress::F(11)),
winapi::VK_F12 => return Ok(KeyPress::F(12)),
- // winapi::VK_BACK is correctly handled because the key_event.UnicodeChar is also
+ // winapi::VK_BACK is correctly handled because the key_event.UnicodeChar is
+ // also
// set.
_ => continue,
};
@@ -443,13 +444,13 @@
try!(Err(io::Error::new(
io::ErrorKind::Other,
"no stdio handle available for this process",
- )));
+ ),));
}
let original_mode = try!(get_console_mode(self.stdin_handle));
// Disable these modes
let raw = original_mode &
!(winapi::wincon::ENABLE_LINE_INPUT | winapi::wincon::ENABLE_ECHO_INPUT |
- winapi::wincon::ENABLE_PROCESSED_INPUT);
+ winapi::wincon::ENABLE_PROCESSED_INPUT);
// Enable these modes
let raw = raw | winapi::wincon::ENABLE_EXTENDED_FLAGS;
let raw = raw | winapi::wincon::ENABLE_INSERT_MODE;
@@ -457,9 +458,9 @@
let raw = raw | winapi::wincon::ENABLE_WINDOW_INPUT;
check!(kernel32::SetConsoleMode(self.stdin_handle, raw));
Ok(Mode {
- original_mode: original_mode,
- stdin_handle: self.stdin_handle,
- })
+ original_mode: original_mode,
+ stdin_handle: self.stdin_handle,
+ })
}
fn create_reader(&self, _: &Config) -> Result<ConsoleRawReader> {
diff --git a/src/undo.rs b/src/undo.rs
index 80e6ee7..910aa1d 100644
--- a/src/undo.rs
+++ b/src/undo.rs
@@ -163,9 +163,9 @@
self.redos.clear();
if !Self::single_char(string.as_ref()) ||
- !self.undos.last().map_or(false, |lc| {
- lc.delete_seq(indx, string.as_ref().len())
- })
+ !self.undos
+ .last()
+ .map_or(false, |lc| lc.delete_seq(indx, string.as_ref().len()))
{
self.undos.push(Change::Delete {
idx: indx,
@@ -194,10 +194,10 @@
fn single_char(s: &str) -> bool {
let mut graphemes = s.graphemes(true);
- graphemes.next().map_or(
- false,
- |grapheme| grapheme.is_alphanumeric(),
- ) && graphemes.next().is_none()
+ graphemes
+ .next()
+ .map_or(false, |grapheme| grapheme.is_alphanumeric()) &&
+ graphemes.next().is_none()
}
pub fn replace<S: AsRef<str> + Into<String> + Debug>(&mut self, indx: usize, old_: S, new_: S) {