Skip to content

Commit

Permalink
move non-softwrap logic to seperate function, call this in nvim-scrol…
Browse files Browse the repository at this point in the history
…l fn
  • Loading branch information
AlexanderDickie committed Aug 21, 2023
1 parent 1fe59ea commit e490572
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
23 changes: 23 additions & 0 deletions helix-core/src/movement.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,28 @@ pub fn move_vertically_visual(
if !text_fmt.soft_wrap {
return move_vertically(slice, range, dir, count, behaviour, text_fmt, annotations);
}
annotations.clear_line_annotations();

return _move_vertically_visual(
slice,
range,
dir,
count,
behaviour,
text_fmt,
annotations,
);
}

pub fn _move_vertically_visual(
slice: RopeSlice,
range: Range,
dir: Direction,
count: usize,
behaviour: Movement,
text_fmt: &TextFormat,
annotations: &mut TextAnnotations
) -> Range {
let pos = range.cursor(slice);

// Compute the current position's 2d coordinates.
Expand Down Expand Up @@ -111,6 +133,7 @@ pub fn move_vertically(
text_fmt: &TextFormat,
annotations: &mut TextAnnotations,
) -> Range {
annotations.clear_line_annotations();
let pos = range.cursor(slice);
let line_idx = slice.char_to_line(pos);
let line_start = slice.line_to_char(line_idx);
Expand Down
5 changes: 2 additions & 3 deletions helix-term/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ use helix_core::{
indent::IndentStyle,
line_ending::{get_line_ending_of_str, line_end_char_index, str_is_line_ending},
match_brackets,
movement::{self, move_vertically_visual, Direction},
movement::{self, move_vertically_visual, _move_vertically_visual, Direction},
object, pos_at_coords,
regex::{self, Regex, RegexBuilder},
search::{self, CharMatcher},
Expand Down Expand Up @@ -599,7 +599,6 @@ fn move_impl(cx: &mut Context, move_fn: MoveFn, dir: Direction, behaviour: Movem
let text = doc.text().slice(..);
let text_fmt = doc.text_format(view.inner_area(doc).width, None);
let mut annotations = view.text_annotations(doc, None);
annotations.clear_line_annotations();

let selection = doc.selection(view.id).clone().transform(|range| {
move_fn(
Expand Down Expand Up @@ -1544,7 +1543,7 @@ pub fn scroll_page_and_cursor(cx: &mut Context, offset: usize, direction: Direct
}

let selection = doc.selection(view.id).clone().transform(|range| {
move_vertically_visual(
_move_vertically_visual(
doc_text,
range,
direction,
Expand Down

0 comments on commit e490572

Please sign in to comment.