diff options
author | Nathan Vegdahl | 2021-07-17 17:49:03 +0000 |
---|---|---|
committer | Nathan Vegdahl | 2021-07-17 17:49:03 +0000 |
commit | a77274e8bb33ff08f5411ec4df168b576c0c8fa5 (patch) | |
tree | 1a1c3735e1f9ea46e87f7fe60b1f81fdb2e5df5b /helix-view/src/document.rs | |
parent | b4c59b444cc4963f95a95fe10f166e58ef857288 (diff) | |
parent | 6cba62b49917fde7c5876a1cce9d3883c6bef6c9 (diff) |
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
Diffstat (limited to 'helix-view/src/document.rs')
-rw-r--r-- | helix-view/src/document.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index b917b902..a04af94d 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -456,14 +456,16 @@ impl Document { theme: Option<&Theme>, config_loader: Option<&syntax::Loader>, ) -> Result<Self, Error> { - if !path.exists() { - return Ok(Self::default()); - } + let (mut rope, encoding) = if path.exists() { + let mut file = + std::fs::File::open(&path).context(format!("unable to open {:?}", path))?; + from_reader(&mut file, encoding)? + } else { + let encoding = encoding.unwrap_or(encoding_rs::UTF_8); + (Rope::from(DEFAULT_LINE_ENDING.as_str()), encoding) + }; - let mut file = std::fs::File::open(&path).context(format!("unable to open {:?}", path))?; - let (mut rope, encoding) = from_reader(&mut file, encoding)?; let line_ending = with_line_ending(&mut rope); - let mut doc = Self::from(rope, Some(encoding)); // set the path and try detecting the language |