Skip to content
This repository was archived by the owner on Jul 24, 2022. It is now read-only.

dkrutskikh/code-checker

Repository files navigation

Code checker

Build Status codecov.io License Pub Version Dart SDK Version Dart Platform

Static source code analytics tool that helps analyse and improve quality, inspired by Wrike Dart code metrics. It provides additional rules for dart analyzer and collects code metrics.

Usage

Analyzer plugin

The plugin for the Dart analyzer provide information collected by metrics.

  1. Add dependency to pubspec.yaml

    dev_dependencies:
      code_checker: ^0.10.0
  2. Add configuration to analysis_options.yaml

    analyzer:
      plugins:
        - code_checker
    
    code_checker:
      metrics:
        cyclomatic-complexity: 20
        lines-of-code: 100
        maximum-nesting-level: 5
        number-of-methods: 10
        number-of-parameters: 4
        weight-of-class: 0.33
      metrics-exclude:
        - test/**
      rules:
        - double_literal_format
        - prefer_newline_before_return
        - prefer_trailing_comma

Command line tool

Full usage

Usage: checker [arguments] <directories>

-h, --help                                        Print this usage information.


-r, --reporter=<console>                          The format of the output of the analysis
                                                  [console (default), json]


    --cyclomatic-complexity=<20>                  Cyclomatic Complexity threshold
    --maximum-nesting-level=<5>                   Maximum Nesting Level threshold
    --number-of-methods=<10>                      Number of Methods threshold
    --number-of-parameters=<4>                    Number of Parameters threshold
    --weight-of-class=<0.33>                      Weight Of a Class threshold


    --root-folder=<./>                            Root folder
                                                  (defaults to current directory)
    --exclude=<{/**.g.dart,/**.template.dart}>    File paths in Glob syntax to be exclude
                                                  (defaults to "{/**.g.dart,/**.template.dart}")