Skip to main content

prefer-single-widget-per-file

added in: 1.6.0
⚙️
preset: recommended

Warns when a file contains more than a single widget.

Ensures that files have a single responsibility so that each widget exists in its own file.

⚙️ Config

Set ignore-private-widgets (default is false) to ignore private widgets.

dart_code_metrics:
...
rules:
...
- prefer-single-widget-per-file:
ignore-private-widgets: true

Example

❌ Bad:

some_widgets.dart

class SomeWidget extends StatelessWidget {

Widget build(BuildContext context) {
...
}
}

// LINT
class SomeOtherWidget extends StatelessWidget {

Widget build(BuildContext context) {
...
}
}

// LINT
class _SomeOtherWidget extends StatelessWidget {

Widget build(BuildContext context) {
...
}
}

// LINT
class SomeStatefulWidget extends StatefulWidget {

_SomeStatefulWidgetState createState() => _someStatefulWidgetState();
}

class _SomeStatefulWidgetState extends State<InspirationCard> {

Widget build(BuildContext context) {
...
}
}

✅ Good:

some_widget.dart

class SomeWidget extends StatelessWidget {

Widget build(BuildContext context) {
...
}
}

some_other_widget.dart

class SomeOtherWidget extends StatelessWidget {

Widget build(BuildContext context) {
...
}
}