Releases: kamadorueda/alejandra
0.6.0
Added
-
A
--check
flag, which makes Alejandra emit an exit code of 2
if any file was changed during formatting.This means you can now use Alejandra in your CI/CD
to ensure your code complies the Alejandra style.
Fixed
-
Multiline strings are handled as utf-8 correctly, preventing panics
on utf-8 whitespace like:'' foo \u{2002}bar ''
-
All inputs and dependencies were updated to their latest version
What's Changed
- test: make input be or default by @kamadorueda in #197
- fix: use utf-8 length instead of byte length by @kamadorueda in #198
- fix: update wasm signatures by @kamadorueda in #200
- feat: exit codes as public api by @kamadorueda in #201
- feat: update dependencies and inputs by @kamadorueda in #202
Full Changelog: 0.5.0...0.6.0
0.5.0
Changed
-
Pattern matching lambdas now always have the comma after the argument:
- depthLimit + depthLimit, /* If this option is true, an error will be thrown, if a certain given depth is exceeded */ - ,
-
Pattern matching lambdas now support inline comments:
- revision ? "" - # Specify revision for the options + revision ? "", # Specify revision for the options
-
If-then-else expressions are indented only when necessary:
- then - { - crossDrv = overrideDerivation drv.crossDrv f; - nativeDrv = overrideDerivation drv.nativeDrv f; - } + then { + crossDrv = overrideDerivation drv.crossDrv f; + nativeDrv = overrideDerivation drv.nativeDrv f; + }
-
All inputs and dependencies were updated to their latest version
-
A lot of code was refactored to improve maintainability
What's Changed
- test: add bad tests cases by @kamadorueda in #178
- feat: rewrite comments in-place by @kamadorueda in #179
- feat: pattern lambdas done right by @kamadorueda in #180
- refactor: split code by @kamadorueda in #182
- perf: remove rand dependency by @kamadorueda in #183
- refactor: remove clap from engine by @kamadorueda in #184
- refactor: remove layout and config by @kamadorueda in #185
- refactor: rename functions by @kamadorueda in #186
- refactor: remove unused function by @kamadorueda in #187
- refactor: split if then else by @kamadorueda in #188
- test: increase coverage by @kamadorueda in #189
- feat: less indented if-then-else by @kamadorueda in #190
Full Changelog: 0.4.0...0.5.0
0.4.0
Added
-
A text user interface with a progress-bar
and modern, colorful output (requires a tty).When no tty is available
or in non-interactive environments like a CI/CD
or when piping alejandra to other commands ($ alejandra 2> file
,$ alejandra | cat
)
the old school program output will be used. -
A
--exclude
option to the CLI. -
Refactors to the codebase. We now comply with
clippy
, a Rust linter. -
A new structure to the codebase and link time optimizations.
Binaries were reduced in size by 15%
with respect to the previous release
(even with the added features),
performance was improved in the reference machine
from 45 seconds to 35 while formatting Nixpkgs on a single core.
Changed
-
The old school program output is now less verbose.
It prints only the path of files that were changed,
and a summary of the number of errors and files changed during formatting.
Removed
- The
--debug
flag in the CLI.
What's Changed
- feat: release 0.3.0 by @kamadorueda in #149
- feat: crosscompile more by @kamadorueda in #150
- Ignore the generated list of nixpkgs files for language stats by @tazjin in #152
- style: format cargo lock by @kamadorueda in #153
- perf: improve cache hits on code builds by @kamadorueda in #154
- feat: make musl binaries really static by @kamadorueda in #155
- feat: shaped with love by more people by @kamadorueda in #156
- perf: use gnu as native binary by @kamadorueda in #157
- feat: only cross compile static binaries by @kamadorueda in #158
- feat: pin nix-env urls by @kamadorueda in #159
- docs: update changelog by @kamadorueda in #160
- Print stats when formatting trees by @tomberek in #161
- fix: attempt to substract with overflow by @kamadorueda in #162
- Kamadorueda by @kamadorueda in #163
- feat: add a text user interface by @kamadorueda in #164
- refactor: remove noisy logging by @kamadorueda in #165
- refactor: drop --debug flag by @kamadorueda in #166
- refactor: remove commented code by @kamadorueda in #167
- feat: property handle errors by @kamadorueda in #168
- refactor: solve clippy warnings by @kamadorueda in #170
- docs: udpate stats by @kamadorueda in #171
- refactor: solve clippy warnings by @kamadorueda in #172
- refactor: organize project by @kamadorueda in #173
- test: engine only by @kamadorueda in #174
- perf: enable lto by @kamadorueda in #175
- feat: --exclude flag by @kamadorueda in #176
- feat: release 0.4.0 by @kamadorueda in #177
New Contributors
Full Changelog: 0.3.0...0.4.0
0.3.1
Added
- Prebuilt binaries for armv6l-linux, armv7l-linux, i686-linux.
Changed
- Native aarch64-linux now use GNU libc instead of musl,
this makes the binary run faster on multi-threaded hardware.
Fixed
- All prebuilt binaries are now fully statically linked.
- An attempt to subtract with overflow in some scenarios of a
let-in
expression.
What's Changed
- feat: release 0.3.0 by @kamadorueda in #149
- feat: crosscompile more by @kamadorueda in #150
- Ignore the generated list of nixpkgs files for language stats by @tazjin in #152
- style: format cargo lock by @kamadorueda in #153
- perf: improve cache hits on code builds by @kamadorueda in #154
- feat: make musl binaries really static by @kamadorueda in #155
- feat: shaped with love by more people by @kamadorueda in #156
- perf: use gnu as native binary by @kamadorueda in #157
- feat: only cross compile static binaries by @kamadorueda in #158
- feat: pin nix-env urls by @kamadorueda in #159
- docs: update changelog by @kamadorueda in #160
- Print stats when formatting trees by @tomberek in #161
- fix: attempt to substract with overflow by @kamadorueda in #162
New Contributors
Full Changelog: 0.3.0...0.3.1
0.3.0
Changed
-
Let-in expressions are now indented in the top-level of a file.
-
Patterns avoid a new line after
@
:- args @ - { + args @ {
- } - @ inp: + } @ inp:
-
Attribute sets no longer have spaces
before the first element or after the last:- { b = 1; } + {b = 1;}
-
Pattern matching lambdas no longer have spaces
before the first or after the last element:- ({ ... }: _) + ({...}: _)
-
Ellipsis is no longer count as an element when spreading pattern matching lambdas:
- { - pkgs, - ... - }: + {pkgs, ...}:
-
Pattern matching lambdas now follow the equal sign:
- fnLocationRelative = - { - name, - value, - }: + fnLocationRelative = { + name, + value, + }:
-
with
expressions now indent the new scope and follow the equal sign:- binPath = - with pkgs; + binPath = with pkgs;
-
Nested lambdas are now not indented:
# comment a: - # comment - b: - _ + # comment + b: + _
-
Brace-like elements after a pattern entry now follow the exclamation mark:
- rootPoolProperties ? - { - autoexpand = "on"; - }, + rootPoolProperties ? { + autoexpand = "on"; + },
Pull Requests
- feat: release 0.2.0 by @kamadorueda in #128
- fix: changelog release url by @kamadorueda in #129
- feat: remove top level disctinction in let-in by @kamadorueda in #131
- feat: lisp-like parens by @kamadorueda in #132
- feat: correct aarch64-darwin build by @kamadorueda in #134
- feat: inline beggining at by @kamadorueda in #136
- feat: inline end at by @kamadorueda in #137
- fix: add cargo to build env by @kamadorueda in #138
- feat: more uniform family of elements by @kamadorueda in #140
- docs: update changelog by @kamadorueda in #141
- feat: respect newlines after = by @kamadorueda in #142
- feat: continue lambda on the same line by @kamadorueda in #143
- feat: indent with by @kamadorueda in #144
- refactor: remove unused binding by @kamadorueda in #145
- feat: do not indent lambdas with comments by @kamadorueda in #146
- fix: idiom pkgs by @kamadorueda in #147
- feat: brace like after pattern entry by @kamadorueda in #148
Full Changelog: 0.2.0...0.3.0
0.2.0
Added
-
Pre-built binaries for x86_64-linux and aarch64-linux.
-
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
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.
Fixed
- A bug in the current position counter
caused a small percentage of multiline comments in Nixpkgs
to be unaligned by one character.
Pull Requests
- feat: version 0.1.0 by @kamadorueda in #101
- feat: dereferece links by @kamadorueda in #102
- feat: document prebuilt binaries by @kamadorueda in #104
- feat: document manual way by @kamadorueda in #105
- fix: relative path by @kamadorueda in #106
- feat: merge similar rules by @kamadorueda in #109
- feat: remove unnecesary newlines by @kamadorueda in #110
- feat: remove unnecessary newlines by @kamadorueda in #111
- refactor: reuse code by @kamadorueda in #112
- feat: no space in empty containers by @kamadorueda in #113
- feat: add version flag by @kamadorueda in #116
- feat: start attr set in same line by @kamadorueda in #117
- test: add same line comment cases by @kamadorueda in #118
- refactor: remove nix3 alias by @kamadorueda in #119
- feat: expose all newlines to the engine by @kamadorueda in #121
- feat: inline lists comments by @kamadorueda in #122
- feat: inline attr-set comments by @kamadorueda in #123
- feat: inline let-ins comments by @kamadorueda in #124
- fix: position update by @kamadorueda in #125
- feat: nicer string interpolation by @kamadorueda in #126
- feat: update dependencies by @kamadorueda in #127
Full Changelog: 0.1.0...0.2.0
0.1.0
What's Changed
- fix: devshell cargo version by @blaggacao in #5
- chore: add support for .direnv by @blaggacao in #6
- chore: treefmt by @blaggacao in #7
- chore: add a more ergonomic (and cleaner) devshell by @blaggacao in #8
- fixup: re-add cargo & treefmt by @blaggacao in #14
- Remove infinite recursion by @ModdedGamers in #18
- string_interp: remove surrounding whitespace for wide layout by @tomberek in #24
- string_interp: update tests and self-lint by @tomberek in #25
- lambda: keep on same line by @tomberek in #31
- Lambda attr by @tomberek in #34
- feat: add pipeline tests by @kamadorueda in #44
- feat: diff closures by @kamadorueda in #45
- feat: update readme by @kamadorueda in #46
- feat: publish coverage on main by @kamadorueda in #47
- count gt 0 to any by @tomberek in #43
- feat: add drv count by @kamadorueda in #48
- feat: update inputs by @kamadorueda in #49
- feat: compute diffs by @kamadorueda in #50
- feat: key-value without max-width by @kamadorueda in #51
- feat: apply without max-width by @kamadorueda in #52
- initial idiom cases by @tomberek in #54
- feat: indent lambda in a few scenarios only by @kamadorueda in #55
- feat: indent key-value in a few scenarios only by @kamadorueda in #56
- fix: coverage build by @kamadorueda in #57
- fix: coverage build by @kamadorueda in #58
- feat: update features by @kamadorueda in #59
- feat: write if changed by @kamadorueda in #65
- with: attempt to simplify by @tomberek in #35
- refactor: remove dead code by @kamadorueda in #67
- feat: remove unnecesary exception by @kamadorueda in #68
- feat: split job in two by @kamadorueda in #69
- static builds for x86_64-unknown-linux-musl by @tomberek in #70
- feat: cross compile as much as possible by @kamadorueda in #72
- feat: push artifacts by @kamadorueda in #73
- feat: add two new systems by @kamadorueda in #74
- fix: out link names by @kamadorueda in #75
- feat: isolate queues by @kamadorueda in #78
- feat: improve with by @kamadorueda in #80
- refactor: reuse code by @kamadorueda in #81
- feat: add extension by @kamadorueda in #82
- feat: finish extension by @kamadorueda in #83
- feat: document vscode extension by @kamadorueda in #84
- feat: add wasm site by @kamadorueda in #85
- feat: relative path and deploy script by @kamadorueda in #86
- feat: add diff viewport by @kamadorueda in #87
- feat: random file from nixpkgs by @kamadorueda in #88
- feat: generate permalinks by @kamadorueda in #89
- feat: document online demo by @kamadorueda in #90
- style: html formatter by @kamadorueda in #91
- feat: update inputs by @kamadorueda in #92
- feat: avoid extra line on multiline patterns by @kamadorueda in #97
- feat: un-unhandy commas ;) by @kamadorueda in #98
- fix: missing deploy step by @kamadorueda in #99
- feat: update installation command by @kamadorueda in #100
New Contributors
- @blaggacao made their first contribution in #5
- @ModdedGamers made their first contribution in #18
- @tomberek made their first contribution in #24
Full Changelog: 0.0.0...0.1.0
0.0.0
feat: release into the public domain