prefer-riverpod-provider-suffix

Group
Style
Path
lint/style/prefer-riverpod-provider-suffix
Default
Off, opt in
Origin
Falcon
Domain
riverpod
Rule
402 of 512
riverpod

Requires a Provider suffix on resolved Riverpod top-level providers and static fields.

Invalid

example.dartdart
import 'package:riverpod/riverpod.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart' as flutter;
import 'package:hooks_riverpod/hooks_riverpod.dart' as hooks;
final count = Provider<int>((ref) => 0);
final future = FutureProvider<int>((ref) => 0);
final stream = StreamProvider<int>((ref) => 0);
final family = ProviderFamily<int, int>((ref, arg) => arg);
final disposed = AutoDisposeProvider<int>((ref) => 0);
final flutterCount = flutter.Provider<int>((ref) => 0);
final hooksCount = hooks.Provider<int>((ref) => 0);
Provider<int>? typed;
class Providers {
  static final count = Provider<int>((ref) => 0);
}
Name Riverpod providers with a `Provider` suffix.
3import 'package:hooks_riverpod/hooks_riverpod.dart' as hooks;
4final count = Provider<int>((ref) => 0);
Name Riverpod providers with a `Provider` suffix.
4final count = Provider<int>((ref) => 0);
5final future = FutureProvider<int>((ref) => 0);
Name Riverpod providers with a `Provider` suffix.
5final future = FutureProvider<int>((ref) => 0);
6final stream = StreamProvider<int>((ref) => 0);
Name Riverpod providers with a `Provider` suffix.
6final stream = StreamProvider<int>((ref) => 0);
7final family = ProviderFamily<int, int>((ref, arg) => arg);
Name Riverpod providers with a `Provider` suffix.
7final family = ProviderFamily<int, int>((ref, arg) => arg);
8final disposed = AutoDisposeProvider<int>((ref) => 0);
Name Riverpod providers with a `Provider` suffix.
8final disposed = AutoDisposeProvider<int>((ref) => 0);
9final flutterCount = flutter.Provider<int>((ref) => 0);
Name Riverpod providers with a `Provider` suffix.
9final flutterCount = flutter.Provider<int>((ref) => 0);
10final hooksCount = hooks.Provider<int>((ref) => 0);
Name Riverpod providers with a `Provider` suffix.
10final hooksCount = hooks.Provider<int>((ref) => 0);
11Provider<int>? typed;
Name Riverpod providers with a `Provider` suffix.
12class Providers {
13 static final count = Provider<int>((ref) => 0);

Valid

example.dartdart
import 'package:riverpod/riverpod.dart' as rp;
final countProvider = rp.Provider<int>((ref) => 0);
final futureProvider = rp.FutureProvider<int>((ref) => 0);
final streamProvider = rp.StreamProvider<int>((ref) => 0);
final familyProvider = rp.ProviderFamily<int, int>((ref, arg) => arg);
final autoProvider = rp.AutoDisposeProvider<int>((ref) => 0);
class Providers {
  static final countProvider = rp.Provider<int>((ref) => 0);
  final instance = rp.Provider<int>((ref) => 0);
}
void localValues() { final local = rp.Provider<int>((ref) => 0); }
class Provider<T> { Provider(T Function(Object) create); }
final unrelated = Provider<int>((ref) => 0);
final ordinary = 0;

Configure prefer-riverpod-provider-suffix

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "prefer-riverpod-provider-suffix": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/prefer-riverpod-provider-suffix: <reason>
  • prefer-single-quotesprefer_single_quotes

    Flags double-quoted string literals that could use single quotes without needing an escape.

  • prefer-sized-box-squareflutter

    Prefers SizedBox.square for an unnamed Flutter SizedBox whose explicit width and height are stable variable reads or numeric literals with identical token spelling.

  • prefer-spread-collectionsprefer_spread_collectionsrecommended

    Flags an addAll cascade 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.

  • prefer-trailing-commaprefer-trailing-comma

    Flags multi-line argument lists that are missing a trailing comma.

  • prefer-transform-over-containerflutter

    Prefers Transform over a Container used only for transform.

  • prefer-type-over-var

    Prefer explicit types over var in ordinary variable declarations.