reactter_lint 1.0.0 copy "reactter_lint: ^1.0.0" to clipboard
reactter_lint: ^1.0.0 copied to clipboard

Reactter_lint is an analytics tool for Reactter that helps developers to encourage good coding practices and preventing frequent problems.

Reactter


Pub Publisher Reactter Lint Pub points MIT License

Reactter_lint is an analytics tool for Reactter that helps developers to encourage good coding practices and preventing frequent problems using the conventions Reactter.

Contents #

Quickstart #

Run this command in your root project:

dart pub add -d reactter_lint custom_lint

And then include these lines of code into analysis_options.yaml:

analyzer:
  plugins:
    - custom_lint

Then you can see suggestions in your IDE or you can run checks manually:

dart run custom_lint

Lints #

hook_late_convention #

The hook late must be attached an instance.

Bad

Cause: ReactterHook cannot be late without attaching an instance.

class AppController {
  final otherState = UseState(0);
  late final stateLate = UseState(otherState.value);
  ...
}

Good

Fix: Use Reactter.lazyState for attaching an instance.

class AppController {
  final otherState = UseState(0);
  late final stateLate = Reactter.lazyState(
    () => UseState(otherState.value),
    this,
  );
  ...
}

hook_name_convention #

The hook name should be prefixed with use.

Bad

Cause: The hook name is not prefixed with use.

class MyHook extends ReactterHook {
  ...
}

Good

Fix: Name hook using use preffix.

class UseMyHook extends ReactterHook {
  ...
}

invalid_hook_position #

The hook must be defined after the hook register.

Bad

Cause: The hook cannot be defined before the hook register.

class UseMyHook extends ReactterHook {
  final stateHook = UseState(0);
  final $ = ReactterHook.$register;
  ...
}

Good

Fix: Define it after the hook register.

class UseMyHook extends ReactterHook {
  final $ = ReactterHook.$register;
  final stateHook = UseState(0);
  ...
}

invalid_hook_register #

The hook register('$' field) must be final only.

Bad

Cause: The hook register cannot be defined using getter.

class MyHook extends ReactterHook {
  get $ => ReactterHook.$register;
  ...
}

Cause: The hook register cannot be defined using setter.

class UseMyHook extends ReactterHook {
  set $(_) => ReactterHook.$register;
  ...
}

Cause: The hook register cannot be defined using var keyword.

class UseMyHook extends ReactterHook {
  var $ = ReactterHook.$register;
  ...
}

Cause: The hook register cannot be defined using a type.

class UseMyHook extends ReactterHook {
  Object $ = ReactterHook.$register;
  ...
}

Good

Fix: Define it using final keyword.

class UseMyHook extends ReactterHook {
  final $ = ReactterHook.$register;
  ...
}
3
likes
140
points
63
downloads

Publisher

unverified uploader

Weekly Downloads

Reactter_lint is an analytics tool for Reactter that helps developers to encourage good coding practices and preventing frequent problems.

Homepage
Repository (GitHub)

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

analyzer, analyzer_plugin, custom_lint_builder

More

Packages that depend on reactter_lint