Fix character selection

Conrad Irwin created

Change summary

crates/editor/src/movement.rs | 6 ++++--
crates/language/src/buffer.rs | 2 +-
crates/vim/src/test.rs        | 5 ++---
3 files changed, 7 insertions(+), 6 deletions(-)

Detailed changes

crates/editor/src/movement.rs 🔗

@@ -707,7 +707,9 @@ mod tests {
             let (snapshot, display_points) = marked_display_snapshot(marked_text, cx);
             assert_eq!(
                 surrounding_word(&snapshot, display_points[1]),
-                display_points[0]..display_points[2]
+                display_points[0]..display_points[2],
+                "{}",
+                marked_text.to_string()
             );
         }
 
@@ -717,7 +719,7 @@ mod tests {
         assert("loremˇ ˇ  ˇipsum", cx);
         assert("lorem\nˇˇˇ\nipsum", cx);
         assert("lorem\nˇˇipsumˇ", cx);
-        assert("lorem,ˇˇ ˇipsum", cx);
+        assert("loremˇ,ˇˇ ipsum", cx);
         assert("ˇloremˇˇ, ipsum", cx);
     }
 

crates/language/src/buffer.rs 🔗

@@ -373,8 +373,8 @@ pub(crate) struct DiagnosticEndpoint {
 
 #[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord, Debug)]
 pub enum CharKind {
-    Punctuation,
     Whitespace,
+    Punctuation,
     Word,
 }
 

crates/vim/src/test.rs 🔗

@@ -748,11 +748,10 @@ async fn test_select_all_issue_2170(cx: &mut gpui::TestAppContext) {
         Mode::Normal,
     );
     cx.simulate_keystrokes(["g", "a"]);
-    // TODO: this would be better if it selected the [ not the space.
     cx.assert_state(
         indoc! {"
-        defmodule« ˇ»Test« ˇ»do
-        «    ˇ»def« ˇ»test(a,« ˇ»[_,« ˇ»_]« ˇ»=« ˇ»b),« ˇ»do:« ˇ»IO.puts('hi')
+        defmodule Test do
+            def test(a, «[ˇ»_, _] = b), do: IO.puts('hi')
         end
     "},
         Mode::Visual,