Skip to main content

Presets

DCM includes 13 sets of predefined configurations:

  • All: contains all available lint rules for Dart and Flutter.
  • Recommended: contains recommended Dart and Flutter rules (with an emphasis on finding errors).
  • Dart: contains all lint rules applicable to any Dart app.
  • Flutter: contains all lint rules applicable to any Flutter app.
  • Bloc: contains lint rules for the Bloc package.
  • Equatable: contains lint rules for the Equatable package.
  • Flame: contains lint rules for the Flame package.
  • Provider: contains lint rules for the Provider package.
  • Patrol: contains lint rules for the Patrol package.
  • FakeAsync: contains lint rules for the FakeAsync package.
  • Intl: contains lint rules for the Intl package.
  • Pub: contains lint rules to check for issues in the pubspec.yaml file.
  • Recommended metrics: contains recommended configured metrics.
info

While presets are a great way to keep track of rule list updates, upgrading to a newer version of DCM can introduce new issues if the preset has been updated.

Consider this before choosing a preset.

Enabling a Preset

To enable a preset:

  1. Install dart_code_metrics_presets as a dev dependency:

    $ flutter pub add --dev dart_code_metrics_presets
  2. For DCM configuration add the extents entry:

    analysis_options.yaml
    dart_code_metrics:
    extends:
    - package:dart_code_metrics_presets/all.yaml
info

If you are reusing a shared configuration between multiple packages, they should all have dart_code_metrics_presets as dev dependency.

info

If the preset cannot be resolved, a preset-not-found warning will be shown.

Reconfiguring a Rule

To reconfigure a rule included into a preset:

analysis_options.yaml
dart_code_metrics:
extends:
- package:dart_code_metrics_presets/all.yaml
rules:
- arguments-ordering:
child-last: true

Disabling a Rule

To disable a rule set its configuration to : false:

analysis_options.yaml
dart_code_metrics:
extends:
- package:dart_code_metrics_presets/all.yaml
rules:
- avoid-banned-imports: false

Defining a Custom Preset

Any other preset can be passed to the extends entry. To create a custom preset create a yaml file with the same structure as for regular DCM configuration.