From 7d005b122a2329f3cc8aa34d90ce93ec6a76c2d5 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Thu, 9 May 2024 09:45:28 -0600 Subject: [PATCH] vim: Fix e/E with inlay hints Co-Authored-By: Sergey Fixes: #7046 --- crates/editor/src/display_map.rs | 4 ++++ crates/vim/src/motion.rs | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/editor/src/display_map.rs b/crates/editor/src/display_map.rs index efae6a030d1d..5f989bed581d 100644 --- a/crates/editor/src/display_map.rs +++ b/crates/editor/src/display_map.rs @@ -721,6 +721,10 @@ impl DisplaySnapshot { DisplayPoint(clipped) } + pub fn clip_ignoring_line_ends(&self, point: DisplayPoint, bias: Bias) -> DisplayPoint { + DisplayPoint(self.block_snapshot.clip_point(point.0, bias)) + } + pub fn clip_at_line_end(&self, point: DisplayPoint) -> DisplayPoint { let mut point = point.0; if point.column == self.line_len(point.row) { diff --git a/crates/vim/src/motion.rs b/crates/vim/src/motion.rs index 2c50f52f5a35..3ae99e9ba4a2 100644 --- a/crates/vim/src/motion.rs +++ b/crates/vim/src/motion.rs @@ -1094,7 +1094,7 @@ pub(crate) fn next_char( *new_point.row_mut() += 1; *new_point.column_mut() = 0; } - new_point + map.clip_ignoring_line_ends(new_point, Bias::Right) } pub(crate) fn next_word_start(