From 030f965a55e9a536e5aa39c3a90cb57ec2b6e51f Mon Sep 17 00:00:00 2001 From: Kevin Amado Date: Sun, 6 Feb 2022 17:05:50 -0500 Subject: [PATCH] feat: missing indent --- src/rules/key_value.rs | 27 +++++++++++++++++++++++++-- tests/cases/key_value/in | 2 ++ tests/cases/key_value/out | 2 ++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/rules/key_value.rs b/src/rules/key_value.rs index 58faeaf..bb008f9 100644 --- a/src/rules/key_value.rs +++ b/src/rules/key_value.rs @@ -48,13 +48,36 @@ pub fn rule( let next = children.peek_next().unwrap(); let next_kind = next.element.kind(); - if let rnix::SyntaxKind::NODE_APPLY - | rnix::SyntaxKind::NODE_ATTR_SET + if let rnix::SyntaxKind::NODE_ATTR_SET | rnix::SyntaxKind::NODE_LIST | rnix::SyntaxKind::NODE_PAREN | rnix::SyntaxKind::NODE_STRING = next_kind { steps.push_back(crate::builder::Step::Whitespace); + } else if let rnix::SyntaxKind::NODE_APPLY = next_kind { + if let rnix::SyntaxKind::NODE_ATTR_SET + | rnix::SyntaxKind::NODE_LIST + | rnix::SyntaxKind::NODE_PAREN + | rnix::SyntaxKind::NODE_STRING = next + .element + .clone() + .into_node() + .unwrap() + .children() + .collect::>() + .iter() + .rev() + .next() + .unwrap() + .kind() + { + steps.push_back(crate::builder::Step::Whitespace); + } else { + dedent = true; + steps.push_back(crate::builder::Step::Indent); + steps.push_back(crate::builder::Step::NewLine); + steps.push_back(crate::builder::Step::Pad); + } } else if let rnix::SyntaxKind::NODE_LAMBDA = next_kind { if let rnix::SyntaxKind::NODE_PATTERN = next .element diff --git a/tests/cases/key_value/in b/tests/cases/key_value/in index 3e86946..61911b9 100644 --- a/tests/cases/key_value/in +++ b/tests/cases/key_value/in @@ -15,4 +15,6 @@ o = { pkgs , ... }: { }; + p = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa { } + a; } diff --git a/tests/cases/key_value/out b/tests/cases/key_value/out index 101dfb6..cdabc02 100644 --- a/tests/cases/key_value/out +++ b/tests/cases/key_value/out @@ -96,4 +96,6 @@ , ... }: { }; + p = + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa { } a; }