diff --git a/src/rules/lambda.rs b/src/rules/lambda.rs index cf6a48d..15d3366 100644 --- a/src/rules/lambda.rs +++ b/src/rules/lambda.rs @@ -65,23 +65,7 @@ pub fn rule( let child = children.get_next().unwrap(); match layout { crate::config::Layout::Tall => { - if is_pattern_type - || comment - || (matches!( - child.element.kind(), - rnix::SyntaxKind::NODE_LAMBDA - ) && matches!( - child - .element - .clone() - .into_node() - .unwrap() - .children() - .next() - .unwrap() - .kind(), - rnix::SyntaxKind::NODE_PATTERN - )) + if comment || !matches!( child.element.kind(), rnix::SyntaxKind::NODE_ATTR_SET diff --git a/tests/cases/lambda/in b/tests/cases/lambda/in index 79d78f6..3711558 100644 --- a/tests/cases/lambda/in +++ b/tests/cases/lambda/in @@ -16,4 +16,21 @@ { }: a: b: c: a) + + ({pkgs, ...}: { + # Stuff + }) + + ({pkgs, ...}: let + in pkgs) + + (a: {b, + ...}: c: { + # Stuff + }) + + (a: {b, c, + ...}: d: { + # Stuff + }) ] diff --git a/tests/cases/lambda/out b/tests/cases/lambda/out index 696fe53..5849279 100644 --- a/tests/cases/lambda/out +++ b/tests/cases/lambda/out @@ -4,18 +4,16 @@ c */ d) - ({}: - b: - /* - c - */ - d) - (a: - {}: - /* - c - */ - d) + ({}: b: + /* + c + */ + d) + (a: {}: + /* + c + */ + d) (a: d) (a: /* @@ -48,8 +46,26 @@ locationsXml, }: null) - (a: b: c: - {}: - a: b: c: - a) + (a: b: c: {}: a: b: c: + a) + + ({pkgs, ...}: { + # Stuff + }) + + ({pkgs, ...}: let + in + pkgs) + + (a: {b, ...}: c: { + # Stuff + }) + + (a: { + b, + c, + ... + }: d: { + # Stuff + }) ]