diff --git a/helix-core/src/lib.rs b/helix-core/src/lib.rs
index 3f6bea5a..c02d41f8 100644
--- a/helix-core/src/lib.rs
+++ b/helix-core/src/lib.rs
@@ -111,6 +111,7 @@ pub use diagnostic::Diagnostic;
 pub use state::State;
 
 pub use line_ending::{
-    auto_detect_line_ending, rope_slice_to_line_ending, LineEnding, DEFAULT_LINE_ENDING, get_line_ending
+    auto_detect_line_ending, get_line_ending, rope_slice_to_line_ending, LineEnding,
+    DEFAULT_LINE_ENDING,
 };
 pub use transaction::{Assoc, Change, ChangeSet, Operation, Transaction};
diff --git a/helix-core/src/line_ending.rs b/helix-core/src/line_ending.rs
index 423f4b92..2cc5b5d8 100644
--- a/helix-core/src/line_ending.rs
+++ b/helix-core/src/line_ending.rs
@@ -95,12 +95,18 @@ pub fn auto_detect_line_ending(doc: &Rope) -> Option<LineEnding> {
 /// Returns the passed line's line ending, if any.
 pub fn get_line_ending(line: &RopeSlice) -> Option<LineEnding> {
     // Last character as str.
-    let g1 = line.slice(line.len_chars().saturating_sub(1)..).as_str().unwrap();
+    let g1 = line
+        .slice(line.len_chars().saturating_sub(1)..)
+        .as_str()
+        .unwrap();
 
     // Last two characters as str, or empty str if they're not contiguous.
     // It's fine to punt on the non-contiguous case, because Ropey guarantees
     // that CRLF is always contiguous.
-    let g2 = line.slice(line.len_chars().saturating_sub(2)..).as_str().unwrap_or("");
+    let g2 = line
+        .slice(line.len_chars().saturating_sub(2)..)
+        .as_str()
+        .unwrap_or("");
 
     // First check the two-character case for CRLF, then check the single-character case.
     str_to_line_ending(g2).or_else(|| str_to_line_ending(g1))
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index d894a646..463869f6 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -1,11 +1,11 @@
 use helix_core::{
-    comment, coords_at_pos, find_first_non_whitespace_char, find_root, graphemes, indent,
-    match_brackets,
+    comment, coords_at_pos, find_first_non_whitespace_char, find_root, get_line_ending, graphemes,
+    indent, match_brackets,
     movement::{self, Direction},
     object, pos_at_coords,
     regex::{self, Regex},
     register::{self, Register, Registers},
-    search, selection, Change, ChangeSet, LineEnding, Position, Range, Rope, RopeSlice, Selection, get_line_ending,
+    search, selection, Change, ChangeSet, LineEnding, Position, Range, Rope, RopeSlice, Selection,
     SmallVec, Tendril, Transaction,
 };
 
@@ -183,9 +183,11 @@ pub fn move_line_end(cx: &mut Context) {
         let text = doc.text();
         let line = text.char_to_line(range.head);
 
-        let pos = text
-            .line_to_char(line + 1)
-            .saturating_sub(get_line_ending(&text.line(line)).map(|le| le.len_chars()).unwrap_or(0));
+        let pos = text.line_to_char(line + 1).saturating_sub(
+            get_line_ending(&text.line(line))
+                .map(|le| le.len_chars())
+                .unwrap_or(0),
+        );
 
         Range::new(pos, pos)
     });
@@ -606,9 +608,11 @@ pub fn extend_line_end(cx: &mut Context) {
         let text = doc.text();
         let line = text.char_to_line(range.head);
 
-        let pos = text
-            .line_to_char(line + 1)
-            .saturating_sub(get_line_ending(&text.line(line)).map(|le| le.len_chars()).unwrap_or(0));
+        let pos = text.line_to_char(line + 1).saturating_sub(
+            get_line_ending(&text.line(line))
+                .map(|le| le.len_chars())
+                .unwrap_or(0),
+        );
 
         Range::new(range.anchor, pos)
     });