diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index 783e1117..c9ea4d7a 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -147,7 +147,12 @@ impl Document { Rope::from("\n") } else { let file = File::open(&path).context(format!("unable to open {:?}", path))?; - Rope::from_reader(BufReader::new(file))? + let mut doc = Rope::from_reader(BufReader::new(file))?; + // add missing newline at the end of file + if doc.byte(doc.len_bytes() - 1) != b'\n' { + doc.insert_char(doc.len_chars(), '\n'); + } + doc }; let mut doc = Self::new(doc);