Tweaked code to avoid warnings from latest rustc compiler.
This commit is contained in:
parent
c6cfebdb75
commit
8701ebbba7
|
@ -117,7 +117,7 @@ impl Line {
|
||||||
let mut le_size: usize = 0;
|
let mut le_size: usize = 0;
|
||||||
let text_size = tl.text.len();
|
let text_size = tl.text.len();
|
||||||
if tl.text.len() >= 3 {
|
if tl.text.len() >= 3 {
|
||||||
match unsafe{mem::transmute::<&[u8], &str>(tl.text.slice_from(text_size-3))} {
|
match unsafe{mem::transmute::<&[u8], &str>(&tl.text[(text_size-3)..])} {
|
||||||
// LS
|
// LS
|
||||||
"\u{2028}" => {
|
"\u{2028}" => {
|
||||||
tl.ending = LineEnding::LS;
|
tl.ending = LineEnding::LS;
|
||||||
|
@ -135,7 +135,7 @@ impl Line {
|
||||||
}
|
}
|
||||||
|
|
||||||
if le_size == 0 && tl.text.len() >= 2 {
|
if le_size == 0 && tl.text.len() >= 2 {
|
||||||
match unsafe{mem::transmute::<&[u8], &str>(tl.text.slice_from(text_size-2))} {
|
match unsafe{mem::transmute::<&[u8], &str>(&tl.text[(text_size-2)..])} {
|
||||||
// CRLF
|
// CRLF
|
||||||
"\u{000D}\u{000A}" => {
|
"\u{000D}\u{000A}" => {
|
||||||
tl.ending = LineEnding::CRLF;
|
tl.ending = LineEnding::CRLF;
|
||||||
|
@ -147,7 +147,7 @@ impl Line {
|
||||||
}
|
}
|
||||||
|
|
||||||
if le_size == 0 && tl.text.len() >= 1 {
|
if le_size == 0 && tl.text.len() >= 1 {
|
||||||
match unsafe{mem::transmute::<&[u8], &str>(tl.text.slice_from(text_size-1))} {
|
match unsafe{mem::transmute::<&[u8], &str>(&tl.text[(text_size-1)..])} {
|
||||||
// LF
|
// LF
|
||||||
"\u{000A}" => {
|
"\u{000A}" => {
|
||||||
tl.ending = LineEnding::LF;
|
tl.ending = LineEnding::LF;
|
||||||
|
@ -230,7 +230,7 @@ impl Line {
|
||||||
/// Returns an immutable string slice into the text block's memory
|
/// Returns an immutable string slice into the text block's memory
|
||||||
pub fn as_str<'a>(&'a self) -> &'a str {
|
pub fn as_str<'a>(&'a self) -> &'a str {
|
||||||
unsafe {
|
unsafe {
|
||||||
mem::transmute(self.text.as_slice())
|
mem::transmute(&self.text[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,7 +336,7 @@ impl Line {
|
||||||
let byte_pos = grapheme_pos_to_byte_pos(self.as_str(), pos);
|
let byte_pos = grapheme_pos_to_byte_pos(self.as_str(), pos);
|
||||||
|
|
||||||
// Copy the elements after the split index to the second line
|
// Copy the elements after the split index to the second line
|
||||||
other.text.push_all(self.text.slice_from(byte_pos));
|
other.text.push_all(&self.text[byte_pos..]);
|
||||||
|
|
||||||
// Truncate the first line
|
// Truncate the first line
|
||||||
self.text.truncate(byte_pos);
|
self.text.truncate(byte_pos);
|
||||||
|
@ -362,7 +362,7 @@ impl Line {
|
||||||
|
|
||||||
/// Returns an iterator over the graphemes of the line
|
/// Returns an iterator over the graphemes of the line
|
||||||
pub fn grapheme_iter_at_index<'a>(&'a self, index: usize) -> LineGraphemeIter<'a> {
|
pub fn grapheme_iter_at_index<'a>(&'a self, index: usize) -> LineGraphemeIter<'a> {
|
||||||
let temp: &str = unsafe{mem::transmute(self.text.as_slice())};
|
let temp: &str = unsafe{mem::transmute(&self.text[])};
|
||||||
|
|
||||||
let mut iter = LineGraphemeIter {
|
let mut iter = LineGraphemeIter {
|
||||||
graphemes: temp.graphemes(true),
|
graphemes: temp.graphemes(true),
|
||||||
|
|
|
@ -168,7 +168,7 @@ impl<T: LineFormatter> Buffer<T> {
|
||||||
// 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.as_slice(), pos_to);
|
self._insert_text(&s[], pos_to);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,19 +219,19 @@ impl<T: LineFormatter> Buffer<T> {
|
||||||
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.as_slice());
|
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.as_slice());
|
let size = grapheme_count(&s[]);
|
||||||
self._insert_text(s.as_slice(), 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.as_slice(), p);
|
self._insert_text(&s[], p);
|
||||||
return Some(p);
|
return Some(p);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -257,13 +257,13 @@ impl<T: LineFormatter> Buffer<T> {
|
||||||
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.as_slice());
|
let size = grapheme_count(&s[]);
|
||||||
self._insert_text(s.as_slice(), 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.as_slice());
|
let size = grapheme_count(&s[]);
|
||||||
self._remove_text(p, p+size);
|
self._remove_text(p, p+size);
|
||||||
return Some(p);
|
return Some(p);
|
||||||
},
|
},
|
||||||
|
@ -1498,7 +1498,7 @@ mod tests {
|
||||||
|
|
||||||
let s = buf.string_from_range(1, 12);
|
let s = buf.string_from_range(1, 12);
|
||||||
|
|
||||||
assert!(s.as_slice() == "i\nthere\npeo");
|
assert!(&s[] == "i\nthere\npeo");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1509,7 +1509,7 @@ mod tests {
|
||||||
|
|
||||||
let s = buf.string_from_range(0, 29);
|
let s = buf.string_from_range(0, 29);
|
||||||
|
|
||||||
assert!(s.as_slice() == "Hi\nthere\npeople\nof\nthe\nworld!");
|
assert!(&s[] == "Hi\nthere\npeople\nof\nthe\nworld!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -357,7 +357,7 @@ impl BufferNode {
|
||||||
for grapheme in text.grapheme_indices(true) {
|
for grapheme in text.grapheme_indices(true) {
|
||||||
if is_line_ending(grapheme.1) {
|
if is_line_ending(grapheme.1) {
|
||||||
if g1 < g2 {
|
if g1 < g2 {
|
||||||
self.insert_text_recursive(f, text.slice(b1, b2), pos + g1);
|
self.insert_text_recursive(f, &text[b1..b2], pos + g1);
|
||||||
}
|
}
|
||||||
|
|
||||||
g1 = g2;
|
g1 = g2;
|
||||||
|
@ -376,7 +376,7 @@ impl BufferNode {
|
||||||
}
|
}
|
||||||
|
|
||||||
if g1 < g2 {
|
if g1 < g2 {
|
||||||
self.insert_text_recursive(f, text.slice(b1, b2), pos + g1);
|
self.insert_text_recursive(f, &text[b1..b2], pos + g1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -159,7 +159,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 range(0, 9) {
|
for i in 0us..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];
|
||||||
|
|
10
src/main.rs
10
src/main.rs
|
@ -1,4 +1,8 @@
|
||||||
#![allow(unstable)]
|
#![feature(core)]
|
||||||
|
#![feature(io)]
|
||||||
|
#![feature(collections)]
|
||||||
|
#![feature(path)]
|
||||||
|
#![feature(std_misc)]
|
||||||
|
|
||||||
extern crate rustbox;
|
extern crate rustbox;
|
||||||
extern crate docopt;
|
extern crate docopt;
|
||||||
|
@ -56,7 +60,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.as_slice()))
|
// Editor::new_from_file(GUILineFormatter::new(4), &Path::new(&s[]))
|
||||||
// }
|
// }
|
||||||
// else {
|
// else {
|
||||||
// Editor::new(GUILineFormatter::new(4))
|
// Editor::new(GUILineFormatter::new(4))
|
||||||
|
@ -71,7 +75,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.as_slice()))
|
Editor::new_from_file(ConsoleLineFormatter::new(4), &Path::new(&s[]))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Editor::new(ConsoleLineFormatter::new(4))
|
Editor::new(ConsoleLineFormatter::new(4))
|
||||||
|
|
|
@ -170,7 +170,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().as_slice());
|
self.editor.insert_text_at_cursor(&c.to_string()[]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -214,11 +214,11 @@ impl TermUI {
|
||||||
// Draw the editor to screen
|
// Draw the editor to screen
|
||||||
self.rb.clear();
|
self.rb.clear();
|
||||||
self.draw_editor(&self.editor, (0, 0), (self.height-1, self.width-1));
|
self.draw_editor(&self.editor, (0, 0), (self.height-1, self.width-1));
|
||||||
for i in range(0, self.width) {
|
for i in 0..self.width {
|
||||||
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.as_slice());
|
self.rb.print(prefix.len() + 1, 0, rustbox::RB_NORMAL, foreground, background, &line[]);
|
||||||
self.rb.present();
|
self.rb.present();
|
||||||
|
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ impl TermUI {
|
||||||
let background = Color::Cyan;
|
let background = Color::Cyan;
|
||||||
|
|
||||||
// Fill in top row with info line color
|
// Fill in top row with info line color
|
||||||
for i in range(c1.1, c2.1 + 1) {
|
for i in c1.1..(c2.1 + 1) {
|
||||||
self.rb.print(i, c1.0, rustbox::RB_NORMAL, foreground, background, " ");
|
self.rb.print(i, c1.0, rustbox::RB_NORMAL, foreground, background, " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,7 +308,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.as_slice());
|
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
|
||||||
|
@ -320,7 +320,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.as_slice());
|
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.buffer.line_ending_type {
|
let nl = match editor.buffer.line_ending_type {
|
||||||
|
@ -336,7 +336,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.as_slice());
|
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);
|
||||||
|
@ -387,7 +387,7 @@ impl TermUI {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if g == "\t" {
|
else if g == "\t" {
|
||||||
for i in range(0, width) {
|
for i in 0..width {
|
||||||
let tpx = px as usize + i;
|
let tpx = px as usize + i;
|
||||||
if tpx <= c2.1 {
|
if tpx <= c2.1 {
|
||||||
self.rb.print(tpx as usize, py as usize, rustbox::RB_NORMAL, Color::White, Color::Black, " ");
|
self.rb.print(tpx as usize, py as usize, rustbox::RB_NORMAL, Color::White, Color::Black, " ");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user