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

feat: implement inherit from

This commit is contained in:
Kevin Amado 2022-01-29 18:40:31 -05:00
parent 5ffcf04579
commit 870af566c7
No known key found for this signature in database
GPG key ID: FFF341057F503148
2 changed files with 76 additions and 49 deletions

View file

@ -165,29 +165,45 @@ fn format(
builder.start_node(rowan::SyntaxKind(kind as u16));
let rule = match kind {
// a b
rnix::SyntaxKind::NODE_APPLY => crate::rules::apply::rule,
// assert a; b
rnix::SyntaxKind::NODE_ASSERT => crate::rules::assert::rule,
// { }
rnix::SyntaxKind::NODE_ATTR_SET => crate::rules::attr_set::rule,
// a $op b
rnix::SyntaxKind::NODE_BIN_OP => crate::rules::bin_op::rule,
//
rnix::SyntaxKind::NODE_DYNAMIC => crate::rules::dynamic::rule,
// implementation detail of rnix-parser
rnix::SyntaxKind::NODE_ERROR => {
eprintln!("Warning: found an error node at: {}", path);
crate::rules::default
}
// $identifier
rnix::SyntaxKind::NODE_IDENT => crate::rules::default,
// if a then b else c
rnix::SyntaxKind::NODE_IF_ELSE => crate::rules::if_else::rule,
// inherit NODE_INHERIT_FROM? b+ ;
rnix::SyntaxKind::NODE_INHERIT => crate::rules::inherit::rule,
// ( a )
rnix::SyntaxKind::NODE_INHERIT_FROM => {
crate::rules::inherit::rule
crate::rules::paren::rule
}
rnix::SyntaxKind::NODE_KEY => crate::rules::default,
// a = b;
rnix::SyntaxKind::NODE_KEY_VALUE => {
crate::rules::key_value::rule
}
// a: b
rnix::SyntaxKind::NODE_LAMBDA => crate::rules::lambda::rule,
// let NODE_KEY_VALUE* in b;
rnix::SyntaxKind::NODE_LET_IN => crate::rules::let_in::rule,
// [ ... ]
rnix::SyntaxKind::NODE_LIST => crate::rules::list::rule,
// $literal
rnix::SyntaxKind::NODE_LITERAL => crate::rules::default,
// let { }
rnix::SyntaxKind::NODE_LEGACY_LET => {
eprintln!(
"Warning: found a `legacy let` expression at: {}",
@ -195,25 +211,36 @@ fn format(
);
crate::rules::default
}
// a or b
rnix::SyntaxKind::NODE_OR_DEFAULT => {
crate::rules::or_default::rule
}
// ( a )
rnix::SyntaxKind::NODE_PAREN => crate::rules::paren::rule,
// a | a ? b
rnix::SyntaxKind::NODE_PAT_BIND => crate::rules::pat_bind::rule,
// { NODE_PAT_ENTRY* }
rnix::SyntaxKind::NODE_PATTERN => crate::rules::pattern::rule,
// NODE_PAT_BIND | TOKEN_ELLIPSIS
rnix::SyntaxKind::NODE_PAT_ENTRY => {
crate::rules::pat_entry::rule
}
// /path/to/${a}
rnix::SyntaxKind::NODE_PATH_WITH_INTERPOL => {
crate::rules::default
}
// implementation detail of rowan
rnix::SyntaxKind::NODE_ROOT => crate::rules::root::rule,
rnix::SyntaxKind::NODE_SELECT => crate::rules::select::rule,
// "..." || ''...''
rnix::SyntaxKind::NODE_STRING => crate::rules::string::rule,
// ${a}
rnix::SyntaxKind::NODE_STRING_INTERPOL => {
crate::rules::string_interpol::rule
}
// !a
rnix::SyntaxKind::NODE_UNARY_OP => crate::rules::default,
// with a; b
rnix::SyntaxKind::NODE_WITH => crate::rules::with::rule,
kind => {
panic!("Missing rule for {:?} at: {}", kind, path);

View file

@ -92,7 +92,7 @@
/*
d
*/
)
)
f
h
;
@ -104,7 +104,7 @@
/*
d
*/
)
)
f
h
/*
@ -119,7 +119,7 @@
/*
d
*/
)
)
f
/*
g
@ -134,7 +134,7 @@
/*
d
*/
)
)
f
/*
g
@ -152,7 +152,7 @@
/*
d
*/
)
)
/*
e
*/
@ -167,7 +167,7 @@
/*
d
*/
)
)
/*
e
*/
@ -185,7 +185,7 @@
/*
d
*/
)
)
/*
e
*/
@ -203,7 +203,7 @@
/*
d
*/
)
)
/*
e
*/
@ -224,7 +224,7 @@
b
*/
c
)
)
f
h
;
@ -236,7 +236,7 @@
b
*/
c
)
)
f
h
/*
@ -251,7 +251,7 @@
b
*/
c
)
)
f
/*
g
@ -266,7 +266,7 @@
b
*/
c
)
)
f
/*
g
@ -284,7 +284,7 @@
b
*/
c
)
)
/*
e
*/
@ -299,7 +299,7 @@
b
*/
c
)
)
/*
e
*/
@ -317,7 +317,7 @@
b
*/
c
)
)
/*
e
*/
@ -335,7 +335,7 @@
b
*/
c
)
)
/*
e
*/
@ -359,7 +359,7 @@
/*
d
*/
)
)
f
h
;
@ -374,7 +374,7 @@
/*
d
*/
)
)
f
h
/*
@ -392,7 +392,7 @@
/*
d
*/
)
)
f
/*
g
@ -410,7 +410,7 @@
/*
d
*/
)
)
f
/*
g
@ -431,7 +431,7 @@
/*
d
*/
)
)
/*
e
*/
@ -449,7 +449,7 @@
/*
d
*/
)
)
/*
e
*/
@ -470,7 +470,7 @@
/*
d
*/
)
)
/*
e
*/
@ -491,7 +491,7 @@
/*
d
*/
)
)
/*
e
*/
@ -631,7 +631,7 @@
/*
d
*/
)
)
f
h
;
@ -646,7 +646,7 @@
/*
d
*/
)
)
f
h
/*
@ -664,7 +664,7 @@
/*
d
*/
)
)
f
/*
g
@ -682,7 +682,7 @@
/*
d
*/
)
)
f
/*
g
@ -703,7 +703,7 @@
/*
d
*/
)
)
/*
e
*/
@ -721,7 +721,7 @@
/*
d
*/
)
)
/*
e
*/
@ -742,7 +742,7 @@
/*
d
*/
)
)
/*
e
*/
@ -763,7 +763,7 @@
/*
d
*/
)
)
/*
e
*/
@ -787,7 +787,7 @@
b
*/
c
)
)
f
h
;
@ -802,7 +802,7 @@
b
*/
c
)
)
f
h
/*
@ -820,7 +820,7 @@
b
*/
c
)
)
f
/*
g
@ -838,7 +838,7 @@
b
*/
c
)
)
f
/*
g
@ -859,7 +859,7 @@
b
*/
c
)
)
/*
e
*/
@ -877,7 +877,7 @@
b
*/
c
)
)
/*
e
*/
@ -898,7 +898,7 @@
b
*/
c
)
)
/*
e
*/
@ -919,7 +919,7 @@
b
*/
c
)
)
/*
e
*/
@ -946,7 +946,7 @@
/*
d
*/
)
)
f
h
;
@ -964,7 +964,7 @@
/*
d
*/
)
)
f
h
/*
@ -985,7 +985,7 @@
/*
d
*/
)
)
f
/*
g
@ -1006,7 +1006,7 @@
/*
d
*/
)
)
f
/*
g
@ -1030,7 +1030,7 @@
/*
d
*/
)
)
/*
e
*/
@ -1051,7 +1051,7 @@
/*
d
*/
)
)
/*
e
*/
@ -1075,7 +1075,7 @@
/*
d
*/
)
)
/*
e
*/
@ -1099,7 +1099,7 @@
/*
d
*/
)
)
/*
e
*/