Merge pull request #266 from zed-industries/fix-go-to-line

Use display coordinates for the highlighted row in "go to line"
This commit is contained in:
Antonio Scandurra 2021-11-30 11:55:00 +01:00 committed by GitHub
commit fcbd7f9a5a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,5 @@
use buffer::{Bias, Point, Selection};
use editor::{Autoscroll, Editor, EditorSettings};
use editor::{display_map::ToDisplayPoint, Autoscroll, Editor, EditorSettings};
use gpui::{
action, elements::*, geometry::vector::Vector2F, keymap::Binding, Axis, Entity,
MutableAppContext, RenderContext, View, ViewContext, ViewHandle,
@ -138,10 +138,11 @@ impl GoToLine {
)
}) {
self.line_selection = self.active_editor.update(cx, |active_editor, cx| {
let buffer = active_editor.buffer().read(cx);
let point = buffer.clip_point(point, Bias::Left);
let snapshot = active_editor.snapshot(cx).display_snapshot;
let point = snapshot.buffer_snapshot.clip_point(point, Bias::Left);
let display_point = point.to_display_point(&snapshot);
active_editor.select_ranges([point..point], Some(Autoscroll::Center), cx);
active_editor.set_highlighted_row(Some(point.row));
active_editor.set_highlighted_row(Some(display_point.row()));
Some(active_editor.newest_selection(cx))
});
cx.notify();