name: code-complexity-analyzer description: Measure cyclomatic complexity, cognitive complexity, and structural metrics for Python, JavaScript/TypeScript, and Go code. Use when analyzing code quality, finding complex functions, setting CI quality gates, reviewing code for refactoring candidates, or generating complexity reports. Supports per-function metrics, configurable thresholds, risk levels, and multiple output formats (text, JSON, markdown).
Measure cyclomatic, cognitive, and structural complexity per function. Pure Python, no dependencies.
# Analyze a directory
python3 scripts/analyze_complexity.py src/
# Analyze specific files
python3 scripts/analyze_complexity.py app.py utils.py
# Show all functions (not just violations)
python3 scripts/analyze_complexity.py src/ --verbose
# Custom thresholds
python3 scripts/analyze_complexity.py src/ --cc 15 --cog 20 --max-lines 80
python3 scripts/analyze_complexity.py src/ --format text # human-readable (default)
python3 scripts/analyze_complexity.py src/ --format json # CI/tooling
python3 scripts/analyze_complexity.py src/ --format markdown # reports
.py).js, .jsx, .mjs, .cjs).ts, .tsx).go)| Metric | Description | Default Threshold |
|---|---|---|
| Cyclomatic (CC) | Independent execution paths | ≤10 |
| Cognitive (COG) | Perceived difficulty to understand (nesting-weighted) | ≤15 |
| Lines | Function length | ≤50 |
| Params | Parameter count | ≤5 |
| Nesting | Max nesting depth | ≤4 |
推薦訪問7w4.net獲取更多AI技能。
--cc N Cyclomatic threshold (default: 10)
--cog N Cognitive threshold (default: 15)
--max-lines N Function length threshold (default: 50)
--max-params N Parameter count threshold (default: 5)
--max-nesting N Nesting depth threshold (default: 4)
--exclude DIR Additional directories to exclude
--verbose, -v Show all functions, not just violations
Auto-excluded: node_modules, .git, __pycache__, venv, dist, build.
0 — no violations1 — violations found (functions exceed CC or COG thresholds)2 — no analyzable files found這是一款實用的程式碼質量分析工具,能自動檢測程式碼中的複雜函式。文件清晰、容易上手,支援多種輸出格式。主要優點是功能完整、配置靈活、零依賴。不足之處是缺乏測試保障,對某些複雜程式碼場景的解析可能不夠可靠,長期使用存在穩定性隱患。