diff options
author | Norbert Preining <norbert@preining.info> | 2020-05-28 03:03:21 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-05-28 03:03:21 +0000 |
commit | 745892fbddea56040139108277e728b53fd8fc11 (patch) | |
tree | 15e55e299b38fccdabce8364f1fbf4f02ef37994 /support/texlab/src/syntax/latexindent.rs | |
parent | 195ca7e0c377d83455867bdd8e409d4e1cf024ea (diff) |
CTAN sync 202005280303
Diffstat (limited to 'support/texlab/src/syntax/latexindent.rs')
-rw-r--r-- | support/texlab/src/syntax/latexindent.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/support/texlab/src/syntax/latexindent.rs b/support/texlab/src/syntax/latexindent.rs new file mode 100644 index 0000000000..c45c95d4e5 --- /dev/null +++ b/support/texlab/src/syntax/latexindent.rs @@ -0,0 +1,21 @@ +use std::{io, process::Stdio}; +use tempfile::tempdir; +use tokio::{fs, process::Command}; + +pub async fn format(text: &str, extension: &str) -> io::Result<String> { + let dir = tempdir()?; + let input = format!("input.{}", extension); + let output = format!("output.{}", extension); + fs::write(dir.path().join(&input), text).await?; + + Command::new("latexindent") + .args(&["-o", &output, &input]) + .current_dir(dir.path()) + .stdin(Stdio::null()) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .spawn()? + .await?; + + fs::read_to_string(dir.path().join(&output)).await +} |