kucherenko/jscpd
Copy/paste detector for source code. 220+ languages, Rust engine, SARIF/HTML/badge reporters, GitHub Action, MCP server for AI agents.
解決する課題
jscpdは、大規模なコードベース全体で重複コード、デッドコード、複雑度のホットスポットを検出するために設計された高性能ツールです。冗長なロジック、未使用のコード、保守が困難またはバグが発生しやすい過度に複雑なファイルを特定することで、開発者がコードの健全性を維持するのを支援します。
仕組み
このツールはRustベースのエンジンを使用し、224以上のプログラミング言語の特定の構文規則に従ってソースコードをトークン化します。その後、ローリングRabin-Karpハッシュアルゴリズムを採用して重複シーケンスを特定します。単純なテキストマッチングを超えて、識別子の名前変更(Type-2)、軽微な編集を伴うニアミス・クローン(Type-3)、およびコード埋め込みモデルを使用して機能的に同等だが記述が異なるコードを見つける実験的なセマンティック・クローン検出など、高度な検出タイプをサポートしています。
対象ユーザー
ソフトウェアエンジニア、DevOpsチーム、およびコード品質基準の強制、技術的負債の追跡、またはモノレポや大規模プロジェクトにおける冗長コードの蓄積防止を必要とするCI/CDパイプラインを対象としています。
ハイライト
- 言語認識トークン化により224以上の言語フォーマットをサポート。
- AI対応のMCPサーバーと、LLMベースの分析ワークフロー向けのトークン効率的なレポーターを搭載。
- Git履歴全体でコードの健全性と重複の傾向を追跡し、リグレッションを防止。
- JavaScript、TypeScript、Python全体でデッドコード(未使用のファイル、エクスポート、インポート)を検出。
- Neovim、Helix、JetBrainsなどのIDEでリアルタイム診断を行うための言語サーバー(LSP)を提供。
- SARIF、Code Climate、カスタムしきい値をサポートする柔軟なCI統合を提供。
関連
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト