A tool to check that your Cargo.toml dependencies are sorted alphabetically. Project created as a solution to @dtolnay's request for implementation #29. Cross platform implementation, windows compatible. Terminal coloring works on both cmd.exe and powershell. Checks/sorts by key in tables and also nested table headers (does not sort the items in a nested header, sorts the table itself). cargo sort-ck
uses toml-parse to turn the toml file into a rowan syntax tree, it then sorts tokens keeping whitespace and comments intact. If the print
or write
options are used the tree is lightly formatted, fixing only formatting issues the sorting causes.
The print and write options may result in improperly formatted toml please file an issue.
There are three modes cargo-sort-ck can be used in: * default - no flags set cargo-sort-ck will pass (exit 0) if .toml is sorted or fail if not (exit 1). * -p or --print - will print the sorted toml file to stdout. * -w or --write - will rewrite the toml file, I would like to eventually add some kind of check like cargo fix to warn if file is uncommitted/unsaved?.
included in sort check is:
toml
["dependencies"]
["dev-dependencies"]
["build-dependencies"]
["workspace.members"]
["workspace.exclude"]
if you have a header to add open a PR's, they are welcomed.
bash
cargo install cargo-sort-ck
Defaults to current dir but any path can be passed in. ```bash Cargo Sort Check Devin R devin.ragotzy@gmail.com Ensure Cargo.toml dependency tables are sorted.
USAGE: cargo-sort-ck [FLAGS] [CWD]
FLAGS: --crlf output uses windows style line endings (\r\n) -h, --help Prints help information -p, --print prints Cargo.toml, lexically sorted, to the screen -V, --version Prints version information -w, --write rewrites Cargo.toml file so it is lexically sorted
ARGS:
Thanks to [dspicher](https://github.com/dspicher) for [issue #4](https://github.com/DevinR528/cargo-sort-ck/issues/4) you can now invoke cargo sort check as a cargo subcommand
bash
cargo sort-ck [FLAGS] [path]
Wildcard expansion is supported so you can do this
bash
cargo-sort-ck [FLAGS] [path/to//Cargo.toml | path/to/]
or any other pattern that is supported by your terminal. This also means multiple
paths work.
bash
cargo-sort-ck [FLAGS] path/to/a path/to/b path/to/c/Cargo.toml
```
These are all valid, file name and extension can be used on some of the paths but not others, if
left off the defaults to Cargo.toml.
```toml [dependencies] a="0.1.1"
c="0.1.1"
b="0.1.1"
[dependencies.alpha] version="0"
[build-dependencies] foo="0" bar="0"
[dependencies.zed] version="0"
[dependencies.beta] version="0"
[dev-dependencies] bar="0" foo="0"
Will sort to, or fail until organized like so
toml
[dependencies]
a="0.1.1"
b="0.1.1"
c="0.1.1"
[dependencies.alpha] version="0"
[dependencies.beta] version="0"
[dependencies.zed] version="0"
[build-dependencies] bar="0" foo="0"
[dev-dependencies] bar="0" foo="0"
```
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.