summaryrefslogtreecommitdiff
path: root/support/texlab/src/syntax/latexindent.rs
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-05-28 03:03:21 +0000
committerNorbert Preining <norbert@preining.info>2020-05-28 03:03:21 +0000
commit745892fbddea56040139108277e728b53fd8fc11 (patch)
tree15e55e299b38fccdabce8364f1fbf4f02ef37994 /support/texlab/src/syntax/latexindent.rs
parent195ca7e0c377d83455867bdd8e409d4e1cf024ea (diff)
CTAN sync 202005280303
Diffstat (limited to 'support/texlab/src/syntax/latexindent.rs')
-rw-r--r--support/texlab/src/syntax/latexindent.rs21
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
+}