1
Fork 0
mirror of https://github.com/RGBCube/alejandra synced 2025-07-31 12:37:45 +00:00

feat: lisp-like parens

This commit is contained in:
Kevin Amado 2022-02-17 13:16:03 -05:00
parent e5e42a325b
commit 9c27dfac78
No known key found for this signature in database
GPG key ID: FFF341057F503148
13 changed files with 1566 additions and 1883 deletions

View file

@ -8,7 +8,10 @@ pub fn rule(
build_ctx, node, true,
);
let layout = if children.has_comments() || children.has_newlines() {
let has_comments_or_newlines =
children.has_comments() || children.has_newlines();
let layout = if has_comments_or_newlines {
&crate::config::Layout::Tall
} else {
build_ctx.config.layout()
@ -19,7 +22,9 @@ pub fn rule(
steps.push_back(crate::builder::Step::Format(child.element));
match layout {
crate::config::Layout::Tall => {
steps.push_back(crate::builder::Step::Indent);
if has_comments_or_newlines {
steps.push_back(crate::builder::Step::Indent);
}
}
crate::config::Layout::Wide => {}
}
@ -38,8 +43,10 @@ pub fn rule(
let child = children.get_next().unwrap();
match layout {
crate::config::Layout::Tall => {
steps.push_back(crate::builder::Step::NewLine);
steps.push_back(crate::builder::Step::Pad);
if has_comments_or_newlines {
steps.push_back(crate::builder::Step::NewLine);
steps.push_back(crate::builder::Step::Pad);
}
steps.push_back(crate::builder::Step::FormatWider(child.element));
}
crate::config::Layout::Wide => {
@ -61,9 +68,11 @@ pub fn rule(
let child = children.get_next().unwrap();
match layout {
crate::config::Layout::Tall => {
steps.push_back(crate::builder::Step::Dedent);
steps.push_back(crate::builder::Step::NewLine);
steps.push_back(crate::builder::Step::Pad);
if has_comments_or_newlines {
steps.push_back(crate::builder::Step::Dedent);
steps.push_back(crate::builder::Step::NewLine);
steps.push_back(crate::builder::Step::Pad);
}
}
crate::config::Layout::Wide => {}
}

View file

@ -1,12 +1,10 @@
(a b)
(a b)
(
a
/*
b
*/
c
)
(a
/*
b
*/
c)
(
/*
a

View file

@ -1,30 +1,24 @@
[
(assert b; c)
(
assert b;
/*
b
*/
c
)
(
assert
/*
a
*/
b; c
)
(
assert
/*
a
*/
b;
/*
b
*/
c
)
(assert b;
/*
b
*/
c)
(assert
/*
a
*/
b; c)
(assert
/*
a
*/
b;
/*
b
*/
c)
(assert b; cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)
(assert b; cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)
]

View file

@ -1,63 +1,49 @@
[
(1 + 1)
(
1
+
/**/
1
)
(
1
/**/
+ 1
)
(
1
/**/
+
/**/
1
)
(
1
/**/
+
/**/
(
1
/**/
+
/**/
(
1
/**/
+
/**/
1
)
)
)
(1
+
/**/
1)
(1
/**/
+ 1)
(1
/**/
+
/**/
1)
(1
/**/
+
/**/
(1
/**/
+
/**/
(1
/**/
+
/**/
1)))
(1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1)
(
1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
)
(1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1)
]

View file

@ -81,30 +81,26 @@
#7
}
(
let
# 1
#2
a = 1; # 3
b = 1;
c = 1; # 4
#5
(let
# 1
#2
a = 1; # 3
b = 1;
c = 1; # 4
#5
#6
#6
d = 1;
#7
in
d
)
d = 1;
#7
in
d)
(
{
a,
# comment
b ? 2,
# comment
}:
_
)
({
a,
# comment
b ? 2,
# comment
}:
_)
]

View file

@ -1,248 +1,160 @@
[
(
if ./a
(if ./a
then b
else c)
(if
/**/
a
/**/
then
/**/
b
/**/
else
/**/
c)
(if
if a
then b
else c
)
(
if
/**/
a
/**/
then
/**/
b
/**/
else
/**/
c
)
(
if
if a
then b
else c
then b
else if a
then b
else if a
then b
else if a
then b
else if a
then b
else c)
(if
if a
then b
else c
)
(
if
if a
then b
else c
then b
else if a
then b
else
/*
x
*/
if a
then b
else if a
then b
else
/*
x
*/
if a
then b
else c
)
(
if
(
if
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
then
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
else
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
)
else c)
(if
(if
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c))
then
(
if
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
then
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
else
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
)
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c))
else
(
if
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
then
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
else
(
if
(
if a
then b
else c
)
then
(
if a
then b
else c
)
else
(
if a
then b
else c
)
)
)
)
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c)))
then
(if
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c))
then
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c))
else
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c)))
else
(if
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c))
then
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c))
else
(if
(if a
then b
else c)
then
(if a
then b
else c)
else
(if a
then b
else c))))
]

View file

@ -1,71 +1,55 @@
[
(
a: b:
(a: b:
/*
c
*/
d)
({}:
b:
/*
c
*/
d
)
(
d)
(a:
{}:
b:
/*
c
*/
d
)
(
a:
{}:
/*
c
*/
d
)
/*
c
*/
d)
(a: d)
(
a:
/*
c
*/
d
)
(
a
/*
b
*/
:
d
)
(
a
/*
b
*/
:
/*
c
*/
d
)
(a:
/*
c
*/
d)
(a
/*
b
*/
:
d)
(a
/*
b
*/
:
/*
c
*/
d)
(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
)
(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
)
(
{
pkgs ? import ./.. {},
locationsXml,
}:
null
)
(
a: b: c:
{}:
a: b: c:
a
)
({
pkgs ? import ./.. {},
locationsXml,
}:
null)
(a: b: c:
{}:
a: b: c:
a)
]

View file

@ -1,67 +1,47 @@
[
(a or a)
(
a
or
/**/
a
)
(
a
/**/
or a
)
(
a
/**/
or
/**/
a
)
(
a
/**/
or
/**/
(
a
/**/
or
/**/
(
a
/**/
or
/**/
a
)
)
)
(
a
/**/
or
/**/
(
a
/**/
or
/**/
(
a
/**/
or
/**/
a
)
)
)
(a
or
/**/
a)
(a
/**/
or a)
(a
/**/
or
/**/
a)
(a
/**/
or
/**/
(a
/**/
or
/**/
(a
/**/
or
/**/
a)))
(a
/**/
or
/**/
(a
/**/
or
/**/
(a
/**/
or
/**/
a)))
(a or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a)
(
a
or a
or a
or a
or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a
)
(a
or a
or a
or a
or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a or a)
]

View file

@ -6,14 +6,12 @@
e
*/
)
(
(
c
/*
d
*/
)
)
((
c
/*
d
*/
))
(
(
c
@ -25,14 +23,12 @@
e
*/
)
(
(
/*
b
*/
c
)
)
((
/*
b
*/
c
))
(
(
/*
@ -44,17 +40,15 @@
e
*/
)
(
(
/*
b
*/
c
/*
d
*/
)
)
((
/*
b
*/
c
/*
d
*/
))
(
(
/*

View file

@ -1,45 +1,33 @@
[
({} @ a: _)
(
{} @
/**/
a:
_
)
(
{}
/**/
@ a:
_
)
(
{}
/**/
@
/**/
a:
_
)
({} @
/**/
a:
_)
({}
/**/
@ a:
_)
({}
/**/
@
/**/
a:
_)
(a @ {}: _)
(
a @
/**/
{}:
_
)
(
a
/**/
@ {}:
_
)
(
a
/**/
@
/**/
{}:
_
)
(a @
/**/
{}:
_)
(a
/**/
@ {}:
_)
(a
/**/
@
/**/
{}:
_)
]

File diff suppressed because it is too large Load diff

View file

@ -1,63 +1,55 @@
[
(a.a)
(
a
.
/**/
a
)
(
a
/**/
.a
)
(
a
/**/
.
/**/
a
)
(a
.
/**/
a)
(a
/**/
.a)
(a
/**/
.
/**/
a)
(a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a)
(
a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
)
(a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a
.a)
]

View file

@ -1,30 +1,24 @@
[
(with b; c)
(
with b;
/*
b
*/
c
)
(
with
/*
a
*/
b; c
)
(
with
/*
a
*/
b;
/*
b
*/
c
)
(with b;
/*
b
*/
c)
(with
/*
a
*/
b; c)
(with
/*
a
*/
b;
/*
b
*/
c)
(with b; cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)
(with b; cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)
{ a = with b; 1; }
@ -47,25 +41,21 @@
# comment
}
(with a; with b; with c; { a = 1; })
(
with a;
with b;
with c; {
a = 1;
b = 2;
}
)
(
with a;
/*
comment
*/
with b;
with c; {
a = 1;
b = 2;
}
)
(with a;
with b;
with c; {
a = 1;
b = 2;
})
(with a;
/*
comment
*/
with b;
with c; {
a = 1;
b = 2;
})
{
a = with b; with b; with b; 1;
}