Loading repository dataβ¦
Loading repository dataβ¦
VeryGoodOpenSource / repository
Lint rules for Dart and Flutter used internally at Very Good Ventures π¦
Developed with π by Very Good Ventures π¦
This package provides lint rules for Dart and Flutter which are used at Very Good Ventures. For more information, see the complete list of options.
Note: This package was heavily inspired by pedantic.
To use the lints, add as a dev dependency in your pubspec.yaml:
dart pub add dev:very_good_analysis
# or
flutter pub add dev:very_good_analysis
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.10.0.0.yaml
There may be cases where specific lint rules are undesirable. Lint rules can be suppressed 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.
To suppress 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 {}
To suppress 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 {}
To suppress 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
To indicate your project is using very_good_analysis β
[](https://pub.dev/packages/very_good_analysis)
Below is a list of rules that are not enabled by default together with the reason on why they have been excluded:
| Rule | Reason |
|---|---|
always_put_control_body_on_new_line | Can conflict with the Dart formatter |
always_specify_types | Incompatible with omit_local_variable_types |
annotate_redeclares | Experimental |
avoid_annotating_with_dynamic | Not specified |
avoid_classes_with_only_static_members | Not specified |
avoid_futureor_void | Experimental |
avoid_implementing_value_types | We need to implement value types for mocks/fakes in tests |
avoid_null_checks_in_equality_operators | Has been deprecated and will be removed |
close_sinks | Has unresolved false positives |
diagnostic_describe_all_properties | Not specified |
do_not_use_environment | Not specified |
library_names | Superseded by unnecessary_library_name |
omit_obvious_local_variable_types | Experimental |
omit_obvious_property_types | Incompatible with type_annotate_public_apis |
package_prefixed_library_names | Broken; superseded by unnecessary_library_name |
prefer_double_quotes | Incompatible with prefer_single_quotes |
prefer_expression_function_bodies | Not specified |
prefer_final_parameters | Incompatible with avoid_final_parameters |
prefer_for_elements_to_map_fromiterable | Not specified |
prefer_relative_imports | Incompatible with always_use_package_imports |
prefer_void_to_null | Has unresolved false positives |
specify_nonobvious_local_variable_types | Experimental |
unnecessary_async | Experimental |
unnecessary_final | Incompatible with prefer_final_locals |
unsafe_variance | Experimental |
use_decorated_box | Has unresolved malfunctions |