diff --git a/crates/fs/src/fs.rs b/crates/fs/src/fs.rs index 591475bd49f19e9bab94678667481e5d453cd968..403602bb6235721a94446f493ced996392bc94c1 100644 --- a/crates/fs/src/fs.rs +++ b/crates/fs/src/fs.rs @@ -62,6 +62,7 @@ use std::ffi::OsStr; #[cfg(any(test, feature = "test-support"))] pub use fake_git_repo::{LOAD_HEAD_TEXT_TASK, LOAD_INDEX_TEXT_TASK}; +use crate::encodings::to_utf8; use crate::encodings::EncodingWrapper; use crate::encodings::from_utf8; @@ -120,6 +121,15 @@ pub trait Fs: Send + Sync { Ok(String::from_utf8(self.load_bytes(path).await?)?) } + async fn load_with_encoding( + &self, + path: &Path, + encoding: EncodingWrapper, + detect_utf16: bool, + ) -> Result { + Ok(to_utf8(self.load_bytes(path).await?, encoding, detect_utf16, None).await?) + } + async fn load_bytes(&self, path: &Path) -> Result>; async fn atomic_write(&self, path: PathBuf, text: String) -> Result<()>; async fn save(