diff --git a/Cargo.lock b/Cargo.lock index 070db3c..c0306d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,21 +3,29 @@ version = 3 [[package]] -name = "alejandra" +name = "alejandra_cli" version = "0.3.1" dependencies = [ + "alejandra_engine", "atty", "clap", "indoc", - "rand", "rayon", - "rnix", - "rowan", "termion", "tui", "walkdir", ] +[[package]] +name = "alejandra_engine" +version = "0.3.1" +dependencies = [ + "clap", + "rand", + "rnix", + "rowan", +] + [[package]] name = "atty" version = "0.2.14" diff --git a/Cargo.toml b/Cargo.toml index 5a37bcb..08784fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,19 +1,2 @@ -[dependencies] -atty = "*" -clap = { version = "*", features = ["cargo"] } -indoc = "*" -rand = "*" -rayon = "*" -rnix = "*" -termion = "*" -tui = { version = "*", default-features = false, features = ["termion"] } -rowan = "0.12.6" # follows rnix -walkdir = "*" - -[package] -authors = ["Kevin Amado "] -description = "The Uncompromising Nix Code Formatter" -edition = "2021" -name = "alejandra" -repository = "https://github.com/kamadorueda/alejandra" -version = "0.3.1" +[workspace] +members = ["src/*"] diff --git a/buildkite.yaml b/buildkite.yaml index bac873a..43d1cf4 100644 --- a/buildkite.yaml +++ b/buildkite.yaml @@ -74,11 +74,6 @@ steps: - echo +++ Derivations count - grep -c drvPath= closure-after.txt - - label: flake check - command: - - echo +++ - - nix flake check - - label: lint if: build.branch != "main" command: @@ -87,3 +82,8 @@ steps: - eval "$(direnv export bash)" - echo +++ Run Linter - cargo clippy + + - label: flake check + command: + - echo +++ + - nix flake check diff --git a/flake.nix b/flake.nix index c2bc584..63e39ad 100644 --- a/flake.nix +++ b/flake.nix @@ -103,6 +103,7 @@ cargo-bloat cargo-license cargo-tarpaulin + clippy jq nodejs nodePackages.prettier diff --git a/front/Cargo.lock b/front/Cargo.lock index 56dc552..20dc0a7 100644 --- a/front/Cargo.lock +++ b/front/Cargo.lock @@ -3,23 +3,20 @@ version = 3 [[package]] -name = "alejandra" +name = "alejandra_engine" version = "0.3.1" dependencies = [ "clap", - "indoc", "rand", - "rayon", "rnix", - "rowan 0.15.3", - "walkdir", + "rowan", ] [[package]] -name = "alejandra-front" +name = "alejandra_front" version = "0.3.1" dependencies = [ - "alejandra", + "alejandra_engine", "console_error_panic_hook", "getrandom", "wasm-bindgen", @@ -78,9 +75,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5f1fea81f183005ced9e59cdb01737ef2423956dac5a6d731b06b2ecfaa3467" +checksum = "6d76c22c9b9b215eeb8d016ad3a90417bd13cb24cf8142756e6472445876cab7" dependencies = [ "atty", "bitflags", @@ -108,62 +105,6 @@ version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "328b822bdcba4d4e402be8d9adb6eebf269f969f8eadef977a553ff3c4fbcb58" -[[package]] -name = "countme" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03746e0c6dd9b5d2d9132ffe0bede35fb5f815604fd371bb42599fd37bc8e483" - -[[package]] -name = "crossbeam-channel" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", - "lazy_static", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" -dependencies = [ - "cfg-if 1.0.0", - "lazy_static", -] - -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - [[package]] name = "getrandom" version = "0.2.4" @@ -189,12 +130,6 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -[[package]] -name = "hashbrown" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" - [[package]] name = "hermit-abi" version = "0.1.19" @@ -214,15 +149,6 @@ dependencies = [ "hashbrown 0.11.2", ] -[[package]] -name = "indoc" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7906a9fababaeacb774f72410e497a1d18de916322e33797bb2cd29baa23c9e" -dependencies = [ - "unindent", -] - [[package]] name = "js-sys" version = "0.3.56" @@ -283,16 +209,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "os_str_bytes" version = "6.0.0" @@ -356,31 +272,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "rayon" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" -dependencies = [ - "autocfg", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "lazy_static", - "num_cpus", -] - [[package]] name = "rnix" version = "0.10.1" @@ -388,7 +279,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "065c5eac8e8f7e7b0e7227bdc46e2d8dd7d69fff7a9a2734e21f686bbcb9b2c9" dependencies = [ "cbitset", - "rowan 0.12.6", + "rowan", "smol_str", ] @@ -398,47 +289,19 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1b36e449f3702f3b0c821411db1cbdf30fb451726a9456dce5dabcd44420043" dependencies = [ - "countme 2.0.4", + "countme", "hashbrown 0.9.1", "memoffset", "rustc-hash", "text-size", ] -[[package]] -name = "rowan" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c72a0c863fef62cfd9ca7b72a35b422d7672dbffac4ac8003dcc3be7837d871d" -dependencies = [ - "countme 3.0.0", - "hashbrown 0.12.0", - "memoffset", - "rustc-hash", - "text-size", -] - [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - [[package]] name = "serde" version = "1.0.136" @@ -498,23 +361,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" -[[package]] -name = "unindent" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514672a55d7380da379785a4d70ca8386c8883ff7eaae877be4d2081cebe73d8" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi", - "winapi-util", -] - [[package]] name = "wasi" version = "0.10.2+wasi-snapshot-preview1" diff --git a/front/Cargo.toml b/front/Cargo.toml index 991bf69..d01670b 100644 --- a/front/Cargo.toml +++ b/front/Cargo.toml @@ -1,5 +1,5 @@ [dependencies] -alejandra = { "path" = "../." } +alejandra_engine = { "path" = "../src/alejandra_engine" } console_error_panic_hook = "*" getrandom = { version = "*", features = ["js"] } wasm-bindgen = "*" @@ -12,6 +12,8 @@ crate-type = ["cdylib"] authors = ["Kevin Amado "] description = "The Uncompromising Nix Code Formatter" edition = "2021" -name = "alejandra-front" +name = "alejandra_front" repository = "https://github.com/kamadorueda/alejandra" version = "0.3.1" + +[workspace] diff --git a/front/package.json b/front/package.json index cab3dfc..984ea56 100644 --- a/front/package.json +++ b/front/package.json @@ -12,7 +12,7 @@ ] }, "dependencies": { - "alejandra-front": "file:pkg/", + "alejandra_front": "file:pkg/", "codemirror": "*", "react": "*", "react-codemirror2": "*", diff --git a/front/serve b/front/serve new file mode 100755 index 0000000..b9eab66 --- /dev/null +++ b/front/serve @@ -0,0 +1,8 @@ +#! /usr/bin/env bash + +set -euo pipefail + +wasm-pack build --target web +rm -rf node_modules/ +yarn install +yarn start diff --git a/front/src/SideBySide.js b/front/src/SideBySide.js index f4a87e7..e6375c3 100644 --- a/front/src/SideBySide.js +++ b/front/src/SideBySide.js @@ -1,6 +1,6 @@ import react from "react"; import ReactDiffViewer from "react-diff-viewer"; -import * as wasm from "alejandra-front"; +import * as wasm from "alejandra_front"; import { Editor } from "./Editor"; import { get, randomPath } from "./nixpkgs"; diff --git a/front/src/lib.rs b/front/src/lib.rs index 51fb3d8..bbea347 100644 --- a/front/src/lib.rs +++ b/front/src/lib.rs @@ -12,7 +12,7 @@ pub fn main() -> Result<(), JsValue> { #[wasm_bindgen] pub fn format(before: String, path: String) -> String { - let config = alejandra::config::Config::new(); + let config = alejandra_engine::config::Config::default(); - alejandra::format::string_or_passthrough(&config, path, before) + alejandra_engine::format::string_or_passthrough(&config, path, before) } diff --git a/front/yarn.lock b/front/yarn.lock index 6caf99f..435ea77 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -2245,7 +2245,7 @@ ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -"alejandra-front@file:pkg": +"alejandra_front@file:pkg": version "0.1.0" ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: diff --git a/src/alejandra_cli/Cargo.lock b/src/alejandra_cli/Cargo.lock new file mode 100644 index 0000000..070db3c --- /dev/null +++ b/src/alejandra_cli/Cargo.lock @@ -0,0 +1,504 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "alejandra" +version = "0.3.1" +dependencies = [ + "atty", + "clap", + "indoc", + "rand", + "rayon", + "rnix", + "rowan", + "termion", + "tui", + "walkdir", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29b6ad25ae296159fb0da12b970b2fe179b234584d7cd294c891e2bbb284466b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d76c22c9b9b215eeb8d016ad3a90417bd13cb24cf8142756e6472445876cab7" +dependencies = [ + "atty", + "bitflags", + "indexmap", + "lazy_static", + "os_str_bytes", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "countme" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328b822bdcba4d4e402be8d9adb6eebf269f969f8eadef977a553ff3c4fbcb58" + +[[package]] +name = "crossbeam-channel" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +dependencies = [ + "cfg-if", + "lazy_static", +] + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "getrandom" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "indexmap" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +dependencies = [ + "autocfg", + "hashbrown 0.11.2", +] + +[[package]] +name = "indoc" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7906a9fababaeacb774f72410e497a1d18de916322e33797bb2cd29baa23c9e" +dependencies = [ + "unindent", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "numtoa" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" + +[[package]] +name = "os_str_bytes" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" +dependencies = [ + "memchr", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_termios" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f" +dependencies = [ + "redox_syscall", +] + +[[package]] +name = "rnix" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065c5eac8e8f7e7b0e7227bdc46e2d8dd7d69fff7a9a2734e21f686bbcb9b2c9" +dependencies = [ + "cbitset", + "rowan", + "smol_str", +] + +[[package]] +name = "rowan" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b36e449f3702f3b0c821411db1cbdf30fb451726a9456dce5dabcd44420043" +dependencies = [ + "countme", + "hashbrown 0.9.1", + "memoffset", + "rustc-hash", + "text-size", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "serde" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" + +[[package]] +name = "smol_str" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61d15c83e300cce35b7c8cd39ff567c1ef42dde6d4a1a38dbdbf9a59902261bd" +dependencies = [ + "serde", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "termcolor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termion" +version = "1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e" +dependencies = [ + "libc", + "numtoa", + "redox_syscall", + "redox_termios", +] + +[[package]] +name = "text-size" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "288cb548dbe72b652243ea797201f3d481a0609a967980fcc5b2315ea811560a" + +[[package]] +name = "textwrap" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" + +[[package]] +name = "tui" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ed0a32c88b039b73f1b6c5acbd0554bfa5b6be94467375fd947c4de3a02271" +dependencies = [ + "bitflags", + "cassowary", + "termion", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "unicode-segmentation" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unindent" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514672a55d7380da379785a4d70ca8386c8883ff7eaae877be4d2081cebe73d8" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/src/alejandra_cli/Cargo.toml b/src/alejandra_cli/Cargo.toml new file mode 100644 index 0000000..9914132 --- /dev/null +++ b/src/alejandra_cli/Cargo.toml @@ -0,0 +1,21 @@ +[[bin]] +name = "alejandra" +path = "src/main.rs" + +[dependencies] +alejandra_engine = { path = "../alejandra_engine" } +atty = "*" +clap = "*" +indoc = "*" +rayon = "*" +termion = "*" +tui = { version = "*", default-features = false, features = ["termion"] } +walkdir = { version = "*" } + +[package] +authors = ["Kevin Amado "] +description = "The Uncompromising Nix Code Formatter" +edition = "2021" +name = "alejandra_cli" +repository = "https://github.com/kamadorueda/alejandra" +version = "0.3.1" diff --git a/src/cli.rs b/src/alejandra_cli/src/cli.rs similarity index 92% rename from src/cli.rs rename to src/alejandra_cli/src/cli.rs index 67013d2..8e60c4d 100644 --- a/src/cli.rs +++ b/src/alejandra_cli/src/cli.rs @@ -1,7 +1,7 @@ pub fn parse(args: Vec) -> clap::ArgMatches { clap::Command::new("Alejandra") .about("The Uncompromising Nix Code Formatter.") - .version(crate::version::VERSION) + .version(alejandra_engine::version::VERSION) .arg( clap::Arg::new("paths") .help("Files or directories, or none to format stdin.") @@ -27,21 +27,22 @@ pub fn parse(args: Vec) -> clap::ArgMatches { .get_matches_from(args) } -pub fn stdin(config: crate::config::Config) -> std::io::Result<()> { +pub fn stdin(config: alejandra_engine::config::Config) -> std::io::Result<()> { use std::io::Read; eprintln!("Formatting stdin, run with --help to see all options."); let mut stdin = String::new(); std::io::stdin().read_to_string(&mut stdin).unwrap(); - let stdout = crate::format::string(&config, "stdin".to_string(), stdin)?; + let stdout = + alejandra_engine::format::string(&config, "stdin".to_string(), stdin)?; print!("{}", stdout); Ok(()) } pub fn simple( - config: crate::config::Config, + config: alejandra_engine::config::Config, paths: Vec, ) -> std::io::Result<()> { use rayon::prelude::*; @@ -51,12 +52,14 @@ pub fn simple( let (results, errors): (Vec<_>, Vec<_>) = paths .par_iter() .map(|path| -> std::io::Result { - crate::format::file(&config, path.to_string()).map(|changed| { - if changed { - eprintln!("Formatted: {}", &path); - } - changed - }) + alejandra_engine::format::file(&config, path.to_string()).map( + |changed| { + if changed { + eprintln!("Formatted: {}", &path); + } + changed + }, + ) }) .partition(Result::is_ok); @@ -70,7 +73,7 @@ pub fn simple( } pub fn tui( - config: crate::config::Config, + config: alejandra_engine::config::Config, paths: Vec, ) -> std::io::Result<()> { use rayon::prelude::*; @@ -126,7 +129,7 @@ pub fn tui( let sender_finished = sender; std::thread::spawn(move || { paths.into_par_iter().for_each_with(sender_paths, |sender, path| { - let result = crate::format::file(&config, path.clone()); + let result = alejandra_engine::format::file(&config, path.clone()); if let Err(error) = sender .send(Event::FormattedPath(FormattedPath { path, result })) @@ -208,7 +211,7 @@ pub fn tui( .fg(tui::style::Color::Green), ), tui::text::Span::raw(" "), - tui::text::Span::raw(crate::version::VERSION), + tui::text::Span::raw(alejandra_engine::version::VERSION), ]), tui::text::Spans::from(vec![tui::text::Span::raw( "The Uncompromising Nix Code Formatter", diff --git a/src/find.rs b/src/alejandra_cli/src/find.rs similarity index 100% rename from src/find.rs rename to src/alejandra_cli/src/find.rs diff --git a/src/alejandra_cli/src/lib.rs b/src/alejandra_cli/src/lib.rs new file mode 100644 index 0000000..665c2a0 --- /dev/null +++ b/src/alejandra_cli/src/lib.rs @@ -0,0 +1,2 @@ +pub mod cli; +pub mod find; diff --git a/src/main.rs b/src/alejandra_cli/src/main.rs similarity index 52% rename from src/main.rs rename to src/alejandra_cli/src/main.rs index e58f25d..97edebe 100644 --- a/src/main.rs +++ b/src/alejandra_cli/src/main.rs @@ -1,24 +1,24 @@ fn main() -> std::io::Result<()> { - let matches = alejandra::cli::parse(std::env::args().collect()); + let matches = alejandra_cli::cli::parse(std::env::args().collect()); - let config = alejandra::config::Config::default(); + let config = alejandra_engine::config::Config::default(); match matches.values_of("paths") { Some(paths) => { let paths: Vec = - alejandra::find::nix_files(paths.collect()); + alejandra_cli::find::nix_files(paths.collect()); if atty::is(atty::Stream::Stderr) && atty::is(atty::Stream::Stdin) && atty::is(atty::Stream::Stdout) { - alejandra::cli::tui(config, paths)?; + alejandra_cli::cli::tui(config, paths)?; } else { - alejandra::cli::simple(config, paths)?; + alejandra_cli::cli::simple(config, paths)?; } } None => { - alejandra::cli::stdin(config)?; + alejandra_cli::cli::stdin(config)?; } } diff --git a/src/alejandra_engine/Cargo.lock b/src/alejandra_engine/Cargo.lock new file mode 100644 index 0000000..070db3c --- /dev/null +++ b/src/alejandra_engine/Cargo.lock @@ -0,0 +1,504 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "alejandra" +version = "0.3.1" +dependencies = [ + "atty", + "clap", + "indoc", + "rand", + "rayon", + "rnix", + "rowan", + "termion", + "tui", + "walkdir", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29b6ad25ae296159fb0da12b970b2fe179b234584d7cd294c891e2bbb284466b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d76c22c9b9b215eeb8d016ad3a90417bd13cb24cf8142756e6472445876cab7" +dependencies = [ + "atty", + "bitflags", + "indexmap", + "lazy_static", + "os_str_bytes", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "countme" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328b822bdcba4d4e402be8d9adb6eebf269f969f8eadef977a553ff3c4fbcb58" + +[[package]] +name = "crossbeam-channel" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +dependencies = [ + "cfg-if", + "lazy_static", +] + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "getrandom" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "indexmap" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +dependencies = [ + "autocfg", + "hashbrown 0.11.2", +] + +[[package]] +name = "indoc" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7906a9fababaeacb774f72410e497a1d18de916322e33797bb2cd29baa23c9e" +dependencies = [ + "unindent", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "numtoa" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" + +[[package]] +name = "os_str_bytes" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" +dependencies = [ + "memchr", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_termios" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f" +dependencies = [ + "redox_syscall", +] + +[[package]] +name = "rnix" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065c5eac8e8f7e7b0e7227bdc46e2d8dd7d69fff7a9a2734e21f686bbcb9b2c9" +dependencies = [ + "cbitset", + "rowan", + "smol_str", +] + +[[package]] +name = "rowan" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b36e449f3702f3b0c821411db1cbdf30fb451726a9456dce5dabcd44420043" +dependencies = [ + "countme", + "hashbrown 0.9.1", + "memoffset", + "rustc-hash", + "text-size", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "serde" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" + +[[package]] +name = "smol_str" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61d15c83e300cce35b7c8cd39ff567c1ef42dde6d4a1a38dbdbf9a59902261bd" +dependencies = [ + "serde", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "termcolor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termion" +version = "1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e" +dependencies = [ + "libc", + "numtoa", + "redox_syscall", + "redox_termios", +] + +[[package]] +name = "text-size" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "288cb548dbe72b652243ea797201f3d481a0609a967980fcc5b2315ea811560a" + +[[package]] +name = "textwrap" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" + +[[package]] +name = "tui" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ed0a32c88b039b73f1b6c5acbd0554bfa5b6be94467375fd947c4de3a02271" +dependencies = [ + "bitflags", + "cassowary", + "termion", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "unicode-segmentation" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unindent" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514672a55d7380da379785a4d70ca8386c8883ff7eaae877be4d2081cebe73d8" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/src/alejandra_engine/Cargo.toml b/src/alejandra_engine/Cargo.toml new file mode 100644 index 0000000..641dc63 --- /dev/null +++ b/src/alejandra_engine/Cargo.toml @@ -0,0 +1,13 @@ +[dependencies] +clap = { version = "*", features = ["cargo"] } +rand = "*" +rnix = "*" +rowan = "0.12.6" # follows rnix + +[package] +authors = ["Kevin Amado "] +description = "The Uncompromising Nix Code Formatter" +edition = "2021" +name = "alejandra_engine" +repository = "https://github.com/kamadorueda/alejandra" +version = "0.3.1" diff --git a/src/builder.rs b/src/alejandra_engine/src/builder.rs similarity index 100% rename from src/builder.rs rename to src/alejandra_engine/src/builder.rs diff --git a/src/children.rs b/src/alejandra_engine/src/children.rs similarity index 100% rename from src/children.rs rename to src/alejandra_engine/src/children.rs diff --git a/src/config.rs b/src/alejandra_engine/src/config.rs similarity index 100% rename from src/config.rs rename to src/alejandra_engine/src/config.rs diff --git a/src/format.rs b/src/alejandra_engine/src/format.rs similarity index 100% rename from src/format.rs rename to src/alejandra_engine/src/format.rs diff --git a/src/lib.rs b/src/alejandra_engine/src/lib.rs similarity index 83% rename from src/lib.rs rename to src/alejandra_engine/src/lib.rs index deae7f6..2ba07fe 100644 --- a/src/lib.rs +++ b/src/alejandra_engine/src/lib.rs @@ -1,8 +1,6 @@ pub mod builder; pub mod children; -pub mod cli; pub mod config; -pub mod find; pub mod format; pub mod position; pub mod rules; diff --git a/src/position.rs b/src/alejandra_engine/src/position.rs similarity index 100% rename from src/position.rs rename to src/alejandra_engine/src/position.rs diff --git a/src/rules/apply.rs b/src/alejandra_engine/src/rules/apply.rs similarity index 100% rename from src/rules/apply.rs rename to src/alejandra_engine/src/rules/apply.rs diff --git a/src/rules/assert_and_with.rs b/src/alejandra_engine/src/rules/assert_and_with.rs similarity index 100% rename from src/rules/assert_and_with.rs rename to src/alejandra_engine/src/rules/assert_and_with.rs diff --git a/src/rules/attr_set.rs b/src/alejandra_engine/src/rules/attr_set.rs similarity index 100% rename from src/rules/attr_set.rs rename to src/alejandra_engine/src/rules/attr_set.rs diff --git a/src/rules/bin_op_and_or_default.rs b/src/alejandra_engine/src/rules/bin_op_and_or_default.rs similarity index 100% rename from src/rules/bin_op_and_or_default.rs rename to src/alejandra_engine/src/rules/bin_op_and_or_default.rs diff --git a/src/rules/dynamic.rs b/src/alejandra_engine/src/rules/dynamic.rs similarity index 100% rename from src/rules/dynamic.rs rename to src/alejandra_engine/src/rules/dynamic.rs diff --git a/src/rules/if_else.rs b/src/alejandra_engine/src/rules/if_else.rs similarity index 100% rename from src/rules/if_else.rs rename to src/alejandra_engine/src/rules/if_else.rs diff --git a/src/rules/inherit.rs b/src/alejandra_engine/src/rules/inherit.rs similarity index 100% rename from src/rules/inherit.rs rename to src/alejandra_engine/src/rules/inherit.rs diff --git a/src/rules/key_value.rs b/src/alejandra_engine/src/rules/key_value.rs similarity index 100% rename from src/rules/key_value.rs rename to src/alejandra_engine/src/rules/key_value.rs diff --git a/src/rules/lambda.rs b/src/alejandra_engine/src/rules/lambda.rs similarity index 100% rename from src/rules/lambda.rs rename to src/alejandra_engine/src/rules/lambda.rs diff --git a/src/rules/let_in.rs b/src/alejandra_engine/src/rules/let_in.rs similarity index 100% rename from src/rules/let_in.rs rename to src/alejandra_engine/src/rules/let_in.rs diff --git a/src/rules/list.rs b/src/alejandra_engine/src/rules/list.rs similarity index 100% rename from src/rules/list.rs rename to src/alejandra_engine/src/rules/list.rs diff --git a/src/rules/mod.rs b/src/alejandra_engine/src/rules/mod.rs similarity index 100% rename from src/rules/mod.rs rename to src/alejandra_engine/src/rules/mod.rs diff --git a/src/rules/paren.rs b/src/alejandra_engine/src/rules/paren.rs similarity index 100% rename from src/rules/paren.rs rename to src/alejandra_engine/src/rules/paren.rs diff --git a/src/rules/pat_bind.rs b/src/alejandra_engine/src/rules/pat_bind.rs similarity index 100% rename from src/rules/pat_bind.rs rename to src/alejandra_engine/src/rules/pat_bind.rs diff --git a/src/rules/pat_entry.rs b/src/alejandra_engine/src/rules/pat_entry.rs similarity index 100% rename from src/rules/pat_entry.rs rename to src/alejandra_engine/src/rules/pat_entry.rs diff --git a/src/rules/pattern.rs b/src/alejandra_engine/src/rules/pattern.rs similarity index 100% rename from src/rules/pattern.rs rename to src/alejandra_engine/src/rules/pattern.rs diff --git a/src/rules/root.rs b/src/alejandra_engine/src/rules/root.rs similarity index 100% rename from src/rules/root.rs rename to src/alejandra_engine/src/rules/root.rs diff --git a/src/rules/select.rs b/src/alejandra_engine/src/rules/select.rs similarity index 100% rename from src/rules/select.rs rename to src/alejandra_engine/src/rules/select.rs diff --git a/src/rules/string.rs b/src/alejandra_engine/src/rules/string.rs similarity index 100% rename from src/rules/string.rs rename to src/alejandra_engine/src/rules/string.rs diff --git a/src/rules/string_interpol.rs b/src/alejandra_engine/src/rules/string_interpol.rs similarity index 100% rename from src/rules/string_interpol.rs rename to src/alejandra_engine/src/rules/string_interpol.rs diff --git a/src/utils.rs b/src/alejandra_engine/src/utils.rs similarity index 100% rename from src/utils.rs rename to src/alejandra_engine/src/utils.rs diff --git a/src/alejandra_engine/src/version.rs b/src/alejandra_engine/src/version.rs new file mode 100644 index 0000000..737f478 --- /dev/null +++ b/src/alejandra_engine/src/version.rs @@ -0,0 +1 @@ +pub const VERSION: &str = "0.3.1"; diff --git a/tests/cases/apply/in b/src/alejandra_engine/tests/cases/apply/in similarity index 100% rename from tests/cases/apply/in rename to src/alejandra_engine/tests/cases/apply/in diff --git a/tests/cases/apply/out b/src/alejandra_engine/tests/cases/apply/out similarity index 100% rename from tests/cases/apply/out rename to src/alejandra_engine/tests/cases/apply/out diff --git a/tests/cases/assert/in b/src/alejandra_engine/tests/cases/assert/in similarity index 100% rename from tests/cases/assert/in rename to src/alejandra_engine/tests/cases/assert/in diff --git a/tests/cases/assert/out b/src/alejandra_engine/tests/cases/assert/out similarity index 100% rename from tests/cases/assert/out rename to src/alejandra_engine/tests/cases/assert/out diff --git a/tests/cases/attr_set/in b/src/alejandra_engine/tests/cases/attr_set/in similarity index 100% rename from tests/cases/attr_set/in rename to src/alejandra_engine/tests/cases/attr_set/in diff --git a/tests/cases/attr_set/out b/src/alejandra_engine/tests/cases/attr_set/out similarity index 100% rename from tests/cases/attr_set/out rename to src/alejandra_engine/tests/cases/attr_set/out diff --git a/tests/cases/bin_op/in b/src/alejandra_engine/tests/cases/bin_op/in similarity index 100% rename from tests/cases/bin_op/in rename to src/alejandra_engine/tests/cases/bin_op/in diff --git a/tests/cases/bin_op/out b/src/alejandra_engine/tests/cases/bin_op/out similarity index 100% rename from tests/cases/bin_op/out rename to src/alejandra_engine/tests/cases/bin_op/out diff --git a/tests/cases/comment/in b/src/alejandra_engine/tests/cases/comment/in similarity index 100% rename from tests/cases/comment/in rename to src/alejandra_engine/tests/cases/comment/in diff --git a/tests/cases/comment/out b/src/alejandra_engine/tests/cases/comment/out similarity index 100% rename from tests/cases/comment/out rename to src/alejandra_engine/tests/cases/comment/out diff --git a/tests/cases/dynamic/in b/src/alejandra_engine/tests/cases/dynamic/in similarity index 100% rename from tests/cases/dynamic/in rename to src/alejandra_engine/tests/cases/dynamic/in diff --git a/tests/cases/dynamic/out b/src/alejandra_engine/tests/cases/dynamic/out similarity index 100% rename from tests/cases/dynamic/out rename to src/alejandra_engine/tests/cases/dynamic/out diff --git a/tests/cases/error/in b/src/alejandra_engine/tests/cases/error/in similarity index 100% rename from tests/cases/error/in rename to src/alejandra_engine/tests/cases/error/in diff --git a/tests/cases/error/out b/src/alejandra_engine/tests/cases/error/out similarity index 100% rename from tests/cases/error/out rename to src/alejandra_engine/tests/cases/error/out diff --git a/tests/cases/idioms/in b/src/alejandra_engine/tests/cases/idioms/in similarity index 100% rename from tests/cases/idioms/in rename to src/alejandra_engine/tests/cases/idioms/in diff --git a/tests/cases/idioms/out b/src/alejandra_engine/tests/cases/idioms/out similarity index 100% rename from tests/cases/idioms/out rename to src/alejandra_engine/tests/cases/idioms/out diff --git a/tests/cases/idioms_lib_1/in b/src/alejandra_engine/tests/cases/idioms_lib_1/in similarity index 100% rename from tests/cases/idioms_lib_1/in rename to src/alejandra_engine/tests/cases/idioms_lib_1/in diff --git a/tests/cases/idioms_lib_1/out b/src/alejandra_engine/tests/cases/idioms_lib_1/out similarity index 100% rename from tests/cases/idioms_lib_1/out rename to src/alejandra_engine/tests/cases/idioms_lib_1/out diff --git a/tests/cases/idioms_pkgs_1/in b/src/alejandra_engine/tests/cases/idioms_pkgs_1/in similarity index 100% rename from tests/cases/idioms_pkgs_1/in rename to src/alejandra_engine/tests/cases/idioms_pkgs_1/in diff --git a/tests/cases/idioms_pkgs_1/out b/src/alejandra_engine/tests/cases/idioms_pkgs_1/out similarity index 100% rename from tests/cases/idioms_pkgs_1/out rename to src/alejandra_engine/tests/cases/idioms_pkgs_1/out diff --git a/tests/cases/if_else/in b/src/alejandra_engine/tests/cases/if_else/in similarity index 100% rename from tests/cases/if_else/in rename to src/alejandra_engine/tests/cases/if_else/in diff --git a/tests/cases/if_else/out b/src/alejandra_engine/tests/cases/if_else/out similarity index 100% rename from tests/cases/if_else/out rename to src/alejandra_engine/tests/cases/if_else/out diff --git a/tests/cases/inherit/in b/src/alejandra_engine/tests/cases/inherit/in similarity index 100% rename from tests/cases/inherit/in rename to src/alejandra_engine/tests/cases/inherit/in diff --git a/tests/cases/inherit/out b/src/alejandra_engine/tests/cases/inherit/out similarity index 100% rename from tests/cases/inherit/out rename to src/alejandra_engine/tests/cases/inherit/out diff --git a/tests/cases/inherit_from/in b/src/alejandra_engine/tests/cases/inherit_from/in similarity index 100% rename from tests/cases/inherit_from/in rename to src/alejandra_engine/tests/cases/inherit_from/in diff --git a/tests/cases/inherit_from/out b/src/alejandra_engine/tests/cases/inherit_from/out similarity index 100% rename from tests/cases/inherit_from/out rename to src/alejandra_engine/tests/cases/inherit_from/out diff --git a/tests/cases/key_value/in b/src/alejandra_engine/tests/cases/key_value/in similarity index 100% rename from tests/cases/key_value/in rename to src/alejandra_engine/tests/cases/key_value/in diff --git a/tests/cases/key_value/out b/src/alejandra_engine/tests/cases/key_value/out similarity index 100% rename from tests/cases/key_value/out rename to src/alejandra_engine/tests/cases/key_value/out diff --git a/tests/cases/lambda/in b/src/alejandra_engine/tests/cases/lambda/in similarity index 100% rename from tests/cases/lambda/in rename to src/alejandra_engine/tests/cases/lambda/in diff --git a/tests/cases/lambda/out b/src/alejandra_engine/tests/cases/lambda/out similarity index 100% rename from tests/cases/lambda/out rename to src/alejandra_engine/tests/cases/lambda/out diff --git a/tests/cases/let_in/in b/src/alejandra_engine/tests/cases/let_in/in similarity index 100% rename from tests/cases/let_in/in rename to src/alejandra_engine/tests/cases/let_in/in diff --git a/tests/cases/let_in/out b/src/alejandra_engine/tests/cases/let_in/out similarity index 100% rename from tests/cases/let_in/out rename to src/alejandra_engine/tests/cases/let_in/out diff --git a/tests/cases/lists/in b/src/alejandra_engine/tests/cases/lists/in similarity index 100% rename from tests/cases/lists/in rename to src/alejandra_engine/tests/cases/lists/in diff --git a/tests/cases/lists/out b/src/alejandra_engine/tests/cases/lists/out similarity index 100% rename from tests/cases/lists/out rename to src/alejandra_engine/tests/cases/lists/out diff --git a/tests/cases/or_default/in b/src/alejandra_engine/tests/cases/or_default/in similarity index 100% rename from tests/cases/or_default/in rename to src/alejandra_engine/tests/cases/or_default/in diff --git a/tests/cases/or_default/out b/src/alejandra_engine/tests/cases/or_default/out similarity index 100% rename from tests/cases/or_default/out rename to src/alejandra_engine/tests/cases/or_default/out diff --git a/tests/cases/paren/in b/src/alejandra_engine/tests/cases/paren/in similarity index 100% rename from tests/cases/paren/in rename to src/alejandra_engine/tests/cases/paren/in diff --git a/tests/cases/paren/out b/src/alejandra_engine/tests/cases/paren/out similarity index 100% rename from tests/cases/paren/out rename to src/alejandra_engine/tests/cases/paren/out diff --git a/tests/cases/pat_bind/in b/src/alejandra_engine/tests/cases/pat_bind/in similarity index 100% rename from tests/cases/pat_bind/in rename to src/alejandra_engine/tests/cases/pat_bind/in diff --git a/tests/cases/pat_bind/out b/src/alejandra_engine/tests/cases/pat_bind/out similarity index 100% rename from tests/cases/pat_bind/out rename to src/alejandra_engine/tests/cases/pat_bind/out diff --git a/tests/cases/pattern/in b/src/alejandra_engine/tests/cases/pattern/in similarity index 100% rename from tests/cases/pattern/in rename to src/alejandra_engine/tests/cases/pattern/in diff --git a/tests/cases/pattern/out b/src/alejandra_engine/tests/cases/pattern/out similarity index 100% rename from tests/cases/pattern/out rename to src/alejandra_engine/tests/cases/pattern/out diff --git a/tests/cases/root/in b/src/alejandra_engine/tests/cases/root/in similarity index 100% rename from tests/cases/root/in rename to src/alejandra_engine/tests/cases/root/in diff --git a/tests/cases/root/out b/src/alejandra_engine/tests/cases/root/out similarity index 100% rename from tests/cases/root/out rename to src/alejandra_engine/tests/cases/root/out diff --git a/tests/cases/select/in b/src/alejandra_engine/tests/cases/select/in similarity index 100% rename from tests/cases/select/in rename to src/alejandra_engine/tests/cases/select/in diff --git a/tests/cases/select/out b/src/alejandra_engine/tests/cases/select/out similarity index 100% rename from tests/cases/select/out rename to src/alejandra_engine/tests/cases/select/out diff --git a/tests/cases/string/in b/src/alejandra_engine/tests/cases/string/in similarity index 100% rename from tests/cases/string/in rename to src/alejandra_engine/tests/cases/string/in diff --git a/tests/cases/string/out b/src/alejandra_engine/tests/cases/string/out similarity index 100% rename from tests/cases/string/out rename to src/alejandra_engine/tests/cases/string/out diff --git a/tests/cases/string_interpol/in b/src/alejandra_engine/tests/cases/string_interpol/in similarity index 100% rename from tests/cases/string_interpol/in rename to src/alejandra_engine/tests/cases/string_interpol/in diff --git a/tests/cases/string_interpol/out b/src/alejandra_engine/tests/cases/string_interpol/out similarity index 100% rename from tests/cases/string_interpol/out rename to src/alejandra_engine/tests/cases/string_interpol/out diff --git a/tests/cases/with/in b/src/alejandra_engine/tests/cases/with/in similarity index 100% rename from tests/cases/with/in rename to src/alejandra_engine/tests/cases/with/in diff --git a/tests/cases/with/out b/src/alejandra_engine/tests/cases/with/out similarity index 100% rename from tests/cases/with/out rename to src/alejandra_engine/tests/cases/with/out diff --git a/tests/fmt.rs b/src/alejandra_engine/tests/fmt.rs similarity index 87% rename from tests/fmt.rs rename to src/alejandra_engine/tests/fmt.rs index 74f89a1..875f8e2 100644 --- a/tests/fmt.rs +++ b/src/alejandra_engine/tests/fmt.rs @@ -4,7 +4,7 @@ use std::io::Write; fn cases() { let should_update = std::env::var("UPDATE").is_ok(); - let config = alejandra::config::Config::new(); + let config = alejandra_engine::config::Config::default(); let cases: std::collections::HashSet = std::fs::read_dir("tests/cases") @@ -16,7 +16,7 @@ fn cases() { let path_in = format!("tests/cases/{}/in", case); let path_out = format!("tests/cases/{}/out", case); let content_in = std::fs::read_to_string(path_in.clone()).unwrap(); - let content_got = alejandra::format::string_or_passthrough( + let content_got = alejandra_engine::format::string_or_passthrough( &config, path_in, content_in.clone(), diff --git a/src/version.rs b/src/version.rs deleted file mode 100644 index 725f9e2..0000000 --- a/src/version.rs +++ /dev/null @@ -1 +0,0 @@ -pub const VERSION: &str = clap::crate_version!();