Domains
Domains group rules by the framework they apply to. Toggle a whole domain in falcon.json under linter.domains — see the configuration reference.
flutter
Rules that only make sense in a Flutter project — widget construction, lifecycle, and framework APIs. Enable the domain to turn them all on at once. 23 rules.
Flags calls to the top-level `print` function.
Disallow functions and methods that return a `Widget`.
Flags a `Column`, `Row`, or `Flex` widget built with a single child.
Flags a `Container` whose only argument is a `child`.
Disallow importing web-only `dart:` libraries from Flutter code.
Require `super.dispose()` to be the last call in `dispose`.
Require `createState` to do nothing but return a new `State` instance.
Flags the type `Future<void> Function()` in favor of Flutter's `AsyncCallback`.
Flags `BorderRadius.only(...)` whose four corner radii are all equal.
Flags an `EdgeInsets.only(...)` that a more specific constructor expresses better.
Flags a constructor that could be declared `const` but is not.
Flags `MediaQuery.of(context).size` access in favor of `MediaQuery.sizeOf`.
Flags an inline block-body callback passed to a widget constructor that should be extracted to a method.
Require controllers owned by a `State` to be disposed.
Require `Expanded` and `Flexible` to sit directly inside a flex widget.
Require `super.initState()` to be the first call in `initState`.
Flags a `Container` used only to add fixed `width`/`height` whitespace.
Flags a `child` or `children` argument that is not the last named argument in a widget constructor call.
Disallow Flutter framework imports that the file does not use.
Flags construction of a widget or type that should be replaced by its design-system equivalent.
Flags a `Color` constructed from a hexadecimal literal with fewer than eight digits.
Require Riverpod once-providers to be created through `.once()`.
Flags an `Expanded` wrapping an empty `SizedBox` or `Container` that should be a `Spacer`.