dart_code_metrics 2.3.2 dart_code_metrics: ^2.3.2 copied to clipboard
Software analytics tool that helps developers analyse and improve software quality.
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
- Lines of Executable Code
- Maximum Nesting
- Number of Arguments
- Number of Methods
Output formats:
- Plain terminal
- GitHub
- 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: ^2.0.0
-
Add configuration to
analysis_options.yaml
analyzer: plugins: - dart_code_metrics dart_code_metrics: anti-patterns: - long-method metrics: cyclomatic-complexity: 20 lines-of-executable-code: 50 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
Flutter usage
flutter pub global activate dart_code_metrics
flutter pub global run 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), github, json, html, codeclimate]
--verbose Additional flag for Console reporter
--gitlab Additional flag for Code Climate reporter to report in GitLab Code Quality format
--cyclomatic-complexity=<20> Cyclomatic complexity threshold
--lines-of-executable-code=<50> Lines of executable code threshold
--number-of-arguments=<4> Number of arguments threshold
--number-of-methods=<10> Number of methods threshold
--maximum-nesting=<5> Maximum nesting threshold
--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}")
--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 #
Anti-Patterns #
Rules #
Common #
- binary-expression-operand-order
- double-literal-format
- member-ordering
- newline-before-return
- no-boolean-literal-compare
- no-empty-block
- no-equal-arguments
- no-equal-then-else
- no-magic-number
- no-object-declaration
- potential-null-dereference
- prefer-conditional-expressions
- prefer-trailing-comma-for-collection
- prefer-trailing-comma