#git-diff #clippy #git #cargo #diagnostics #cargo-clippy

bin+lib cargo-diff-tools

一个工具,用于隐藏那些报告在源代码行上但不是 git diff 部分中的警告信息。

3 个版本

0.1.2 2021 年 5 月 4 日
0.1.1 2021 年 5 月 3 日
0.1.0 2021 年 5 月 3 日

#15#git-diff

Download history 16/week @ 2024-03-14 86/week @ 2024-03-21 105/week @ 2024-03-28 66/week @ 2024-04-04 16/week @ 2024-04-11 4/week @ 2024-04-18 1/week @ 2024-04-25 33/week @ 2024-05-02 206/week @ 2024-05-09 221/week @ 2024-05-16 191/week @ 2024-05-23 233/week @ 2024-05-30 259/week @ 2024-06-06 189/week @ 2024-06-13 210/week @ 2024-06-20 96/week @ 2024-06-27

805 每月下载量

MIT/Apache

18KB
363 代码行

Cargo diff-tools

运行 cargo checkcargo clippy,隐藏那些主要行不包括在 git diff 中的警告信息。在大型项目中使用,可以隐藏那些可能与 pull request 所做的更改无关的警告信息。

灵感来源于 Patryk27/clippy-dirty

示例

运行 cargo clippy,隐藏那些主要行不包括在 git origin/master HEAD 中的警告信息。

cargo-clippy-diff origin/master HEAD

相同,对于 cargo check

cargo-check-diff origin/master HEAD

支持各种 git diff 参数。

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

cargo check 参数放置在 -- 之后。

cargo-check-diff HEAD -- --all-features

cargo clippy 参数放置在 -- 之后(注意,第二个 -- 是 clippy 的参数之一)。

cargo-clippy-diff HEAD -- --all-features -- -D clippy::lint_name

要显示诊断信息为 JSON 对象,请使用 --output=json

cargo-clippy-diff --output=json origin/master HEAD

要将诊断信息以GitHub Actions 工作流命令的形式显示(有助于自动添加评论到拉取请求中),请使用--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"

对于其他cargo命令,可以使用filter-by-diff来过滤任何JSON诊断流

cargo build --message-format=json-diagnostic-rendered-ansi \
    | filter-by-diff --output=rendered origin/master HEAD

依赖项

~3.5–5.5MB
~95K SLoC