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

feat: remove top level disctinction in let-in

This commit is contained in:
Kevin Amado 2022-02-17 12:05:28 -05:00
parent f8e7b233bd
commit 60e9e2cba7
No known key found for this signature in database
GPG key ID: FFF341057F503148
3 changed files with 32 additions and 17 deletions

View file

@ -7,28 +7,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
<!--
Types of changes
- Added for new features.
- Changed for changes in existing functionality.
- Deprecated for soon-to-be removed features.
- Removed for now removed features.
- Fixed for any bug fixes.
- Security in case of vulnerabilities.
-->
### Changed
- Let-in expressions are now indented in the top-level of a file.
## [0.2.0] - 2022-02-17
### Added
- A `--version` flag to the CLI.
- Pre-built binaries for x86_64-linux and aarch64-linux.
- Support for inline comments on lists, attr-sets, and let-in expressions.
### Changed
- Made the logic of the `or-default` (`a or b`) node
to be equal to the binary operator (`a $operator b`).
This increases consistency across the same family of elements.
- Remove users freedom to insert newlines
- Reduce 1 indentation level in `let-in` expressions,
when the target expression is a parenthesis, attr-set, list, or string.
- String interpolations in multi-line strings
now have a nice-looking indentation.
### Removed
- Users freedom to insert newlines
before the `?` in pattern bindings (`a ? b`).
Inserting a newline after the `?` is still possible.
This increases consistency on where to break a long pattern binding.
- Remove space on empty containers (`[]`, `{}`).
- Add a `--version` flag to the CLI.
- Reduce 1 indentation level in `let-in` expressions,
when the target expression is a parenthesis, attr-set, list, or string.
- Support inline comments on lists, attr-sets, and let-in expressions.
- String interpolations in multi-line strings
now have a nice-looking indentation.
- Space on empty containers (`[]`, `{}`).
### Fixed

View file

@ -102,7 +102,6 @@ pub fn rule(
// in
let child_in = children.get_next().unwrap();
let top_level = build_ctx.pos_new.column <= 1;
// /**/
let mut child_comments = std::collections::LinkedList::new();
@ -132,9 +131,7 @@ pub fn rule(
{
steps.push_back(crate::builder::Step::Whitespace);
} else {
if !top_level {
steps.push_back(crate::builder::Step::Indent);
}
steps.push_back(crate::builder::Step::Indent);
steps.push_back(crate::builder::Step::NewLine);
steps.push_back(crate::builder::Step::Pad);
}
@ -155,9 +152,7 @@ pub fn rule(
steps.push_back(crate::builder::Step::FormatWider(
child_expr.element,
));
if !top_level {
steps.push_back(crate::builder::Step::Dedent);
}
steps.push_back(crate::builder::Step::Dedent);
}
crate::config::Layout::Wide => {
steps.push_back(crate::builder::Step::Whitespace);

View file

@ -88,5 +88,5 @@ let
2
];
in
/**/
a
/**/
a