- Notifications
You must be signed in to change notification settings - Fork29
Measure the churn/complexity ratio. Higher values mean hotspots where refactorings should happen.
License
simonrenoult/code-complexity
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Measure the churn/complexity score. Higher scores reveal hotspots whererefactorings should happen.
Quoting Michael Feathers (sourcehere):
Often when we refactor, we look at local areas of code. If we take a widerview, using information from our version control systems, we can get a bettersense of the effects of our refactoring efforts.
Note:code-complexity
currently measures complexity using either:
- lines of code count (all languages)
- cyclomatic complexity (JavaScript/TypeScript)
- halstead complexity (JavaScript/TypeScript)
$ npx code-complexity<path-to-git-directory or URL> [options]
Usage: code-complexity <target> [options] Measure the churn/complexity score. Higher values mean hotspots where refactorings should happen. Options: -V, --version output the version number --filter <strings> list of globs (comma separated) to filter -cs, --complexity-strategy [strategy] choose the complexity strategy to analyze your codebase with (allowed values: sloc, cyclomatic, halstead). -f, --format [format] format results using table, json or csv -l, --limit [limit] limit the number of files to output -i, --since [since] limit analysis to commits more recent in age than date -u, --until [until] limit analysis to commits older in age than date -s, --sort [sort] sort results (allowed valued: score, churn, complexity or file) -d, --directories display values for directories instead of files -h, --help display help for command Examples: $ code-complexity . $ code-complexity https://github.com/simonrenoult/code-complexity $ code-complexity foo --limit 3 $ code-complexity ../foo --sort score $ code-complexity /foo/bar --filter 'src/**,!src/front/**' $ code-complexity . --limit 10 --sort score $ code-complexity . --limit 10 --directories $ code-complexity . --limit 10 --sort score -cs halstead $ code-complexity . --since=2021-06-01 --limit 100 $ code-complexity . --since=2021-04-01 --until=2021-07-01
$ npx code-complexity https://github.com/simonrenoult/code-complexity --sort=score --limit=3┌──────────────────────────────┬────────────┬───────┬───────┐│ file │ complexity │ churn │ score │├──────────────────────────────┼────────────┼───────┼───────┤│ src/cli.ts │ 103 │ 8 │ 824 │├──────────────────────────────┼────────────┼───────┼───────┤│ test/code-complexity.test.ts │ 107 │ 7 │ 749 │├──────────────────────────────┼────────────┼───────┼───────┤│ .idea/workspace.xml │ 123 │ 6 │ 738 │└──────────────────────────────┴────────────┴───────┴───────┘
A special thanks to a few contributors that helped me makecode-complexity
better.
- Alexander Dormann (alexdo) for fixing the
ENOBUFS
(and apologies for stealing your code). - Scott Brooks (scottamplitude) for initiating the work on complexity strategies
About
Measure the churn/complexity ratio. Higher values mean hotspots where refactorings should happen.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors9
Uh oh!
There was an error while loading.Please reload this page.