mirror of
https://github.com/RGBCube/alejandra
synced 2025-07-31 04:27:45 +00:00
feat: add a readme
This commit is contained in:
parent
1211194ba0
commit
bbfb513aa9
4 changed files with 136 additions and 12 deletions
96
README.md
Normal file
96
README.md
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<h1 align="center">Alejandra 💅</h2>
|
||||||
|
|
||||||
|
<p align="center">The Uncompromising Nix Code Formatter</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a
|
||||||
|
href="https://coveralls.io/github/kamadorueda/.github?branch=main"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt="Coverage"
|
||||||
|
src="https://coveralls.io/repos/github/kamadorueda/.github/badge.svg?branch=main"
|
||||||
|
>
|
||||||
|
</img>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://github.com/kamadorueda/alejandra/blob/main/UNLICENSE"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt="License: The Unlicense"
|
||||||
|
src="https://img.shields.io/badge/license-The Unlicense-green.svg"
|
||||||
|
>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://github.com/kamadorueda/alejandra"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt="style: Alejandra"
|
||||||
|
src="https://img.shields.io/badge/code%20style-Alejandra-green.svg"
|
||||||
|
>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Getting started
|
||||||
|
|
||||||
|
Let's get Alejandra on our systems:
|
||||||
|
|
||||||
|
- Nix with Flakes:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ nix run github:kamadorueda/alejandra -- --help
|
||||||
|
```
|
||||||
|
|
||||||
|
- Nix stable:
|
||||||
|
|
||||||
|
Pick one depending on your platform:
|
||||||
|
```bash
|
||||||
|
$ nix-env -ivA aarch64-darwin -f https://github.com/kamadorueda/alejandra/tarball/main
|
||||||
|
$ nix-env -ivA aarch64-linux -f https://github.com/kamadorueda/alejandra/tarball/main
|
||||||
|
$ nix-env -ivA i686-linux -f https://github.com/kamadorueda/alejandra/tarball/main
|
||||||
|
$ nix-env -ivA x86_64-darwin -f https://github.com/kamadorueda/alejandra/tarball/main
|
||||||
|
$ nix-env -ivA x86_64-linux -f https://github.com/kamadorueda/alejandra/tarball/main
|
||||||
|
```
|
||||||
|
|
||||||
|
Then run with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ alejandra --help
|
||||||
|
```
|
||||||
|
|
||||||
|
## Goals
|
||||||
|
|
||||||
|
- ✔️ **Fast**
|
||||||
|
|
||||||
|
It's written in rust
|
||||||
|
and formats [Nixpkgs](https://github.com/NixOS/nixpkgs)
|
||||||
|
in under 1 minute.
|
||||||
|
|
||||||
|
- ✔️ **Highly tested**
|
||||||
|
|
||||||
|
Coverage currently > 80%,
|
||||||
|
aiming to a 💯% soon.
|
||||||
|
|
||||||
|
- ✔️ **Comprehensive**
|
||||||
|
|
||||||
|
All elements in the Nix grammar have a rule,
|
||||||
|
so there won't be portions of code unformatted.
|
||||||
|
|
||||||
|
- ✔️ **Reproducible**
|
||||||
|
|
||||||
|
Formatting many times yields the same results.
|
||||||
|
|
||||||
|
- 🚧 **Beautiful**
|
||||||
|
|
||||||
|
Beauty is subjective, right?
|
||||||
|
|
||||||
|
Yet there are a few improvements to implement like:
|
||||||
|
- Multiline strings indentation `'' ... ''`.
|
||||||
|
- Multiline comments indentation `/* ... */`.
|
||||||
|
- Not indenting attr sets, lists, or parenthesis after binding `name = {`.
|
||||||
|
- And many more as community feedback drives.
|
||||||
|
|
||||||
|
Style is negotiable at this moment.
|
||||||
|
|
||||||
|
## Do I need to configure anything?
|
||||||
|
|
||||||
|
- No.
|
15
default.nix
Normal file
15
default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
let
|
||||||
|
lockData = builtins.readFile ./flake.lock;
|
||||||
|
lock = builtins.fromJSON lockData;
|
||||||
|
flakeCompat = lock.nodes.flakeCompat.locked;
|
||||||
|
flakeCompatSrc =
|
||||||
|
builtins.fetchTarball
|
||||||
|
{
|
||||||
|
url = "https://github.com/edolstra/flake-compat/archive/${ flakeCompat.rev }.tar.gz";
|
||||||
|
sha256 = flakeCompat.narHash;
|
||||||
|
};
|
||||||
|
flake = import flakeCompatSrc { src = ./.; };
|
||||||
|
in
|
||||||
|
flake
|
||||||
|
.defaultNix
|
||||||
|
.defaultPackage
|
17
flake.lock
generated
17
flake.lock
generated
|
@ -1,5 +1,21 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"flakeCompat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1641205782,
|
||||||
|
"narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flakeUtils": {
|
"flakeUtils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1642700792,
|
"lastModified": 1642700792,
|
||||||
|
@ -33,6 +49,7 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flakeCompat": "flakeCompat",
|
||||||
"flakeUtils": "flakeUtils",
|
"flakeUtils": "flakeUtils",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
|
|
20
flake.nix
20
flake.nix
|
@ -1,6 +1,8 @@
|
||||||
{
|
{
|
||||||
inputs =
|
inputs =
|
||||||
{
|
{
|
||||||
|
flakeCompat.url = github:edolstra/flake-compat;
|
||||||
|
flakeCompat.flake = false;
|
||||||
flakeUtils.url = "github:numtide/flake-utils";
|
flakeUtils.url = "github:numtide/flake-utils";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
@ -11,20 +13,15 @@
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
nixpkgs = import inputs.nixpkgs { inherit system; };
|
nixpkgs = import inputs.nixpkgs { inherit system; };
|
||||||
cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
|
cargoToml = builtins.fromTOML ( builtins.readFile ./Cargo.toml );
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
checks =
|
checks =
|
||||||
{
|
{
|
||||||
defaultPackage = inputs.self.defaultPackage.${ system };
|
defaultPackage = inputs.self.defaultPackage.${ system };
|
||||||
inherit (inputs.self.packages.${ system }) nixpkgsFormatted;
|
inherit ( inputs.self.packages.${ system } ) nixpkgsFormatted;
|
||||||
};
|
|
||||||
defaultApp =
|
|
||||||
{
|
|
||||||
type = "app";
|
|
||||||
program =
|
|
||||||
"${ inputs.self.defaultPackage.${ system } }/bin/alejandra";
|
|
||||||
};
|
};
|
||||||
|
defaultApp = { type = "app"; program = "${ inputs.self.defaultPackage.${ system } }/bin/alejandra"; };
|
||||||
defaultPackage =
|
defaultPackage =
|
||||||
nixpkgs.rustPlatform.buildRustPackage
|
nixpkgs.rustPlatform.buildRustPackage
|
||||||
{
|
{
|
||||||
|
@ -35,9 +32,9 @@
|
||||||
NIX_BUILD_CORES = 0;
|
NIX_BUILD_CORES = 0;
|
||||||
meta =
|
meta =
|
||||||
{
|
{
|
||||||
description = inputs.self.description;
|
description = cargoToml.package.description;
|
||||||
homepage = "https://github.com/kamadorueda/alejandra";
|
homepage = "https://github.com/kamadorueda/alejandra";
|
||||||
license = nixpkgs.lib.licenses.mit;
|
license = nixpkgs.lib.licenses.unlicense;
|
||||||
maintainers = [ nixpkgs.lib.maintainers.kamadorueda ];
|
maintainers = [ nixpkgs.lib.maintainers.kamadorueda ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -69,8 +66,7 @@
|
||||||
|
|
||||||
git diff --no-index $nixpkgs $out > $diff || true
|
git diff --no-index $nixpkgs $out > $diff || true
|
||||||
'';
|
'';
|
||||||
buildInputs =
|
buildInputs = [ inputs.self.defaultPackage.${ system } nixpkgs.git ];
|
||||||
[ inputs.self.defaultPackage.${ system } nixpkgs.git ];
|
|
||||||
nixpkgs = inputs.nixpkgs.sourceInfo.outPath;
|
nixpkgs = inputs.nixpkgs.sourceInfo.outPath;
|
||||||
NIX_BUILD_CORES = 0;
|
NIX_BUILD_CORES = 0;
|
||||||
outputs = [ "diff" "out" ];
|
outputs = [ "diff" "out" ];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue