From 09a815687ddd756fea1201add91a507d28b595d9 Mon Sep 17 00:00:00 2001 From: Mads Hougesen Date: Thu, 7 Mar 2024 14:46:10 +0100 Subject: [PATCH] feat(toml): add support for taplo (#9) --- src/formatters/mod.rs | 5 ++++- src/formatters/taplo.rs | 14 ++++++++++++++ src/languages/mod.rs | 4 +++- test/input.md | 9 +++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/formatters/taplo.rs diff --git a/src/formatters/mod.rs b/src/formatters/mod.rs index 41019c5c..a9245285 100644 --- a/src/formatters/mod.rs +++ b/src/formatters/mod.rs @@ -9,7 +9,8 @@ use crate::languages::Language; use self::{ biome::format_using_biome, nimpretty::format_using_nimpretty, ruff::format_using_ruff, - rustfmt::format_using_rustfmt, stylua::format_using_stylua, zigfmt::format_using_zigfmt, + rustfmt::format_using_rustfmt, stylua::format_using_stylua, taplo::format_using_taplo, + zigfmt::format_using_zigfmt, }; mod biome; @@ -17,6 +18,7 @@ mod nimpretty; mod ruff; mod rustfmt; mod stylua; +mod taplo; mod zigfmt; pub fn setup_snippet(code: &str, file_ext: &str) -> std::io::Result { @@ -51,6 +53,7 @@ pub fn format_snippet(language: &str, code: String) -> String { Language::Nim => format_using_nimpretty(snippet_path), Language::Python => format_using_ruff(snippet_path), Language::Rust => format_using_rustfmt(snippet_path), + Language::Toml => format_using_taplo(snippet_path), Language::TypeScript => format_using_biome(snippet_path), Language::Zig => format_using_zigfmt(snippet_path), } { diff --git a/src/formatters/taplo.rs b/src/formatters/taplo.rs new file mode 100644 index 00000000..19a2f984 --- /dev/null +++ b/src/formatters/taplo.rs @@ -0,0 +1,14 @@ +use super::{execute_command, read_snippet}; + +pub fn format_using_taplo(file_path: &std::path::Path) -> std::io::Result> { + let mut cmd = std::process::Command::new("taplo"); + + cmd.arg("fmt"); + cmd.arg(file_path); + + if execute_command(&mut cmd)? { + return read_snippet(file_path).map(Some); + } + + Ok(None) +} diff --git a/src/languages/mod.rs b/src/languages/mod.rs index c2852e3f..aee21877 100644 --- a/src/languages/mod.rs +++ b/src/languages/mod.rs @@ -5,6 +5,7 @@ pub enum Language { Nim, Python, Rust, + Toml, TypeScript, Zig, } @@ -18,9 +19,9 @@ impl Language { "nim" => Some(Self::Nim), "python" => Some(Self::Python), "rust" => Some(Self::Rust), + "toml" => Some(Self::Toml), "ts" | "tsx" | "typescript" => Some(Self::TypeScript), "zig" => Some(Self::Zig), - _ => None, } } @@ -33,6 +34,7 @@ impl Language { Self::Nim => ".nim", Self::Python => ".py", Self::Rust => ".rs", + Self::Toml => ".toml", Self::TypeScript => ".ts", Self::Zig => ".zig", } diff --git a/test/input.md b/test/input.md index 7daf83da..8b418f06 100644 --- a/test/input.md +++ b/test/input.md @@ -92,3 +92,12 @@ function add( "b": ["1",23,null]} } ``` + +```toml + + +name = "mdsf" + author = "Mads Hougesen" + + +```