mcpField
C
clippy-advanced

clippy-advanced

github.com/laurigatesTesting & quality59106 installsUpdated 1d ago
Repository

About clippy-advanced

A configuration guide for Rust developers using Clippy, covering lint categories, custom rules, disallowed items, and IDE integration, along with CI checks. It is intended for setting and maintaining code standards, not for formatting, building, or testing.

Key features

  1. 01Configure lint categories and levels
  2. 02Set clippy.toml thresholds and disallowed items
  3. 03Use Cargo workspace lint settings
  4. 04Configure CI checks and output formats
  5. 05Manage lint suppressions

Use cases

  1. 01Define code standards for Rust projects
  2. 02Treat lint warnings as errors in CI
  3. 03Enable pedantic checks for a project

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/laurigates/claude-plugins --skill clippy-advanced

After installing, type/clippy-advancedin Claude Code to confirm it loaded.

Bundled filesREFERENCE.md

Details

From the project README

clippy-advanced - Advanced Clippy Configuration

Advanced Clippy configuration for comprehensive Rust linting, including custom rules, lint categories, disallowed methods, and IDE integration.

When to Use This Skill

Use this skill when...Use another tool instead when...
Configuring Clippy lint rulesFormatting code (use rustfmt)
Setting up CI linting for RustBuilding/compiling (use cargo build)
Customizing clippy.tomlRunning tests (use cargo test)
Enforcing code standardsManaging dependencies (use cargo add)

Installation

# Clippy is included with rustup
rustup component add clippy

# Verify installation
cargo clippy --version

# Update clippy with rust toolchain
rustup update

Basic Usage

# Run clippy on current project
cargo clippy

# Run on all targets (lib, bins, tests, examples, benches)
cargo clippy --all-targets

# Run with all features enabled
cargo clippy --all-features

# Run on workspace
cargo clippy --workspace --all-targets --all-features

# Show detailed lint explanations
cargo clippy -- -W clippy::all -A clippy::pedantic

# Treat warnings as errors
cargo clippy -- -D warnings

Lint Categories

CategoryPurposeDefault
clippy::correctnessLikely bugsDeny
clippy::complexityOverly complex codeWarn
clippy::perfPerformance issuesWarn
clippy::styleCode styleWarn
clippy::suspiciousCode that looks wrongWarn
clippy::pedanticOpinionated styleOff
clippy::restrictionOpt-in constraintsOff
clippy::nurseryExperimentalOff
clippy::cargoCargo.toml issuesOff
Recommended Cargo.toml Configuration
[workspace.lints.clippy]
# Deny correctness issues (likely bugs)
correctness = "deny"
complexity = "warn"
perf = "warn"
style = "warn"
suspicious = "warn"

# Enable pedantic but allow some noisy lints
pedantic = "warn"
must_use_candidate = "allow"
missing_errors_doc = "allow"

# Enable some restriction lints selectively
clone_on_ref_ptr = "warn"
dbg_macro = "warn"
print_stdout = "warn"
todo = "warn"
unimplemented = "warn"
unwrap_used = "warn"

# Enable nursery lints (experimental)
use_self = "warn"

clippy.toml Essential Settings

Create clippy.toml in project root for thresholds and disallowed items:

cognitive-complexity-threshold = 15
too-many-lines-threshold = 100
too-many-arguments-threshold = 5

disallowed-methods = [
  { path = "std::env::var", reason = "Use std::env::var_os for better Unicode handling" },
  { path = "std::process::exit", reason = "Use Result propagation instead" },
]

disallowed-names = ["foo", "bar", "baz"]

Lint Suppression

// Function-level
#[allow(clippy::too_many_arguments)]
fn complex_function(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}

// Module-level (src/lib.rs)
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![deny(clippy::unwrap_used)]
#![allow(clippy::module_name_repetitions)]

// Inline
#[allow(clippy::cast_possible_truncation)]
let x = value as u8;

Agentic Optimizations

ContextCommand
CI strictcargo clippy --workspace --all-targets -- -D warnings
JSON outputcargo clippy --message-format=json
Compact errorscargo clippy --message-format=short
Quick checkcargo clippy --message-format=short -- -D warnings
Pedantic checkcargo clippy -- -W clippy::pedantic -D clippy::correctness

Quick Reference

Command-Line Flags
FlagDescription
--all-targetsCheck lib, bins, tests, examples, benches
--all-featuresEnable all features
--workspaceCheck entire workspace
--message-format=jsonJSON output for tooling
--message-format=shortCompact error format
-- -D warningsTreat warnings as errors
-- -W clippy::pedanticEnable pedantic lints
-- -A clippy::lint_nameAllow specific lint
Lint Levels
LevelAttributeEffect
Allow#[allow(...)]Suppress lint
Warn#[warn(...)]Show warning
Deny#[deny(...)]Compile error

References

For detailed configuration examples, CI integration, IDE setup, and best practices, see REFERENCE.md.

Comments

Markdown supported