on master help sign in
Introduce Selection::point.
commitf5981f72c256a834845aad0c2947a4a20fa84d1b authorBlaž Hrastnik <blaz@mxxn.io> dateFri 23 Oct 2020, 12:09 (6 years ago) parent55fa862
2 files changed+14−10
helix-core/src/selection.rs+5 helix-view/src/commands.rs+9−10
helix-core/src/selection.rs+5
@@ -179,6 +179,11 @@ impl Selection {
179179 }
180180 }
181181
182+ /// Constructs a selection holding a single cursor.
183+ pub fn point(pos: usize) -> Self {
184+ Self::single(pos, pos)
185+ }
186+
182187 #[must_use]
183188 pub fn new(ranges: SmallVec<[Range; 1]>, primary_index: usize) -> Self {
184189 fn normalize(mut ranges: SmallVec<[Range; 1]>, mut primary_index: usize) -> Selection {
helix-view/src/commands.rs+9−10
@@ -93,7 +93,7 @@ pub fn move_next_word_start(view: &mut View, count: usize) {
9393 count,
9494 );
9595
96− view.doc.set_selection(Selection::single(pos, pos));
96+ view.doc.set_selection(Selection::point(pos));
9797}
9898
9999pub fn move_prev_word_start(view: &mut View, count: usize) {
@@ -104,7 +104,7 @@ pub fn move_prev_word_start(view: &mut View, count: usize) {
104104 count,
105105 );
106106
107− view.doc.set_selection(Selection::single(pos, pos));
107+ view.doc.set_selection(Selection::point(pos));
108108}
109109
110110pub fn move_next_word_end(view: &mut View, count: usize) {
@@ -114,11 +114,11 @@ pub fn move_next_word_end(view: &mut View, count: usize) {
114114 count,
115115 );
116116
117− view.doc.set_selection(Selection::single(pos, pos));
117+ view.doc.set_selection(Selection::point(pos));
118118}
119119
120120pub fn move_file_start(view: &mut View, _count: usize) {
121− view.doc.set_selection(Selection::single(0, 0));
121+ view.doc.set_selection(Selection::point(0));
122122
123123 view.doc.mode = Mode::Normal;
124124}
@@ -126,8 +126,7 @@ pub fn move_file_start(view: &mut View, _count: usize) {
126126pub fn move_file_end(view: &mut View, _count: usize) {
127127 let text = &view.doc.text();
128128 let last_line = text.line_to_char(text.len_lines().saturating_sub(2));
129− view.doc
130− .set_selection(Selection::single(last_line, last_line));
129+ view.doc.set_selection(Selection::point(last_line));
131130
132131 view.doc.mode = Mode::Normal;
133132}
@@ -153,7 +152,7 @@ pub fn page_up(view: &mut View, _count: usize) {
153152 if !check_cursor_in_view(view) {
154153 let text = view.doc.text();
155154 let pos = text.line_to_char(view.last_line().saturating_sub(PADDING));
156− view.doc.set_selection(Selection::single(pos, pos));
155+ view.doc.set_selection(Selection::point(pos));
157156 }
158157}
159158
@@ -163,7 +162,7 @@ pub fn page_down(view: &mut View, _count: usize) {
163162 if view.first_line < view.doc.text().len_lines() {
164163 let text = view.doc.text();
165164 let pos = text.line_to_char(view.first_line as usize);
166− view.doc.set_selection(Selection::single(pos, pos));
165+ view.doc.set_selection(Selection::point(pos));
167166 }
168167}
169168
@@ -177,7 +176,7 @@ pub fn half_page_up(view: &mut View, _count: usize) {
177176 if !check_cursor_in_view(view) {
178177 let text = &view.doc.text();
179178 let pos = text.line_to_char(view.last_line() - PADDING);
180− view.doc.set_selection(Selection::single(pos, pos));
179+ view.doc.set_selection(Selection::point(pos));
181180 }
182181}
183182
@@ -189,7 +188,7 @@ pub fn half_page_down(view: &mut View, _count: usize) {
189188 if !check_cursor_in_view(view) {
190189 let text = view.doc.text();
191190 let pos = text.line_to_char(view.first_line as usize);
192− view.doc.set_selection(Selection::single(pos, pos));
191+ view.doc.set_selection(Selection::point(pos));
193192 }
194193}
195194// avoid select by default by having a visual mode switch that makes movements into selects