very_good_analysis 2.0.0-nullsafety.0 very_good_analysis: ^2.0.0-nullsafety.0 copied to clipboard
Very Good Dart analyzer settings and best practices used internally at Very Good Ventures.
Very Good Analysis #
Developed with 💙 by Very Good Ventures 🦄
This package provides Dart linter rules which are used at Very Good Ventures. For more information, see the complete list of options.
Note: This package is heavily inspired by and has a dependency on pedantic.
Usage #
To use the lints, add a dependency in your pubspec.yaml
:
# If you use `package:very_good_analysis/very_good_analysis.dart`, add a normal dependency.
dependencies:
very_good_analysis: ^1.0.0
# Or, if you just want `analysis_options.yaml`, it can be a dev dependency.
dev_dependencies:
very_good_analysis: ^1.0.0
Then, add an include in analysis_options.yaml
:
include: package:very_good_analysis/analysis_options.yaml
This will ensure you always use the latest version of the lints. If you wish to restrict the lint version, specify a version of analysis_options.yaml
instead:
include: package:very_good_analysis/analysis_options.1.0.0.yaml
Suppressing Lints #
There may be cases where specific lint rules are undesirable. Lint rules can be surpressed at the line, file, or project level.
An example use case for suppressing lint rules at the file level is suppressing the prefer_const_constructors
in order to achieve 100% code coverage. This is due to the fact that const constructors are executed before the tests are run, resulting in no coverage collection.
Line Level #
To surpress a specific lint rule for a specific line of code, use an ignore
comment directly above the line:
// ignore: public_member_api_docs
class A {}
File Level #
To surpress a specific lint rule of a specific file, use an ignore_for_file
comment at the top of the file:
// ignore_for_file: public_member_api_docs
class A {}
class B {}
Project Level #
To surpress a specific lint rule for an entire project, modify analysis_options.yaml
:
include: package:very_good_analysis/analysis_options.yaml
linter:
rules:
public_member_api_docs: false
Badge #
To indicate your project is using very_good_analysis
→
[![style: very good analysis](https://img.shields.io/badge/style-very_good_analysis-B22C89.svg)](https://pub.dev/packages/very_good_analysis)