From 219d2c25156a496ed2923d4cef256352bb1302e5 Mon Sep 17 00:00:00 2001 From: PiergiorgioZagaria Date: Thu, 4 Aug 2022 06:01:48 +0200 Subject: Change default formatter for any language (#2942) * Change default formatter for any language * Fix clippy error * Close stdin for Stdio formatters * Better indentation and pattern matching * Return Result> for fn format instead of Option * Remove unwrap for stdin * Handle FormatterErrors instead of Result> * Use Transaction instead of LspFormatting * Use Transaction directly in Document::format * Perform stdin type formatting asynchronously * Rename formatter.type values to kebab-case * Debug format for displaying io::ErrorKind (msrv fix) * Solve conflict? * Use only stdio type formatters * Remove FormatterType enum * Remove old comment * Check if the formatter exited correctly * Add formatter configuration to the book * Avoid allocations when writing to stdin and formatting errors * Remove unused import Co-authored-by: Gokul Soumya --- helix-core/src/syntax.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'helix-core/src') diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index 79570faa..4188d148 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -79,6 +79,9 @@ pub struct LanguageConfiguration { #[serde(default)] pub auto_format: bool, + #[serde(skip_serializing_if = "Option::is_none")] + pub formatter: Option, + #[serde(default)] pub diagnostic_severity: Severity, @@ -126,6 +129,15 @@ pub struct LanguageServerConfiguration { pub language_id: Option, } +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "kebab-case")] +pub struct FormatterConfiguration { + pub command: String, + #[serde(default)] + #[serde(skip_serializing_if = "Vec::is_empty")] + pub args: Vec, +} + #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)] #[serde(rename_all = "kebab-case")] pub struct AdvancedCompletion { -- cgit v1.2.3-70-g09d2