Updated code for latest rustc.

This commit is contained in:
Nathan Vegdahl 2015-02-23 20:50:55 -08:00
parent d3cd1c4b05
commit 82e6fca1dd
5 changed files with 37 additions and 29 deletions

View File

@ -194,7 +194,7 @@ impl Buffer {
// manipulates the node tree. // manipulates the node tree.
let s = self.string_from_range(pos_a, pos_b); let s = self.string_from_range(pos_a, pos_b);
self._remove_text(pos_a, pos_b); self._remove_text(pos_a, pos_b);
self._insert_text(&s[], pos_to); self._insert_text(&s[..], pos_to);
} }
} }
@ -257,19 +257,19 @@ impl Buffer {
if let Some(op) = self.undo_stack.prev() { if let Some(op) = self.undo_stack.prev() {
match op { match op {
InsertText(ref s, p) => { InsertText(ref s, p) => {
let size = grapheme_count(&s[]); let size = grapheme_count(&s[..]);
self._remove_text(p, p+size); self._remove_text(p, p+size);
return Some(p); return Some(p);
}, },
RemoveTextBefore(ref s, p) => { RemoveTextBefore(ref s, p) => {
let size = grapheme_count(&s[]); let size = grapheme_count(&s[..]);
self._insert_text(&s[], p); self._insert_text(&s[..], p);
return Some(p+size); return Some(p+size);
}, },
RemoveTextAfter(ref s, p) => { RemoveTextAfter(ref s, p) => {
self._insert_text(&s[], p); self._insert_text(&s[..], p);
return Some(p); return Some(p);
}, },
@ -295,13 +295,13 @@ impl Buffer {
if let Some(op) = self.undo_stack.next() { if let Some(op) = self.undo_stack.next() {
match op { match op {
InsertText(ref s, p) => { InsertText(ref s, p) => {
let size = grapheme_count(&s[]); let size = grapheme_count(&s[..]);
self._insert_text(&s[], p); self._insert_text(&s[..], p);
return Some(p+size); return Some(p+size);
}, },
RemoveTextBefore(ref s, p) | RemoveTextAfter(ref s, p) => { RemoveTextBefore(ref s, p) | RemoveTextAfter(ref s, p) => {
let size = grapheme_count(&s[]); let size = grapheme_count(&s[..]);
self._remove_text(p, p+size); self._remove_text(p, p+size);
return Some(p); return Some(p);
}, },
@ -1505,7 +1505,7 @@ mod tests {
let s = buf.string_from_range(1, 12); let s = buf.string_from_range(1, 12);
assert!(&s[] == "i\nthere\npeo"); assert!(&s[..] == "i\nthere\npeo");
} }
@ -1516,7 +1516,7 @@ mod tests {
let s = buf.string_from_range(0, 29); let s = buf.string_from_range(0, 29);
assert!(&s[] == "Hi\nthere\npeople\nof\nthe\nworld!"); assert!(&s[..] == "Hi\nthere\npeople\nof\nthe\nworld!");
} }

View File

@ -1,4 +1,4 @@
use std::collections::DList; use std::collections::LinkedList;
/// A text editing operation /// A text editing operation
@ -14,15 +14,15 @@ pub enum Operation {
/// An undo/redo stack of text editing operations /// An undo/redo stack of text editing operations
pub struct UndoStack { pub struct UndoStack {
stack_a: DList<Operation>, stack_a: LinkedList<Operation>,
stack_b: DList<Operation>, stack_b: LinkedList<Operation>,
} }
impl UndoStack { impl UndoStack {
pub fn new() -> UndoStack { pub fn new() -> UndoStack {
UndoStack { UndoStack {
stack_a: DList::new(), stack_a: LinkedList::new(),
stack_b: DList::new(), stack_b: LinkedList::new(),
} }
} }

View File

@ -141,7 +141,7 @@ impl<T: LineFormatter> Editor<T> {
// Analyze stats and make a determination // Analyze stats and make a determination
let mut lei = 0; let mut lei = 0;
let mut le_count = 0; let mut le_count = 0;
for i in 0us..8 { for i in 0usize..8 {
if line_ending_histogram[i] >= le_count { if line_ending_histogram[i] >= le_count {
lei = i; lei = i;
le_count = line_ending_histogram[i]; le_count = line_ending_histogram[i];
@ -170,7 +170,7 @@ impl<T: LineFormatter> Editor<T> {
let mut space_blocks: usize = 0; let mut space_blocks: usize = 0;
let mut space_histogram: [usize; 9] = [0, 0, 0, 0, 0, 0, 0, 0, 0]; let mut space_histogram: [usize; 9] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
let mut last_indent = (false, 0us); // (was_tabs, indent_count) let mut last_indent = (false, 0usize); // (was_tabs, indent_count)
// Collect statistics // Collect statistics
let mut line_i: usize = 0; let mut line_i: usize = 0;
@ -244,7 +244,7 @@ impl<T: LineFormatter> Editor<T> {
if space_blocks > (tab_blocks * 2) { if space_blocks > (tab_blocks * 2) {
let mut width = 0; let mut width = 0;
let mut width_count = 0; let mut width_count = 0;
for i in 0us..9 { for i in 0usize..9 {
if space_histogram[i] > width_count { if space_histogram[i] > width_count {
width = i; width = i;
width_count = space_histogram[i]; width_count = space_histogram[i];

View File

@ -1,7 +1,7 @@
#![feature(core)] #![feature(core)]
#![feature(io)] #![feature(old_io)]
#![feature(collections)] #![feature(collections)]
#![feature(path)] #![feature(old_path)]
#![feature(unicode)] #![feature(unicode)]
#![feature(test)] #![feature(test)]
#![feature(std_misc)] #![feature(std_misc)]
@ -65,7 +65,7 @@ fn main() {
if args.flag_gui { if args.flag_gui {
// // Load file, if specified // // Load file, if specified
// let editor = if let Option::Some(s) = args.arg_file { // let editor = if let Option::Some(s) = args.arg_file {
// Editor::new_from_file(GUILineFormatter::new(4), &Path::new(&s[])) // Editor::new_from_file(GUILineFormatter::new(4), &Path::new(&s[..]))
// } // }
// else { // else {
// Editor::new(GUILineFormatter::new(4)) // Editor::new(GUILineFormatter::new(4))
@ -80,7 +80,7 @@ fn main() {
else { else {
// Load file, if specified // Load file, if specified
let editor = if let Option::Some(s) = args.arg_file { let editor = if let Option::Some(s) = args.arg_file {
Editor::new_from_file(ConsoleLineFormatter::new(4), &Path::new(&s[])) Editor::new_from_file(ConsoleLineFormatter::new(4), &Path::new(&s[..]))
} }
else { else {
Editor::new(ConsoleLineFormatter::new(4)) Editor::new(ConsoleLineFormatter::new(4))

View File

@ -5,6 +5,8 @@ use rustbox::Color;
use editor::Editor; use editor::Editor;
use formatter::{LineFormatter, LINE_BLOCK_LENGTH, block_index_and_offset}; use formatter::{LineFormatter, LINE_BLOCK_LENGTH, block_index_and_offset};
use std::char; use std::char;
use std::old_io::stdio;
use std::default::Default;
use std::time::duration::Duration; use std::time::duration::Duration;
use string_utils::{is_line_ending, line_ending_to_str, LineEnding}; use string_utils::{is_line_ending, line_ending_to_str, LineEnding};
use utils::digit_count; use utils::digit_count;
@ -43,7 +45,10 @@ pub struct TermUI {
impl TermUI { impl TermUI {
pub fn new() -> TermUI { pub fn new() -> TermUI {
let rb = match rustbox::RustBox::init(&[Some(rustbox::InitOption::BufferStderr)]) { let rb = match rustbox::RustBox::init(rustbox::InitOptions {
buffer_stderr: stdio::stderr_raw().isatty(),
..Default::default()
}) {
Ok(rbox) => rbox, Ok(rbox) => rbox,
Err(_) => panic!("Could not create Rustbox instance."), Err(_) => panic!("Could not create Rustbox instance."),
}; };
@ -61,7 +66,10 @@ impl TermUI {
} }
pub fn new_from_editor(ed: Editor<ConsoleLineFormatter>) -> TermUI { pub fn new_from_editor(ed: Editor<ConsoleLineFormatter>) -> TermUI {
let rb = match rustbox::RustBox::init(&[Some(rustbox::InitOption::BufferStderr)]) { let rb = match rustbox::RustBox::init(rustbox::InitOptions {
buffer_stderr: stdio::stderr_raw().isatty(),
..Default::default()
}) {
Ok(rbox) => rbox, Ok(rbox) => rbox,
Err(_) => panic!("Could not create Rustbox instance."), Err(_) => panic!("Could not create Rustbox instance."),
}; };
@ -174,7 +182,7 @@ impl TermUI {
// Character // Character
0 => { 0 => {
if let Option::Some(c) = char::from_u32(character) { if let Option::Some(c) = char::from_u32(character) {
self.editor.insert_text_at_cursor(&c.to_string()[]); self.editor.insert_text_at_cursor(&c.to_string()[..]);
} }
}, },
@ -228,7 +236,7 @@ impl TermUI {
self.rb.print(i, 0, rustbox::RB_NORMAL, foreground, background, " "); self.rb.print(i, 0, rustbox::RB_NORMAL, foreground, background, " ");
} }
self.rb.print(1, 0, rustbox::RB_NORMAL, foreground, background, prefix); self.rb.print(1, 0, rustbox::RB_NORMAL, foreground, background, prefix);
self.rb.print(prefix.len() + 1, 0, rustbox::RB_NORMAL, foreground, background, &line[]); self.rb.print(prefix.len() + 1, 0, rustbox::RB_NORMAL, foreground, background, &line[..]);
self.rb.present(); self.rb.present();
@ -318,7 +326,7 @@ impl TermUI {
let filename = editor.file_path.display(); let filename = editor.file_path.display();
let dirty_char = if editor.dirty {"*"} else {""}; let dirty_char = if editor.dirty {"*"} else {""};
let name = format!("{}{}", filename, dirty_char); let name = format!("{}{}", filename, dirty_char);
self.rb.print(c1.1 + 1, c1.0, rustbox::RB_NORMAL, foreground, background, &name[]); self.rb.print(c1.1 + 1, c1.0, rustbox::RB_NORMAL, foreground, background, &name[..]);
// Percentage position in document // Percentage position in document
// TODO: use view instead of cursor for calculation if there is more // TODO: use view instead of cursor for calculation if there is more
@ -330,7 +338,7 @@ impl TermUI {
100 100
}; };
let pstring = format!("{}%", percentage); let pstring = format!("{}%", percentage);
self.rb.print(c2.1 - pstring.len(), c1.0, rustbox::RB_NORMAL, foreground, background, &pstring[]); self.rb.print(c2.1 - pstring.len(), c1.0, rustbox::RB_NORMAL, foreground, background, &pstring[..]);
// Text encoding info and tab style // Text encoding info and tab style
let nl = match editor.line_ending_type { let nl = match editor.line_ending_type {
@ -346,7 +354,7 @@ impl TermUI {
}; };
let soft_tabs_str = if editor.soft_tabs {"spaces"} else {"tabs"}; let soft_tabs_str = if editor.soft_tabs {"spaces"} else {"tabs"};
let info_line = format!("UTF8:{} {}:{}", nl, soft_tabs_str, editor.soft_tab_width as usize); let info_line = format!("UTF8:{} {}:{}", nl, soft_tabs_str, editor.soft_tab_width as usize);
self.rb.print(c2.1 - 30, c1.0, rustbox::RB_NORMAL, foreground, background, &info_line[]); self.rb.print(c2.1 - 30, c1.0, rustbox::RB_NORMAL, foreground, background, &info_line[..]);
// Draw main text editing area // Draw main text editing area
self.draw_editor_text(editor, (c1.0 + 1, c1.1), c2); self.draw_editor_text(editor, (c1.0 + 1, c1.1), c2);