From 4186e961999d298eb70dbdbcacbe7e4138f8b88b Mon Sep 17 00:00:00 2001 From: Mohammad Sulaiman Date: Sun, 8 Dec 2024 14:59:52 +0200 Subject: [PATCH 1/4] Support configuring the indent_width for markdown files --- src/configuration/builder.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/configuration/builder.rs b/src/configuration/builder.rs index 81b0275..c84cbcb 100644 --- a/src/configuration/builder.rs +++ b/src/configuration/builder.rs @@ -49,6 +49,10 @@ impl ConfigurationBuilder { self.insert("lineWidth", (value as i32).into()) } + pub fn indent_width(&mut self, value: u32) -> &mut Self { + self.insert("indentWidth", (value as i32).into()) + } + /// The kind of newline to use. /// Default: `NewLineKind::LineFeed` pub fn new_line_kind(&mut self, value: NewLineKind) -> &mut Self { From 35b4207c20510dc03a4164011ebc924ced6189cf Mon Sep 17 00:00:00 2001 From: Mohammad Sulaiman Date: Mon, 9 Dec 2024 10:47:55 +0200 Subject: [PATCH 2/4] Add the indent width to the configuration struct --- src/configuration/types.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/configuration/types.rs b/src/configuration/types.rs index 76d1afe..8a64be1 100644 --- a/src/configuration/types.rs +++ b/src/configuration/types.rs @@ -8,6 +8,7 @@ use serde::Serialize; #[serde(rename_all = "camelCase")] pub struct Configuration { pub line_width: u32, + pub indent_width: u32, pub new_line_kind: NewLineKind, pub text_wrap: TextWrap, pub emphasis_kind: EmphasisKind, From 66a9f4b19c00b76475852a582e086789c8e73ae7 Mon Sep 17 00:00:00 2001 From: Mohammad Sulaiman Date: Tue, 10 Dec 2024 16:15:45 +0200 Subject: [PATCH 3/4] Configure the value of indent_width, and add assert statements to check if it is working as expected --- src/configuration/builder.rs | 3 +++ src/configuration/resolve_config.rs | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/configuration/builder.rs b/src/configuration/builder.rs index c84cbcb..512f874 100644 --- a/src/configuration/builder.rs +++ b/src/configuration/builder.rs @@ -140,6 +140,7 @@ mod tests { config .new_line_kind(NewLineKind::CarriageReturnLineFeed) .line_width(90) + .indent_width(2) .text_wrap(TextWrap::Always) .emphasis_kind(EmphasisKind::Asterisks) .strong_kind(StrongKind::Underscores) @@ -165,6 +166,7 @@ mod tests { let mut config_builder = ConfigurationBuilder::new(); let config = config_builder.global_config(global_config).build(); assert_eq!(config.line_width, 90); + assert_eq!(config.indent_width, 2); assert_eq!(config.new_line_kind == NewLineKind::CarriageReturnLineFeed, true); } @@ -174,6 +176,7 @@ mod tests { let mut config_builder = ConfigurationBuilder::new(); let config = config_builder.global_config(global_config).build(); assert_eq!(config.line_width, 80); // this is different + assert_eq!(config.indent_width, 2); assert_eq!(config.new_line_kind == NewLineKind::LineFeed, true); } } diff --git a/src/configuration/resolve_config.rs b/src/configuration/resolve_config.rs index 6d7fd79..241d058 100644 --- a/src/configuration/resolve_config.rs +++ b/src/configuration/resolve_config.rs @@ -43,6 +43,12 @@ pub fn resolve_config( global_config.line_width.unwrap_or(80), &mut diagnostics, ), + indent_width: get_value( + &mut config, + "indentWidth", + global_config.indent_width.unwrap_or(2).into(), + &mut diagnostics, + ), new_line_kind: get_value( &mut config, "newLineKind", From a406fd9f5da66f75075375ffabd510f858924fbe Mon Sep 17 00:00:00 2001 From: Mohammad Sulaiman Date: Tue, 10 Dec 2024 16:33:18 +0200 Subject: [PATCH 4/4] modify the number of configurations value --- src/configuration/builder.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configuration/builder.rs b/src/configuration/builder.rs index 512f874..f0e5ad6 100644 --- a/src/configuration/builder.rs +++ b/src/configuration/builder.rs @@ -151,7 +151,7 @@ mod tests { .ignore_end_directive("test"); let inner_config = config.get_inner_config(); - assert_eq!(inner_config.len(), 10); + assert_eq!(inner_config.len(), 11); let diagnostics = resolve_config(inner_config, &Default::default()).diagnostics; assert_eq!(diagnostics.len(), 0); }