dart_code_metrics 1.8.1 dart_code_metrics: ^1.8.1 copied to clipboard
Command line tool which helps to improve code quality. Reports cyclomatic complexity and method length in plain console, JSON, HTML and Codeclimate formats
Dart code metrics #
Dart code metrics is a static analysis tool that helps improve code quality. It analyzes code metrics and provides additional rules for dart analyzer. Can be used as a command line tool, analyzer plugin or library.
Reports:
- Cyclomatic complexity of methods
- Too long methods
- Number of Arguments
- Number of Methods
Output formats:
- Plain terminal
- Codeclimate
- HTML
- JSON
Usage #
Analyzer plugin #
A plugin for the Dart analyzer
library package providing additional rules from Dart code metrics.
-
Add dependency to
pubspec.yaml
dev_dependencies: dart_code_metrics: ^1.8.0
-
Add configuration to
analysis_options.yaml
analyzer: plugins: - dart_code_metrics dart_code_metrics: metrics: cyclomatic-complexity: 20 number-of-arguments: 4 metrics-exclude: - test/** rules: - newline-before-return - no-boolean-literal-compare - no-empty-block - prefer-trailing-comma-for-collection
Command line tool #
Simple usage:
pub global activate dart_code_metrics
metrics lib
Full usage:
Usage: metrics [options...] <directories>
-h, --help Print this usage information.
-r, --reporter=<console> The format of the output of the analysis
[console (default), json, html, codeclimate]
--cyclomatic-complexity=<20> Cyclomatic complexity threshold
(defaults to "20")
--lines-of-code=<50> Lines of code threshold
(defaults to "50")
--number-of-arguments=<4> Number of arguments threshold
(defaults to "4")
--number-of-methods=<10> Number of methods threshold
(defaults to "10")
--root-folder=<./> Root folder
(defaults to current directory)
--ignore-files=<{/**.g.dart,/**.template.dart}> Filepaths in Glob syntax to be ignored
(defaults to "{/**.g.dart,/**.template.dart}")
--verbose
--set-exit-on-violation-level=<warning> Set exit code 2 if code violations same or higher level than selected are detected
[noted, warning, alarm]
If you want command line tool to check rules, you should add configuration to your analysis_options.yaml
as listed in Analyzer plugin usage example.
Library #
Rules #
Common #
- binary-expression-operand-order
- double-literal-format
- member-ordering
- newline-before-return
- no-boolean-literal-compare
- no-empty-block
- no-magic-number
- no-object-declaration
- prefer-conditional-expressions
- prefer-trailing-comma-for-collection