equatable_analyzer 1.0.0
equatable_analyzer: ^1.0.0 copied to clipboard
A native analyzer plugin to ensure Equatable props are consistent.
Equatable Analyzer #
A Dart analyzer plugin that provides additional lint rules for the equatable package.
This plugin ensures that your Equatable classes are correctly implemented, preventing common bugs where properties are missing from the props list.
Features #
Rules #
missing_equatable_field
Detects when a final field in a class extending Equatable or using EquatableMixin is missing from the props getter.
Good:
class MyState extends Equatable {
final String id;
final String name;
const MyState(this.id, this.name);
@override
List<Object> get props => [id, name];
}
Bad:
class MyState extends Equatable {
final String id;
final String name; // Lint: The field 'name' is missing from props.
const MyState(this.id, this.name);
@override
List<Object> get props => [id];
}
Ignoring the rule:
To ignore the rule for a specific field, add an ignore comment above the field. Note: The rule ID must be prefixed with the package name.
class MyState extends Equatable {
final String id;
// ignore: equatable_analyzer/missing_equatable_field
final String temporaryValue;
const MyState(this.id, this.temporaryValue);
@override
List<Object> get props => [id];
}
Requirements #
- Dart SDK: >=3.10.4
Installation #
Please refer to the official documentation for how to add and enable analyzer plugins.
Example analysis_options.yaml:
plugins:
equatable_analyzer: ^1.0.0
Configuration #
Currently, rules are enabled by default when the plugin is active.
Contributing #
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.