Files
notfiles/rustqual.toml

100 lines
3.3 KiB
TOML
Raw Permalink Normal View History

# rustqual.toml — Tailored configuration for your project
# Generated from analysis of 87 file(s), 488 function(s).
#
# Thresholds are set to your current maximums + 20% headroom.
# Tighten them over time as you improve code quality.
# ── Function Classification ──────────────────────────────────────────────
ignore_functions = ["main", "test_*"]
exclude_files = [
"crates/notgraph/tests/*",
"scripts/preflight.rs",
]
strict_closures = false
strict_iterator_chains = false
allow_recursion = false
strict_error_propagation = false
# ── Suppression Health ───────────────────────────────────────────────────
max_suppression_ratio = 0.05
fail_on_warnings = false
# ── Complexity Analysis ──────────────────────────────────────────────────
[complexity]
enabled = true
max_cognitive = 72 # current max: 60
max_cyclomatic = 30 # current max: 25
max_nesting_depth = 9 # current max: 7
max_function_lines = 286 # current max: 238
include_nesting_penalty = true
detect_magic_numbers = true
detect_unsafe = true
detect_error_handling = true
allowed_magic_numbers = ["0", "1", "-1", "2"]
# ── DRY / Duplicate Detection ───────────────────────────────────────────
[duplicates]
enabled = true
similarity_threshold = 0.85
min_tokens = 30
min_lines = 5
min_statements = 3
ignore_tests = true
ignore_trait_impls = true
detect_dead_code = false
detect_wildcard_imports = true
detect_repeated_matches = true
# ── Boilerplate Detection ───────────────────────────────────────────────
[boilerplate]
enabled = true
suggest_crates = true
# ── SRP (Single Responsibility) ─────────────────────────────────────────
[srp]
enabled = true
smell_threshold = 0.6
max_fields = 12
max_methods = 20
max_fan_out = 10
lcom4_threshold = 2
weights = [0.4, 0.25, 0.15, 0.2]
file_length_baseline = 300
file_length_ceiling = 800
max_independent_clusters = 2
min_cluster_statements = 5
max_parameters = 5
# ── Coupling Analysis ───────────────────────────────────────────────────
[coupling]
enabled = true
max_instability = 0.8
max_fan_in = 15
max_fan_out = 12
check_sdp = true
# ── Test Quality Analysis ──────────────────────────────────────────────
[test_quality]
enabled = true
# coverage_file = "lcov.info"
# ── Quality Score Weights ──────────────────────────────────────────────
# Must sum to approximately 1.0.
[weights]
iosp = 0.22
complexity = 0.18
dry = 0.13
srp = 0.18
coupling = 0.09
test_quality = 0.10
architecture = 0.10