From 61f3a438d3a729a6be941bca1ff4c6a97a33f221 Mon Sep 17 00:00:00 2001 From: "Jeremy A. Kolb" Date: Mon, 15 Oct 2018 17:44:23 -0400 Subject: Cargo Format Run `cargo fmt` and ignore generated files --- crates/ra_editor/src/line_index.rs | 119 ++++++++++++++++++++++++++++++++----- 1 file changed, 103 insertions(+), 16 deletions(-) (limited to 'crates/ra_editor/src/line_index.rs') diff --git a/crates/ra_editor/src/line_index.rs b/crates/ra_editor/src/line_index.rs index 95d64b8a8..da0f2a7f7 100644 --- a/crates/ra_editor/src/line_index.rs +++ b/crates/ra_editor/src/line_index.rs @@ -1,5 +1,5 @@ -use superslice::Ext; use crate::TextUnit; +use superslice::Ext; #[derive(Clone, Debug, Hash, PartialEq, Eq)] pub struct LineIndex { @@ -29,7 +29,10 @@ impl LineIndex { let line = self.newlines.upper_bound(&offset) - 1; let line_start_offset = self.newlines[line]; let col = offset - line_start_offset; - return LineCol { line: line as u32, col }; + return LineCol { + line: line as u32, + col, + }; } pub fn offset(&self, line_col: LineCol) -> TextUnit { @@ -42,21 +45,105 @@ impl LineIndex { fn test_line_index() { let text = "hello\nworld"; let index = LineIndex::new(text); - assert_eq!(index.line_col(0.into()), LineCol { line: 0, col: 0.into() }); - assert_eq!(index.line_col(1.into()), LineCol { line: 0, col: 1.into() }); - assert_eq!(index.line_col(5.into()), LineCol { line: 0, col: 5.into() }); - assert_eq!(index.line_col(6.into()), LineCol { line: 1, col: 0.into() }); - assert_eq!(index.line_col(7.into()), LineCol { line: 1, col: 1.into() }); - assert_eq!(index.line_col(8.into()), LineCol { line: 1, col: 2.into() }); - assert_eq!(index.line_col(10.into()), LineCol { line: 1, col: 4.into() }); - assert_eq!(index.line_col(11.into()), LineCol { line: 1, col: 5.into() }); - assert_eq!(index.line_col(12.into()), LineCol { line: 1, col: 6.into() }); + assert_eq!( + index.line_col(0.into()), + LineCol { + line: 0, + col: 0.into() + } + ); + assert_eq!( + index.line_col(1.into()), + LineCol { + line: 0, + col: 1.into() + } + ); + assert_eq!( + index.line_col(5.into()), + LineCol { + line: 0, + col: 5.into() + } + ); + assert_eq!( + index.line_col(6.into()), + LineCol { + line: 1, + col: 0.into() + } + ); + assert_eq!( + index.line_col(7.into()), + LineCol { + line: 1, + col: 1.into() + } + ); + assert_eq!( + index.line_col(8.into()), + LineCol { + line: 1, + col: 2.into() + } + ); + assert_eq!( + index.line_col(10.into()), + LineCol { + line: 1, + col: 4.into() + } + ); + assert_eq!( + index.line_col(11.into()), + LineCol { + line: 1, + col: 5.into() + } + ); + assert_eq!( + index.line_col(12.into()), + LineCol { + line: 1, + col: 6.into() + } + ); let text = "\nhello\nworld"; let index = LineIndex::new(text); - assert_eq!(index.line_col(0.into()), LineCol { line: 0, col: 0.into() }); - assert_eq!(index.line_col(1.into()), LineCol { line: 1, col: 0.into() }); - assert_eq!(index.line_col(2.into()), LineCol { line: 1, col: 1.into() }); - assert_eq!(index.line_col(6.into()), LineCol { line: 1, col: 5.into() }); - assert_eq!(index.line_col(7.into()), LineCol { line: 2, col: 0.into() }); + assert_eq!( + index.line_col(0.into()), + LineCol { + line: 0, + col: 0.into() + } + ); + assert_eq!( + index.line_col(1.into()), + LineCol { + line: 1, + col: 0.into() + } + ); + assert_eq!( + index.line_col(2.into()), + LineCol { + line: 1, + col: 1.into() + } + ); + assert_eq!( + index.line_col(6.into()), + LineCol { + line: 1, + col: 5.into() + } + ); + assert_eq!( + index.line_col(7.into()), + LineCol { + line: 2, + col: 0.into() + } + ); } -- cgit v1.2.3