| name | similarity |
| description | Detect semantic code similarities using similarity-rs. Creates refactoring plans for duplicate code. |
Similarity - Code Similarity Analysis
Execution Steps
- Run
similarity-rs to detect code similarities
- Analyze detected duplicates (95%+: immediate, 85-95%: review)
- Create refactoring plan
Commands
similarity-rs ./src
similarity-rs ./src --threshold 0.85
similarity-rs ./src --skip-test
similarity-rs ./src --print
similarity-rs ./src --threshold 0.95 --skip-test
similarity-rs ./src --experimental-types
similarity-rs ./src --threshold 0.95 --skip-test --fail-on-duplicates
Options
| Option | Description | Default |
|---|
-t, --threshold | Similarity threshold (0.0-1.0) | 0.85 |
-m, --min-lines | Minimum lines | 3 |
--min-tokens | Minimum tokens | 30 |
-p, --print | Show code in output | - |
--skip-test | Skip test functions | - |
--exclude | Exclude directories | - |
--experimental-types | Check type similarity | - |
--fail-on-duplicates | Exit 1 if duplicates found | - |
Interpretation
| Similarity | Category | Action |
|---|
| 95%+ | Near-exact duplicate | Extract to common function |
| 85-95% | Structural similarity | Consider generics/traits |
| < 85% | Possible false positive | Review manually |
Workflow with cargo-coupling
similarity-rs ./src --threshold 0.85 --skip-test
cargo run -- coupling ./src
cargo run -- coupling --web ./src
Recommended Workflow
- Initial scan:
similarity-rs . --threshold 0.8 --skip-test
- Detailed analysis:
similarity-rs ./src --threshold 0.95 --print
- Type check:
similarity-rs ./src --experimental-types --threshold 0.85