Skip to content

Commit

Permalink
edit prediction: Fix jump cursor position when scrolled (#24230)
Browse files Browse the repository at this point in the history
We were looking up line layouts without subtracting start row so we
would get the wrong one when scrolled

Release Notes:

- N/A
  • Loading branch information
agu-z authored Feb 4, 2025
1 parent b02baea commit b13498a
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
9 changes: 7 additions & 2 deletions crates/editor/src/editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5421,6 +5421,7 @@ impl Editor {
min_width: Pixels,
max_width: Pixels,
cursor_point: Point,
start_row: DisplayRow,
line_layouts: &[LineWithInvisibles],
style: &EditorStyle,
accept_keystroke: &gpui::Keystroke,
Expand Down Expand Up @@ -5473,6 +5474,7 @@ impl Editor {
Some(completion) => self.render_edit_prediction_cursor_popover_preview(
completion,
cursor_point,
start_row,
line_layouts,
style,
cx,
Expand All @@ -5482,6 +5484,7 @@ impl Editor {
Some(stale_completion) => self.render_edit_prediction_cursor_popover_preview(
stale_completion,
cursor_point,
start_row,
line_layouts,
style,
cx,
Expand Down Expand Up @@ -5568,6 +5571,7 @@ impl Editor {
&self,
completion: &InlineCompletionState,
cursor_point: Point,
start_row: DisplayRow,
line_layouts: &[LineWithInvisibles],
style: &EditorStyle,
cx: &mut Context<Editor>,
Expand Down Expand Up @@ -5675,8 +5679,9 @@ impl Editor {
let end_point = range_around_target.end.to_point(&snapshot);
let target_point = target.text_anchor.to_point(&snapshot);

let cursor_relative_position =
line_layouts.get(start_point.row as usize).map(|line| {
let cursor_relative_position = line_layouts
.get(start_point.row.saturating_sub(start_row.0) as usize)
.map(|line| {
let start_column_x = line.x_for_index(start_point.column as usize);
let target_column_x = line.x_for_index(target_point.column as usize);
target_column_x - start_column_x
Expand Down
1 change: 1 addition & 0 deletions crates/editor/src/element.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3285,6 +3285,7 @@ impl EditorElement {
min_width,
max_width,
cursor_point,
start_row,
&line_layouts,
style,
accept_keystroke.as_ref()?,
Expand Down

0 comments on commit b13498a

Please sign in to comment.