| Crates.io | cargo-diff-tools |
| lib.rs | cargo-diff-tools |
| version | 0.1.2 |
| created_at | 2021-05-03 07:32:10.492943+00 |
| updated_at | 2021-05-04 11:23:24.848927+00 |
| description | A tool to hide warning messages reported on source code lines that are not part of a `git diff` |
| homepage | https://github.com/fpoli/cargo-diff-tools |
| repository | https://github.com/fpoli/cargo-diff-tools |
| max_upload_size | |
| id | 392431 |
| size | 35,479 |
Run cargo check and cargo clippy hiding the warning messages whose primary line is not included in a git diff. Useful in large projects to hide warning messages that are probably not related to the changes made by a pull request.
Inspired by Patryk27/clippy-dirty.
Run cargo clippy hiding the warning messages whose primary line is not included in a git origin/master HEAD:
cargo-clippy-diff origin/master HEAD
The same, for cargo check:
cargo-check-diff origin/master HEAD
Various git diff arguments are supported:
cargo-clippy-diff HEAD # internally calls `git diff HEAD`
cargo-clippy-diff --staged # internally calls `git diff --staged`
cargo-clippy-diff first-branch...second-branch origin/master # and so on
Place cargo check arguments after a --:
cargo-check-diff HEAD -- --all-features
Place cargo clippy arguments after a -- (note that the second -- is one of clippy's arguments):
cargo-clippy-diff HEAD -- --all-features -- -D clippy::lint_name
To display diagnostics as JSON objects, use --output=json:
cargo-clippy-diff --output=json origin/master HEAD
To display diagnostics as workflow commands in GitHub Actions (useful to automatically add comments to pull requests), use --output=github:
git fetch origin $GITHUB_BASE_REF --depth=1
cargo-clippy-diff --output=github $(git merge-base origin/$GITHUB_BASE_REF $GITHUB_SHA) $GITHUB_SHA
# Example output "::warning file=lib.rs,line=4,col=2::Missing semicolon"
For other cargo commands, filter-by-diff can be used to filter any stream of JSON diagnostics:
cargo build --message-format=json-diagnostic-rendered-ansi \
| filter-by-diff --output=rendered origin/master HEAD