Working towards rust stable support.
This commit is contained in:
parent
9644a1aa03
commit
6823706d69
|
@ -18,6 +18,7 @@ git = "https://github.com/cessen/ropey.git"
|
|||
#git = "https://github.com/PistonDevelopers/freetype-rs.git"
|
||||
|
||||
[dependencies]
|
||||
time = "0.1.30"
|
||||
rustc-serialize = "0.3.0"
|
||||
docopt = "0.6.*"
|
||||
encoding = "*"
|
||||
|
|
|
@ -53,7 +53,7 @@ impl Buffer {
|
|||
try!(f.read_to_string(&mut string));
|
||||
|
||||
let buf = Buffer {
|
||||
text: Rope::from_str(string.as_slice()),
|
||||
text: Rope::from_str(&string[..]),
|
||||
file_path: Some(path.to_path_buf()),
|
||||
undo_stack: UndoStack::new(),
|
||||
};
|
||||
|
|
|
@ -13,7 +13,7 @@ use formatter::LineFormatter;
|
|||
///
|
||||
/// `vis_start` is the visual 2d horizontal position of the cursor. This
|
||||
/// doesn't affect editing operations at all, but is used for cursor movement.
|
||||
#[derive(Copy)]
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct Cursor {
|
||||
pub range: (usize, usize), // start, end
|
||||
pub vis_start: usize, // start
|
||||
|
@ -96,14 +96,14 @@ impl CursorSet {
|
|||
impl Index<usize> for CursorSet {
|
||||
type Output = Cursor;
|
||||
|
||||
fn index<'a>(&'a self, _index: &usize) -> &'a Cursor {
|
||||
&(self.cursors[*_index])
|
||||
fn index<'a>(&'a self, _index: usize) -> &'a Cursor {
|
||||
&(self.cursors[_index])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
impl IndexMut<usize> for CursorSet {
|
||||
fn index_mut<'a>(&'a mut self, _index: &usize) -> &'a mut Cursor {
|
||||
&mut (self.cursors[*_index])
|
||||
fn index_mut<'a>(&'a mut self, _index: usize) -> &'a mut Cursor {
|
||||
&mut (self.cursors[_index])
|
||||
}
|
||||
}
|
|
@ -40,7 +40,7 @@ impl<T: LineFormatter> Editor<T> {
|
|||
Editor {
|
||||
buffer: Buffer::new(),
|
||||
formatter: formatter,
|
||||
file_path: PathBuf::new(""),
|
||||
file_path: PathBuf::new(),
|
||||
line_ending_type: LineEnding::LF,
|
||||
soft_tabs: false,
|
||||
soft_tab_width: 4,
|
||||
|
@ -89,7 +89,7 @@ impl<T: LineFormatter> Editor<T> {
|
|||
|
||||
|
||||
pub fn save_if_dirty(&mut self) {
|
||||
if self.dirty && self.file_path != PathBuf::new("") {
|
||||
if self.dirty && self.file_path != PathBuf::new() {
|
||||
let _ = self.buffer.save_to_file(&self.file_path);
|
||||
self.dirty = false;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ use buffer::Buffer;
|
|||
pub const LINE_BLOCK_LENGTH: usize = 4096;
|
||||
|
||||
|
||||
#[derive(Copy, PartialEq)]
|
||||
#[derive(Copy, Clone, PartialEq)]
|
||||
pub enum RoundingBehavior {
|
||||
Round,
|
||||
Floor,
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#![feature(test)]
|
||||
#![feature(std_misc)]
|
||||
|
||||
extern crate time;
|
||||
extern crate test;
|
||||
extern crate rustbox;
|
||||
extern crate docopt;
|
||||
|
|
|
@ -140,7 +140,7 @@ pub fn grapheme_pos_to_byte_pos(text: &str, pos: usize) -> usize {
|
|||
/// Inserts the given text into the given string at the given grapheme index.
|
||||
pub fn insert_text_at_grapheme_index(s: &mut String, text: &str, pos: usize) {
|
||||
// Find insertion position in bytes
|
||||
let byte_pos = grapheme_pos_to_byte_pos(s.as_slice(), pos);
|
||||
let byte_pos = grapheme_pos_to_byte_pos(&s[..], pos);
|
||||
|
||||
// Get byte vec of string
|
||||
let byte_vec = unsafe { s.as_mut_vec() };
|
||||
|
@ -182,8 +182,8 @@ pub fn remove_text_between_grapheme_indices(s: &mut String, pos_a: usize, pos_b:
|
|||
|
||||
// Find removal positions in bytes
|
||||
// TODO: get both of these in a single pass
|
||||
let byte_pos_a = grapheme_pos_to_byte_pos(s.as_slice(), pos_a);
|
||||
let byte_pos_b = grapheme_pos_to_byte_pos(s.as_slice(), pos_b);
|
||||
let byte_pos_a = grapheme_pos_to_byte_pos(&s[..], pos_a);
|
||||
let byte_pos_b = grapheme_pos_to_byte_pos(&s[..], pos_b);
|
||||
|
||||
// Get byte vec of string
|
||||
let byte_vec = unsafe { s.as_mut_vec() };
|
||||
|
@ -211,7 +211,7 @@ pub fn split_string_at_grapheme_index(s1: &mut String, pos: usize) -> String {
|
|||
|
||||
// Code block to contain the borrow of s2
|
||||
{
|
||||
let byte_pos = grapheme_pos_to_byte_pos(s1.as_slice(), pos);
|
||||
let byte_pos = grapheme_pos_to_byte_pos(&s1[..], pos);
|
||||
|
||||
let byte_vec_1 = unsafe { s1.as_mut_vec() };
|
||||
let byte_vec_2 = unsafe { s2.as_mut_vec() };
|
||||
|
@ -231,7 +231,7 @@ pub fn split_string_at_grapheme_index(s1: &mut String, pos: usize) -> String {
|
|||
|
||||
/// Represents one of the valid Unicode line endings.
|
||||
/// Also acts as an index into `LINE_ENDINGS`.
|
||||
#[derive(PartialEq, Copy)]
|
||||
#[derive(PartialEq, Copy, Clone)]
|
||||
pub enum LineEnding {
|
||||
None = 0, // No line ending
|
||||
CRLF = 1, // CarriageReturn followed by LineFeed
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
use rustbox;
|
||||
use rustbox::Color;
|
||||
use editor::Editor;
|
||||
use time::Duration;
|
||||
use formatter::{LineFormatter, LINE_BLOCK_LENGTH, block_index_and_offset};
|
||||
use std::char;
|
||||
use std::default::Default;
|
||||
use std::time::duration::Duration;
|
||||
use std::cmp::min;
|
||||
use string_utils::{is_line_ending, line_ending_to_str, LineEnding};
|
||||
use utils::digit_count;
|
||||
|
@ -387,7 +387,7 @@ impl TermUI {
|
|||
let lnx = c1.1 + (gutter_width - 1 - digit_count(line_num as u32, 10) as usize);
|
||||
let lny = screen_line as usize;
|
||||
if lny >= c1.0 && lny <= c2.0 {
|
||||
self.rb.print(lnx, lny, rustbox::RB_NORMAL, Color::White, Color::Blue, format!("{}", line_num).as_slice());
|
||||
self.rb.print(lnx, lny, rustbox::RB_NORMAL, Color::White, Color::Blue, &format!("{}", line_num)[..]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user