prefer-provider-extensions
- Group
- Style
- Path
lint/style/prefer-provider-extensions- Default
- Off, opt in
- Origin
- Falcon
- Domain
- provider
- Rule
- 394 of 512
Prefer context.read/watch when provider extensions are in scope.
Invalid
import 'package:flutter/widgets.dart';
import 'package:provider/provider.dart';
import 'package:provider/provider.dart' as p;
void examples(BuildContext context) {
Provider.of<int>(context);
Provider.of<String>(context, listen: true);
Provider.of<Object>(context, listen: false);
p.Provider.of<int>(context);
p.Provider.of<String>(context, listen: (false));
}void examples(BuildContext context) { Provider.of<int>(context); Provider.of<int>(context); Provider.of<String>(context, listen: true); Provider.of<String>(context, listen: true); Provider.of<Object>(context, listen: false); Provider.of<Object>(context, listen: false); p.Provider.of<int>(context); p.Provider.of<int>(context); p.Provider.of<String>(context, listen: (false));Valid
import 'package:flutter/widgets.dart';
import 'package:provider/provider.dart';
import 'package:provider/provider.dart' as p;
void examples(BuildContext context, bool listen) {
context.read<int>();
context.watch<int>();
Provider.of<int>(context, listen: listen);
p.Provider<int>(create: (_) => 1);
p.Provider.value(value: 1);
}
void shadowed(BuildContext context, dynamic Provider) {
Provider.of<int>(context);
}
void shadowedPrefix(BuildContext context, dynamic p) {
p.Provider.of<int>(context);
}Configure prefer-provider-extensions
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"style": {
"prefer-provider-extensions": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/style/prefer-provider-extensions: <reason>More style rules
- prefer-returning-condition
Flags an
ifreturning a boolean literal followed by the opposite literal. - prefer-riverpod-notifier-suffixriverpod
Requires a
Notifiersuffix on classes extending resolved Riverpod notifiers. - prefer-riverpod-provider-suffixriverpod
Requires a Provider suffix on resolved Riverpod top-level providers and static fields.
- prefer-single-quotes
prefer_single_quotesFlags double-quoted string literals that could use single quotes without needing an escape.
- prefer-sized-box-squareflutter
Prefers SizedBox.square for an unnamed Flutter
SizedBoxwhose explicit width and height are stable variable reads or numeric literals with identical token spelling. - prefer-spread-collections
prefer_spread_collectionsrecommendedFlags an
addAllcascade on a collection literal that a spread would express. - prefer-switch-expression
Prefer switch expressions for exhaustive switches that only return or assign a value.
- prefer-test-matcherstest
Recommends Matcher expectations and direct type, equality, or ordering matchers.