prefer-riverpod-notifier-suffix

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

Requires a Notifier suffix on classes extending resolved Riverpod notifiers. Package identities, including inherited identities and re-exports, distinguish Riverpod notifiers from lookalikes. Generated Dart files are ignored.

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;
import 'package:state_notifier/state_notifier.dart';
class Counter extends Notifier<int> {}
class AsyncCounter extends AsyncNotifier<int> {}
class StreamCounter extends StreamNotifier<int> {}
class AutoCounter extends AutoDisposeNotifier<int> {}
class FlutterCounter extends flutter.Notifier<int> {}
class HookCounter extends hooks.Notifier<int> {}
class LegacyCounter extends StateNotifier<int> {}
class BaseNotifier extends Notifier<int> {}
class Child extends BaseNotifier {}
Name Riverpod notifiers with a `Notifier` suffix.
4import 'package:state_notifier/state_notifier.dart';
5class Counter extends Notifier<int> {}
Name Riverpod notifiers with a `Notifier` suffix.
5class Counter extends Notifier<int> {}
6class AsyncCounter extends AsyncNotifier<int> {}
Name Riverpod notifiers with a `Notifier` suffix.
6class AsyncCounter extends AsyncNotifier<int> {}
7class StreamCounter extends StreamNotifier<int> {}
Name Riverpod notifiers with a `Notifier` suffix.
7class StreamCounter extends StreamNotifier<int> {}
8class AutoCounter extends AutoDisposeNotifier<int> {}
Name Riverpod notifiers with a `Notifier` suffix.
8class AutoCounter extends AutoDisposeNotifier<int> {}
9class FlutterCounter extends flutter.Notifier<int> {}
Name Riverpod notifiers with a `Notifier` suffix.
9class FlutterCounter extends flutter.Notifier<int> {}
10class HookCounter extends hooks.Notifier<int> {}
Name Riverpod notifiers with a `Notifier` suffix.
10class HookCounter extends hooks.Notifier<int> {}
11class LegacyCounter extends StateNotifier<int> {}
Name Riverpod notifiers with a `Notifier` suffix.
12class BaseNotifier extends Notifier<int> {}
13class Child extends BaseNotifier {}

Valid

example.dartdart
import 'package:riverpod/riverpod.dart' as rp;
class CounterNotifier extends rp.Notifier<int> {}
class AsyncCounterNotifier extends rp.AsyncNotifier<int> {}
class StreamCounterNotifier extends rp.StreamNotifier<int> {}
class AutoCounterNotifier extends rp.AutoDisposeNotifier<int> {}
class ChildNotifier extends CounterNotifier {}
class _PrivateNotifier extends rp.Notifier<int> {}
class Notifier<T> {}
class Unrelated extends Notifier<int> {}
class AsyncNotifier<T> {}
class UnrelatedAsync extends AsyncNotifier<int> {}
class Ordinary {}
class Missing extends UnknownNotifier<int> {}

Configure prefer-riverpod-notifier-suffix

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

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

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

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

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

  • 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.