Merge pull request #16 from gwenn/rustfmt
Rustfmt
diff --git a/src/completion.rs b/src/completion.rs
index f319d65..88b706b 100644
--- a/src/completion.rs
+++ b/src/completion.rs
@@ -1,7 +1,7 @@
//! Completion API
use std::collections::BTreeSet;
use std::fs;
-use std::path::{self,Path};
+use std::path::{self, Path};
use super::Result;
@@ -23,7 +23,7 @@
let mut buf = String::with_capacity(start + elected.len() + line.len() - pos);
buf.push_str(&line[..start]);
buf.push_str(elected);
- //buf.push(' ');
+ // buf.push(' ');
let new_pos = buf.len();
buf.push_str(&line[pos..]);
(buf, new_pos)
@@ -31,11 +31,11 @@
}
pub struct FilenameCompleter {
- break_chars: BTreeSet<char>
+ break_chars: BTreeSet<char>,
}
-static DEFAULT_BREAK_CHARS : [char; 18] = [ ' ', '\t', '\n', '"', '\\', '\'', '`', '@', '$',
- '>', '<', '=', ';', '|', '&', '{', '(', '\0' ];
+static DEFAULT_BREAK_CHARS: [char; 18] = [' ', '\t', '\n', '"', '\\', '\'', '`', '@', '$', '>',
+ '<', '=', ';', '|', '&', '{', '(', '\0'];
impl FilenameCompleter {
pub fn new() -> FilenameCompleter {
@@ -52,25 +52,27 @@
}
fn filename_complete(path: &str) -> Result<Vec<String>> {
- use std::env::{current_dir,home_dir};
+ use std::env::{current_dir, home_dir};
let sep = path::MAIN_SEPARATOR;
let (dir_name, file_name) = match path.rfind(sep) {
- Some(idx) => path.split_at(idx+sep.len_utf8()),
- None => ("", path)
+ Some(idx) => path.split_at(idx + sep.len_utf8()),
+ None => ("", path),
};
let dir_path = Path::new(dir_name);
- let dir = if dir_path.starts_with("~") { // ~[/...]
+ let dir = if dir_path.starts_with("~") {
+ // ~[/...]
if let Some(home) = home_dir() {
match dir_path.relative_from("~") {
Some(rel_path) => home.join(rel_path),
- None => home
+ None => home,
}
} else {
dir_path.to_path_buf()
}
- } else if dir_path.is_relative() { // TODO ~user[/...] (https://crates.io/crates/users)
+ } else if dir_path.is_relative() {
+ // TODO ~user[/...] (https://crates.io/crates/users)
if let Ok(cwd) = current_dir() {
cwd.join(dir_path)
} else {
@@ -96,17 +98,20 @@
Ok(entries)
}
-pub fn extract_word<'l>(line: &'l str, pos: usize, break_chars: &BTreeSet<char>) -> (usize, &'l str) {
+pub fn extract_word<'l>(line: &'l str,
+ pos: usize,
+ break_chars: &BTreeSet<char>)
+ -> (usize, &'l str) {
let line = &line[..pos];
if line.is_empty() {
return (0, line);
}
match line.char_indices().rev().find(|&(_, c)| break_chars.contains(&c)) {
Some((i, c)) => {
- let start = i+c.len_utf8();
+ let start = i + c.len_utf8();
(start, &line[start..])
- },
- None => (0, line)
+ }
+ None => (0, line),
}
}
@@ -118,6 +123,7 @@
pub fn extract_word() {
let break_chars: BTreeSet<char> = super::DEFAULT_BREAK_CHARS.iter().cloned().collect();
let line = "ls '/usr/local/b";
- assert_eq!((4, "/usr/local/b"), super::extract_word(line, line.len(), &break_chars));
+ assert_eq!((4, "/usr/local/b"),
+ super::extract_word(line, line.len(), &break_chars));
}
-}
\ No newline at end of file
+}
diff --git a/src/consts.rs b/src/consts.rs
index 7584d79..d35a162 100644
--- a/src/consts.rs
+++ b/src/consts.rs
@@ -31,29 +31,29 @@
pub fn char_to_key_press(c: char) -> KeyPress {
match c {
- '\x00' => KeyPress::NULL,
- '\x01' => KeyPress::CTRL_A,
- '\x02' => KeyPress::CTRL_B,
- '\x03' => KeyPress::CTRL_C,
- '\x04' => KeyPress::CTRL_D,
- '\x05' => KeyPress::CTRL_E,
- '\x06' => KeyPress::CTRL_F,
- '\x07' => KeyPress::CTRL_G,
- '\x08' => KeyPress::CTRL_H,
- '\x09' => KeyPress::TAB,
- '\x0a' => KeyPress::CTRL_J,
- '\x0b' => KeyPress::CTRL_K,
- '\x0c' => KeyPress::CTRL_L,
- '\x0d' => KeyPress::ENTER,
- '\x0e' => KeyPress::CTRL_N,
- '\x10' => KeyPress::CTRL_P,
- '\x12' => KeyPress::CTRL_R,
- '\x13' => KeyPress::CTRL_S,
- '\x14' => KeyPress::CTRL_T,
- '\x15' => KeyPress::CTRL_U,
- '\x17' => KeyPress::CTRL_W,
- '\x1b' => KeyPress::ESC,
+ '\x00' => KeyPress::NULL,
+ '\x01' => KeyPress::CTRL_A,
+ '\x02' => KeyPress::CTRL_B,
+ '\x03' => KeyPress::CTRL_C,
+ '\x04' => KeyPress::CTRL_D,
+ '\x05' => KeyPress::CTRL_E,
+ '\x06' => KeyPress::CTRL_F,
+ '\x07' => KeyPress::CTRL_G,
+ '\x08' => KeyPress::CTRL_H,
+ '\x09' => KeyPress::TAB,
+ '\x0a' => KeyPress::CTRL_J,
+ '\x0b' => KeyPress::CTRL_K,
+ '\x0c' => KeyPress::CTRL_L,
+ '\x0d' => KeyPress::ENTER,
+ '\x0e' => KeyPress::CTRL_N,
+ '\x10' => KeyPress::CTRL_P,
+ '\x12' => KeyPress::CTRL_R,
+ '\x13' => KeyPress::CTRL_S,
+ '\x14' => KeyPress::CTRL_T,
+ '\x15' => KeyPress::CTRL_U,
+ '\x17' => KeyPress::CTRL_W,
+ '\x1b' => KeyPress::ESC,
'\x7f' => KeyPress::BACKSPACE,
- _ => KeyPress::NULL
+ _ => KeyPress::NULL,
}
}
diff --git a/src/error.rs b/src/error.rs
index 71659ce..d4654a0 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -17,7 +17,7 @@
/// EOF (Ctrl-d)
Eof,
/// Ctrl-C
- Interrupted
+ Interrupted,
}
impl fmt::Display for ReadlineError {
@@ -60,4 +60,4 @@
fn from(err: io::CharsError) -> ReadlineError {
ReadlineError::Char(err)
}
-}
\ No newline at end of file
+}
diff --git a/src/history.rs b/src/history.rs
index 4736cf1..2e9b9ea 100644
--- a/src/history.rs
+++ b/src/history.rs
@@ -15,12 +15,15 @@
impl History {
pub fn new() -> History {
- History { entries: VecDeque::new(), max_len: DEFAULT_HISTORY_MAX_LEN }
+ History {
+ entries: VecDeque::new(),
+ max_len: DEFAULT_HISTORY_MAX_LEN,
+ }
}
/// Return the history entry at position `index`, starting from 0.
- pub fn get(& self, index: usize) -> Option<&String> {
- return self.entries.get(index)
+ pub fn get(&self, index: usize) -> Option<&String> {
+ return self.entries.get(index);
}
/// Add a new entry in the history.
@@ -28,11 +31,13 @@
if self.max_len == 0 {
return false;
}
- if line.len() == 0 || line.chars().next().map_or(true, |c| c.is_whitespace()) { // ignorespace
+ if line.len() == 0 || line.chars().next().map_or(true, |c| c.is_whitespace()) {
+ // ignorespace
return false;
}
if let Some(s) = self.entries.back() {
- if s == line { // ignoredups
+ if s == line {
+ // ignoredups
return false;
}
}
@@ -66,7 +71,7 @@
}
/// Save the history in the specified file.
- pub fn save<P: AsRef<Path>+?Sized>(&self, path: &P) -> Result<()> {
+ pub fn save<P: AsRef<Path> + ?Sized>(&self, path: &P) -> Result<()> {
use std::io::{BufWriter, Write};
if self.entries.len() == 0 {
@@ -82,7 +87,7 @@
}
/// Load the history from the specified file.
- pub fn load<P: AsRef<Path>+?Sized>(&mut self, path: &P) -> Result<()> {
+ pub fn load<P: AsRef<Path> + ?Sized>(&mut self, path: &P) -> Result<()> {
use std::io::{BufRead, BufReader};
let file = try!(File::open(&path));
@@ -104,7 +109,11 @@
return None;
}
if reverse {
- let index = self.entries.iter().rev().skip(self.entries.len() - 1 - start).position(|entry| entry.contains(term));
+ let index = self.entries
+ .iter()
+ .rev()
+ .skip(self.entries.len() - 1 - start)
+ .position(|entry| entry.contains(term));
index.and_then(|index| Some(start - index))
} else {
let index = self.entries.iter().skip(start).position(|entry| entry.contains(term));
@@ -138,9 +147,9 @@
let mut history = super::History::new();
assert!(history.add("line1"));
assert!(history.add("line2"));
- assert!(! history.add("line2"));
- assert!(! history.add(""));
- assert!(! history.add(" line3"));
+ assert!(!history.add("line2"));
+ assert!(!history.add(""));
+ assert!(!history.add(" line3"));
}
#[test]
@@ -185,4 +194,4 @@
assert_eq!(Some(1), history.search("line", 1, true));
assert_eq!(Some(0), history.search("line1", 1, true));
}
-}
\ No newline at end of file
+}
diff --git a/src/lib.rs b/src/lib.rs
index f021bfa..4fd966e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,20 +1,19 @@
-//!Readline for Rust
+//! Readline for Rust
//!
-//!This implementation is based on [Antirez's Linenoise](https://github.com/antirez/linenoise)
+//! This implementation is based on [Antirez's Linenoise](https://github.com/antirez/linenoise)
//!
-//!# Example
+//! # Example
//!
-//!Usage
+//! Usage
//!
-//!```
-//!let mut rl = rustyline::Editor::new();
-//!let readline = rl.readline(">> ");
-//!match readline {
+//! ```
+//! let mut rl = rustyline::Editor::new();
+//! let readline = rl.readline(">> ");
+//! match readline {
//! Ok(line) => println!("Line: {:?}",line),
//! Err(_) => println!("No input"),
//! }
-//!```
-#![feature(drain)]
+//! ```
#![feature(io)]
#![feature(path_relative_from)]
#![feature(str_char)]
@@ -30,7 +29,7 @@
pub mod history;
use std::fmt;
-use std::io::{self,Read, Write};
+use std::io::{self, Read, Write};
use std::path::Path;
use std::result;
use nix::errno::Errno;
@@ -57,7 +56,12 @@
}
impl<'out, 'prompt> State<'out, 'prompt> {
- fn new(out: &'out mut Write, prompt: &'prompt str, capacity: usize, cols: usize, history_index: usize) -> State<'out, 'prompt> {
+ fn new(out: &'out mut Write,
+ prompt: &'prompt str,
+ capacity: usize,
+ cols: usize,
+ history_index: usize)
+ -> State<'out, 'prompt> {
State {
out: out,
prompt: prompt,
@@ -129,16 +133,16 @@
impl<'out, 'prompt> fmt::Debug for State<'out, 'prompt> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("State")
- .field("prompt", &self.prompt)
- .field("prompt_width", &self.prompt_width)
- .field("buf", &self.buf)
- .field("buf length", &self.buf.len())
- .field("buf capacity", &self.buf.capacity())
- .field("pos", &self.pos)
- .field("cols", &self.cols)
- .field("history_index", &self.history_index)
- .field("history_end", &self.history_end)
- .finish()
+ .field("prompt", &self.prompt)
+ .field("prompt_width", &self.prompt_width)
+ .field("buf", &self.buf)
+ .field("buf length", &self.buf.len())
+ .field("buf capacity", &self.buf.capacity())
+ .field("pos", &self.pos)
+ .field("cols", &self.cols)
+ .field("history_index", &self.history_index)
+ .field("history_end", &self.history_end)
+ .finish()
}
}
@@ -146,7 +150,7 @@
static MAX_LINE: usize = 4096;
/// Unsupported Terminals that don't support RAW mode
-static UNSUPPORTED_TERM: [&'static str; 3] = ["dumb","cons25","emacs"];
+static UNSUPPORTED_TERM: [&'static str; 3] = ["dumb", "cons25", "emacs"];
/// Check to see if STDIN is a TTY
fn is_a_tty() -> bool {
@@ -165,7 +169,7 @@
}
unsupported
}
- Err(_) => false
+ Err(_) => false,
}
}
@@ -175,7 +179,8 @@
/// Enable raw mode for the TERM
fn enable_raw_mode() -> Result<termios::Termios> {
- use nix::sys::termios::{BRKINT, ICRNL, INPCK, ISTRIP, IXON, OPOST, CS8, ECHO, ICANON, IEXTEN, ISIG, VMIN, VTIME};
+ use nix::sys::termios::{BRKINT, ICRNL, INPCK, ISTRIP, IXON, OPOST, CS8, ECHO, ICANON, IEXTEN,
+ ISIG, VMIN, VTIME};
if !is_a_tty() {
Err(from_errno(Errno::ENOTTY))
} else {
@@ -194,9 +199,7 @@
/// Disable Raw mode for the term
fn disable_raw_mode(original_termios: termios::Termios) -> Result<()> {
- try!(termios::tcsetattr(libc::STDIN_FILENO,
- termios::TCSAFLUSH,
- &original_termios));
+ try!(termios::tcsetattr(libc::STDIN_FILENO, termios::TCSAFLUSH, &original_termios));
Ok(())
}
@@ -223,7 +226,7 @@
ws_row: c_ushort,
ws_col: c_ushort,
ws_xpixel: c_ushort,
- ws_ypixel: c_ushort
+ ws_ypixel: c_ushort,
}
let mut size: winsize = zeroed();
@@ -367,13 +370,14 @@
/// Exchange the char before cursor with the character at cursor.
fn edit_transpose_chars(s: &mut State) -> Result<()> {
- if s.pos > 0 && s.pos < s.buf.len() { // TODO should work even if s.pos == s.buf.len()
+ if s.pos > 0 && s.pos < s.buf.len() {
+ // TODO should work even if s.pos == s.buf.len()
let ch = s.buf.remove(s.pos);
let size = ch.len_utf8();
let och = s.buf.char_at_reverse(s.pos);
let osize = och.len_utf8();
s.buf.insert(s.pos - osize, ch);
- if s.pos != s.buf.len()-size {
+ if s.pos != s.buf.len() - size {
s.pos += size;
} else {
if size >= osize {
@@ -445,7 +449,10 @@
}
/// Completes the line/word
-fn complete_line<R: io::Read>(chars: &mut io::Chars<R>, s: &mut State, completer: &Completer) -> Result<Option<char>> {
+fn complete_line<R: io::Read>(chars: &mut io::Chars<R>,
+ s: &mut State,
+ completer: &Completer)
+ -> Result<Option<char>> {
let (start, candidates) = try!(completer.complete(&s.buf, s.pos));
if candidates.is_empty() {
try!(beep());
@@ -472,24 +479,26 @@
let key = char_to_key_press(ch);
match key {
KeyPress::TAB => {
- i = (i+1) % (candidates.len()+1); // Circular
+ i = (i + 1) % (candidates.len() + 1); // Circular
if i == candidates.len() {
try!(beep());
}
- },
- KeyPress::ESC => { // Re-show original buffer
+ }
+ KeyPress::ESC => {
+ // Re-show original buffer
if i < candidates.len() {
try!(s.refresh_line());
}
- return Ok(None)
- },
- _ => { // Update buffer and return
+ return Ok(None);
+ }
+ _ => {
+ // Update buffer and return
if i < candidates.len() {
let (buf, pos) = completer.update(&s.buf, s.pos, start, &candidates[i]);
s.update_buf(buf);
s.pos = pos;
}
- break
+ break;
}
}
}
@@ -498,7 +507,10 @@
}
/// Incremental search
-fn reverse_incremental_search<R: io::Read>(chars: &mut io::Chars<R>, s: &mut State, history: &History) -> Result<Option<KeyPress>> {
+fn reverse_incremental_search<R: io::Read>(chars: &mut io::Chars<R>,
+ s: &mut State,
+ history: &History)
+ -> Result<Option<KeyPress>> {
// Save the current edited line (and cursor position) before to overwrite it
let original_buf = s.buf.clone();
let original_pos = s.pos;
@@ -513,7 +525,7 @@
loop {
let prompt = match success {
true => format!("(reverse-i-search)`{}': ", search_buf),
- false => format!("(failed reverse-i-search)`{}': ", search_buf)
+ false => format!("(failed reverse-i-search)`{}': ", search_buf),
};
try!(s.refresh_prompt_and_line(&prompt));
@@ -528,8 +540,8 @@
match key {
KeyPress::CTRL_H | KeyPress::BACKSPACE => {
search_buf.pop();
- continue
- },
+ continue;
+ }
KeyPress::CTRL_R => {
if history_idx > 0 {
history_idx -= 1;
@@ -537,14 +549,14 @@
success = false;
continue;
}
- },
+ }
KeyPress::CTRL_G => {
s.update_buf(original_buf);
s.pos = original_pos;
try!(s.refresh_line());
- return Ok(None)
- },
- _ => break
+ return Ok(None);
+ }
+ _ => break,
}
}
success = match history.search(&search_buf, history_idx, true) {
@@ -555,7 +567,7 @@
s.pos = entry.find(&search_buf).unwrap();
true
}
- _ => false
+ _ => false,
};
}
Ok(Some(key))
@@ -564,9 +576,11 @@
fn escape_sequence<R: io::Read>(chars: &mut io::Chars<R>) -> Result<KeyPress> {
// Read the next two bytes representing the escape sequence.
let seq1 = try!(chars.next().unwrap());
- if seq1 == '[' { // ESC [ sequences.
+ if seq1 == '[' {
+ // ESC [ sequences.
let seq2 = try!(chars.next().unwrap());
- if seq2.is_digit(10) { // Extended escape, read additional byte.
+ if seq2.is_digit(10) {
+ // Extended escape, read additional byte.
let seq3 = try!(chars.next().unwrap());
if seq3 == '~' {
match seq2 {
@@ -586,15 +600,16 @@
'D' => Ok(KeyPress::CTRL_B), // Left
'F' => Ok(KeyPress::CTRL_E), // End
'H' => Ok(KeyPress::CTRL_A), // Home
- _ => Ok(KeyPress::UNKNOWN_ESC_SEQ)
+ _ => Ok(KeyPress::UNKNOWN_ESC_SEQ),
}
}
- } else if seq1 == 'O' { // ESC O sequences.
+ } else if seq1 == 'O' {
+ // ESC O sequences.
let seq2 = try!(chars.next().unwrap());
match seq2 {
'F' => Ok(KeyPress::CTRL_E),
'H' => Ok(KeyPress::CTRL_A),
- _ => Ok(KeyPress::UNKNOWN_ESC_SEQ)
+ _ => Ok(KeyPress::UNKNOWN_ESC_SEQ),
}
} else {
// TODO ESC-B (b): move backward a word (https://github.com/antirez/linenoise/pull/64, https://github.com/antirez/linenoise/pull/6)
@@ -619,7 +634,10 @@
/// Handles reading and editting the readline buffer.
/// It will also handle special inputs in an appropriate fashion
/// (e.g., C-c will exit readline)
-fn readline_edit(prompt: &str, history: &mut History, completer: Option<&Completer>) -> Result<String> {
+fn readline_edit(prompt: &str,
+ history: &mut History,
+ completer: Option<&Completer>)
+ -> Result<String> {
let mut stdout = io::stdout();
try!(write_and_flush(&mut stdout, prompt.as_bytes()));
@@ -647,14 +665,16 @@
} else {
continue;
}
- } else if key == KeyPress::CTRL_R { // Search history backward
- let next = try!(reverse_incremental_search(&mut chars, &mut s, history));
- if next.is_some() {
+ } else if key == KeyPress::CTRL_R {
+ // Search history backward
+ let next = try!(reverse_incremental_search(&mut chars, &mut s, history));
+ if next.is_some() {
key = next.unwrap();
- } else {
+ } else {
continue;
- }
- } else if key == KeyPress::ESC { // escape sequence
+ }
+ } else if key == KeyPress::ESC {
+ // escape sequence
key = try!(escape_sequence(&mut chars));
if key == KeyPress::UNKNOWN_ESC_SEQ {
continue;
@@ -664,31 +684,33 @@
match key {
KeyPress::CTRL_A => try!(edit_move_home(&mut s)), // Move to the beginning of line.
KeyPress::CTRL_B => try!(edit_move_left(&mut s)), // Move back a character.
- KeyPress::CTRL_C => {
- return Err(error::ReadlineError::Interrupted)
- },
+ KeyPress::CTRL_C => return Err(error::ReadlineError::Interrupted),
KeyPress::CTRL_D => {
- if s.buf.len() > 0 { // Delete (forward) one character at point.
+ if s.buf.len() > 0 {
+ // Delete (forward) one character at point.
try!(edit_delete(&mut s))
} else {
- return Err(error::ReadlineError::Eof)
+ return Err(error::ReadlineError::Eof);
}
- },
+ }
KeyPress::CTRL_E => try!(edit_move_end(&mut s)), // Move to the end of line.
KeyPress::CTRL_F => try!(edit_move_right(&mut s)), // Move forward a character.
KeyPress::CTRL_H | KeyPress::BACKSPACE => try!(edit_backspace(&mut s)), // Delete one character backward.
KeyPress::CTRL_J => break, // like ENTER
KeyPress::CTRL_K => try!(edit_kill_line(&mut s)), // Kill the text from point to the end of the line.
- KeyPress::CTRL_L => { // Clear the screen leaving the current line at the top of the screen.
+ KeyPress::CTRL_L => {
+ // Clear the screen leaving the current line at the top of the screen.
try!(clear_screen(s.out));
try!(s.refresh_line())
- },
- KeyPress::CTRL_N => { // Fetch the next command from the history list.
+ }
+ KeyPress::CTRL_N => {
+ // Fetch the next command from the history list.
try!(edit_history_next(&mut s, history, false))
- },
- KeyPress::CTRL_P => { // Fetch the previous command from the history list.
+ }
+ KeyPress::CTRL_P => {
+ // Fetch the previous command from the history list.
try!(edit_history_next(&mut s, history, true))
- },
+ }
KeyPress::CTRL_T => try!(edit_transpose_chars(&mut s)), // Exchange the char before cursor with the character at cursor.
KeyPress::CTRL_U => try!(edit_discard_line(&mut s)), // Kill backward from point to the beginning of the line.
// TODO CTRL_V // Quoted insert
@@ -696,8 +718,8 @@
// TODO CTRL_Y // retrieve (yank) last item killed
// TODO CTRL-_ // undo
KeyPress::ESC_SEQ_DELETE => try!(edit_delete(&mut s)),
- KeyPress::ENTER => break, // Accept the line regardless of where the cursor is.
- _ => try!(edit_insert(&mut s, ch)), // Insert the character typed.
+ KeyPress::ENTER => break, // Accept the line regardless of where the cursor is.
+ _ => try!(edit_insert(&mut s, ch)), // Insert the character typed.
}
}
Ok(s.buf)
@@ -705,7 +727,10 @@
/// Readline method that will enable RAW mode, call the ```readline_edit()```
/// method and disable raw mode
-fn readline_raw(prompt: &str, history: &mut History, completer: Option<&Completer>) -> Result<String> {
+fn readline_raw(prompt: &str,
+ history: &mut History,
+ completer: Option<&Completer>)
+ -> Result<String> {
let original_termios = try!(enable_raw_mode());
let user_input = readline_edit(prompt, history, completer);
try!(disable_raw_mode(original_termios));
@@ -726,7 +751,7 @@
pub struct Editor<'completer> {
unsupported_term: bool,
stdin_isatty: bool,
- //cols: usize, // Number of columns in terminal
+ // cols: usize, // Number of columns in terminal
history: History,
completer: Option<&'completer Completer>,
}
@@ -736,11 +761,12 @@
// TODO check what is done in rl_initialize()
// if the number of columns is stored here, we need a SIGWINCH handler...
// if enable_raw_mode is called here, we need to implement Drop to reset the terminal in its original state...
- Editor{
+ Editor {
unsupported_term: is_unsupported_term(),
stdin_isatty: is_a_tty(),
history: History::new(),
- completer: None}
+ completer: None,
+ }
}
/// This method will read a line from STDIN and will display a `prompt`
@@ -751,7 +777,8 @@
try!(write_and_flush(&mut stdout, prompt.as_bytes()));
readline_direct()
- } else if !self.stdin_isatty { // Not a tty: read from file / pipe.
+ } else if !self.stdin_isatty {
+ // Not a tty: read from file / pipe.
readline_direct()
} else {
readline_raw(prompt, &mut self.history, self.completer)
@@ -759,11 +786,11 @@
}
/// Load the history from the specified file.
- pub fn load_history<P: AsRef<Path>+?Sized>(&mut self, path: &P) -> Result<()> {
+ pub fn load_history<P: AsRef<Path> + ?Sized>(&mut self, path: &P) -> Result<()> {
self.history.load(path)
}
/// Save the history in the specified file.
- pub fn save_history<P: AsRef<Path>+?Sized>(&self, path: &P) -> Result<()> {
+ pub fn save_history<P: AsRef<Path> + ?Sized>(&self, path: &P) -> Result<()> {
self.history.save(path)
}
/// Add a new entry in the history.
@@ -788,9 +815,9 @@
impl<'completer> fmt::Debug for Editor<'completer> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("State")
- .field("unsupported_term", &self.unsupported_term)
- .field("stdin_isatty", &self.stdin_isatty)
- .finish()
+ .field("unsupported_term", &self.unsupported_term)
+ .field("stdin_isatty", &self.stdin_isatty)
+ .finish()
}
}
@@ -802,9 +829,13 @@
use State;
use super::Result;
- fn init_state<'out>(out: &'out mut Write, line: &str, pos: usize, cols: usize) -> State<'out, 'static> {
+ fn init_state<'out>(out: &'out mut Write,
+ line: &str,
+ pos: usize,
+ cols: usize)
+ -> State<'out, 'static> {
State {
- out : out,
+ out: out,
prompt: "",
prompt_width: 0,
buf: String::from(line),
@@ -948,7 +979,7 @@
struct SimpleCompleter;
impl Completer for SimpleCompleter {
fn complete(&self, line: &str, _pos: usize) -> Result<(usize, Vec<String>)> {
- Ok((0, vec!(line.to_string() + "t")))
+ Ok((0, vec![line.to_string() + "t"]))
}
}