diff options
author | Aleksey Kladov <[email protected]> | 2019-02-08 11:49:43 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-02-08 11:49:43 +0000 |
commit | 12e3b4c70b5ef23b2fdfc197296d483680e125f9 (patch) | |
tree | 71baa0e0a62f9f6b61450501c5f821f67badf9e4 /crates/ra_ide_api_light/src/line_index_utils.rs | |
parent | 5cb1d41a30d25cbe136402644bf5434dd667f1e5 (diff) |
reformat the world
Diffstat (limited to 'crates/ra_ide_api_light/src/line_index_utils.rs')
-rw-r--r-- | crates/ra_ide_api_light/src/line_index_utils.rs | 51 |
1 files changed, 9 insertions, 42 deletions
diff --git a/crates/ra_ide_api_light/src/line_index_utils.rs b/crates/ra_ide_api_light/src/line_index_utils.rs index 5d9ab6fd2..799a920ad 100644 --- a/crates/ra_ide_api_light/src/line_index_utils.rs +++ b/crates/ra_ide_api_light/src/line_index_utils.rs | |||
@@ -17,11 +17,7 @@ struct LineIndexStepIter<'a> { | |||
17 | 17 | ||
18 | impl<'a> LineIndexStepIter<'a> { | 18 | impl<'a> LineIndexStepIter<'a> { |
19 | fn from(line_index: &LineIndex) -> LineIndexStepIter { | 19 | fn from(line_index: &LineIndex) -> LineIndexStepIter { |
20 | let mut x = LineIndexStepIter { | 20 | let mut x = LineIndexStepIter { line_index, next_newline_idx: 0, utf16_chars: None }; |
21 | line_index, | ||
22 | next_newline_idx: 0, | ||
23 | utf16_chars: None, | ||
24 | }; | ||
25 | // skip first newline since it's not real | 21 | // skip first newline since it's not real |
26 | x.next(); | 22 | x.next(); |
27 | x | 23 | x |
@@ -35,10 +31,7 @@ impl<'a> Iterator for LineIndexStepIter<'a> { | |||
35 | .as_mut() | 31 | .as_mut() |
36 | .and_then(|(newline, x)| { | 32 | .and_then(|(newline, x)| { |
37 | let x = x.next()?; | 33 | let x = x.next()?; |
38 | Some(Step::Utf16Char(TextRange::from_to( | 34 | Some(Step::Utf16Char(TextRange::from_to(*newline + x.start, *newline + x.end))) |
39 | *newline + x.start, | ||
40 | *newline + x.end, | ||
41 | ))) | ||
42 | }) | 35 | }) |
43 | .or_else(|| { | 36 | .or_else(|| { |
44 | let next_newline = *self.line_index.newlines.get(self.next_newline_idx)?; | 37 | let next_newline = *self.line_index.newlines.get(self.next_newline_idx)?; |
@@ -113,11 +106,7 @@ struct Edits<'a> { | |||
113 | 106 | ||
114 | impl<'a> Edits<'a> { | 107 | impl<'a> Edits<'a> { |
115 | fn from_text_edit(text_edit: &'a TextEdit) -> Edits<'a> { | 108 | fn from_text_edit(text_edit: &'a TextEdit) -> Edits<'a> { |
116 | let mut x = Edits { | 109 | let mut x = Edits { edits: text_edit.as_atoms(), current: None, acc_diff: 0 }; |
117 | edits: text_edit.as_atoms(), | ||
118 | current: None, | ||
119 | acc_diff: 0, | ||
120 | }; | ||
121 | x.advance_edit(); | 110 | x.advance_edit(); |
122 | x | 111 | x |
123 | } | 112 | } |
@@ -127,11 +116,7 @@ impl<'a> Edits<'a> { | |||
127 | Some((next, rest)) => { | 116 | Some((next, rest)) => { |
128 | let delete = self.translate_range(next.delete); | 117 | let delete = self.translate_range(next.delete); |
129 | let diff = next.insert.len() as i64 - next.delete.len().to_usize() as i64; | 118 | let diff = next.insert.len() as i64 - next.delete.len().to_usize() as i64; |
130 | self.current = Some(TranslatedEdit { | 119 | self.current = Some(TranslatedEdit { delete, insert: &next.insert, diff }); |
131 | delete, | ||
132 | insert: &next.insert, | ||
133 | diff, | ||
134 | }); | ||
135 | self.edits = rest; | 120 | self.edits = rest; |
136 | } | 121 | } |
137 | None => { | 122 | None => { |
@@ -142,10 +127,7 @@ impl<'a> Edits<'a> { | |||
142 | 127 | ||
143 | fn next_inserted_steps(&mut self) -> Option<OffsetStepIter<'a>> { | 128 | fn next_inserted_steps(&mut self) -> Option<OffsetStepIter<'a>> { |
144 | let cur = self.current.as_ref()?; | 129 | let cur = self.current.as_ref()?; |
145 | let res = Some(OffsetStepIter { | 130 | let res = Some(OffsetStepIter { offset: cur.delete.start(), text: &cur.insert }); |
146 | offset: cur.delete.start(), | ||
147 | text: &cur.insert, | ||
148 | }); | ||
149 | self.advance_edit(); | 131 | self.advance_edit(); |
150 | res | 132 | res |
151 | } | 133 | } |
@@ -160,18 +142,12 @@ impl<'a> Edits<'a> { | |||
160 | if step_pos <= edit.delete.start() { | 142 | if step_pos <= edit.delete.start() { |
161 | NextSteps::Use | 143 | NextSteps::Use |
162 | } else if step_pos <= edit.delete.end() { | 144 | } else if step_pos <= edit.delete.end() { |
163 | let iter = OffsetStepIter { | 145 | let iter = OffsetStepIter { offset: edit.delete.start(), text: &edit.insert }; |
164 | offset: edit.delete.start(), | ||
165 | text: &edit.insert, | ||
166 | }; | ||
167 | // empty slice to avoid returning steps again | 146 | // empty slice to avoid returning steps again |
168 | edit.insert = &edit.insert[edit.insert.len()..]; | 147 | edit.insert = &edit.insert[edit.insert.len()..]; |
169 | NextSteps::ReplaceMany(iter) | 148 | NextSteps::ReplaceMany(iter) |
170 | } else { | 149 | } else { |
171 | let iter = OffsetStepIter { | 150 | let iter = OffsetStepIter { offset: edit.delete.start(), text: &edit.insert }; |
172 | offset: edit.delete.start(), | ||
173 | text: &edit.insert, | ||
174 | }; | ||
175 | // empty slice to avoid returning steps again | 151 | // empty slice to avoid returning steps again |
176 | edit.insert = &edit.insert[edit.insert.len()..]; | 152 | edit.insert = &edit.insert[edit.insert.len()..]; |
177 | self.advance_edit(); | 153 | self.advance_edit(); |
@@ -222,11 +198,7 @@ struct RunningLineCol { | |||
222 | 198 | ||
223 | impl RunningLineCol { | 199 | impl RunningLineCol { |
224 | fn new() -> RunningLineCol { | 200 | fn new() -> RunningLineCol { |
225 | RunningLineCol { | 201 | RunningLineCol { line: 0, last_newline: TextUnit::from(0), col_adjust: TextUnit::from(0) } |
226 | line: 0, | ||
227 | last_newline: TextUnit::from(0), | ||
228 | col_adjust: TextUnit::from(0), | ||
229 | } | ||
230 | } | 202 | } |
231 | 203 | ||
232 | fn to_line_col(&self, offset: TextUnit) -> LineCol { | 204 | fn to_line_col(&self, offset: TextUnit) -> LineCol { |
@@ -339,12 +311,7 @@ mod test { | |||
339 | let edited_text = x.edit.apply(&x.text); | 311 | let edited_text = x.edit.apply(&x.text); |
340 | let arb_offset = arb_offset(&edited_text); | 312 | let arb_offset = arb_offset(&edited_text); |
341 | (Just(x), Just(edited_text), arb_offset).prop_map(|(x, edited_text, offset)| { | 313 | (Just(x), Just(edited_text), arb_offset).prop_map(|(x, edited_text, offset)| { |
342 | ArbTextWithEditAndOffset { | 314 | ArbTextWithEditAndOffset { text: x.text, edit: x.edit, edited_text, offset } |
343 | text: x.text, | ||
344 | edit: x.edit, | ||
345 | edited_text, | ||
346 | offset, | ||
347 | } | ||
348 | }) | 315 | }) |
349 | }) | 316 | }) |
350 | .boxed() | 317 | .boxed() |