nilts 0.4.0 copy "nilts: ^0.4.0" to clipboard
nilts: ^0.4.0 copied to clipboard

nilts is lint rules, quick fixes and assists for Dart and Flutter projects that helps you enforce best practices, and avoid errors.

nilts #

nilts is lint rules, quick fixes and assists for Dart and Flutter projects that helps you enforce best practices, and avoid errors.


Contents #

Usage #

nilts depends on custom_lint.
You should add nilts and custom_lint to your dev_dependencies in pubspec.yaml file.

dev_dependencies:
  custom_lint: <version>
  nilts: <version>

And also, add custom_lint to your analysis_options.yaml file.

analyzer:
  plugins:
    - custom_lint

Configuration #

You can configure all lint rules provided by nilts in analysis_options.yaml file.
Choice one of the following configuration strategies.

Disabling strategy #

All of nilts rules are enabled by default.
Add lint rule name and set false to disable it.

custom_lint:
  rules:
    # Disable particular lint rules if you want ignore them whole package.
    - unnecessary_rebuilds_from_media_query: false

Enabling strategy #

You can disable all lint rules depends on custom_lint by setting enable_all_lint_rules to false.
Add lint rule name and set true to enable it.

custom_lint:
  # Disable all lint rules depends on custom_lint.
  enable_all_lint_rules: false
  rules:
    - unnecessary_rebuilds_from_media_query: true

NOTE: If you enable_all_lint_rules set to false, all of lint rules (not only all of nilts's lint rules) depends on custom_lint will be disabled by default.

Lint rules and quick fixes #

Read below to learn about each lint rules intend to.
Some of lint rules support quick fixes on IDE.

Quick fix demo

Overview #

Rule name Overview Target SDK Rule type Maturity level Quick fix
fixed_text_scale_factor_rich_text Checks usage of textScaleFactor in RichText constructor. Any versions nilts supports Practice Experimental ✅️
flaky_tests_with_set_up_all Checks setUpAll usages. Any versions nilts supports Practice Experimental ✅️
unnecessary_rebuilds_from_media_query Checks MediaQuery.xxxOf(context) or MediaQuery.maybeXxxOf(context) usages. >= Flutter 3.10.0 (Dart 3.0.0) Practice Experimental ✅️

Details #

fixed_text_scale_factor_rich_text

  • Target SDK: Any versions nilts supports
  • Rule type: Practice
  • Maturity level: Experimental
  • Quick fix: ✅

Consider adding textScaleFactor argument to RichText constructor to make the text size responsive for user setting.

BAD:

RichText(
  text: TextSpan(
    text: 'Hello, world!',
  ),
)

GOOD:

RichText(
  text: TextSpan(
    text: 'Hello, world!',
  ),
  textScaleFactor: MediaQuery.textScaleFactorOf(context),
)

See also:

flaky_tests_with_set_up_all

  • Target SDK: Any versions nilts supports
  • Rule type: Practice
  • Maturity level: Experimental
  • Quick fix: ✅

Consider using setUp function or initialization on top level or body of test group. setUpAll may cause flaky tests with concurrency executions.

BAD:

setUpAll(() {
  // ...
});

GOOD:

setUp(() {
  // ...
});
void main() {
  // do initialization on top level
  // ...

 group('...', () {
  // or do initialization on body of test group
  // ...
 });
}

See also:

unnecessary_rebuilds_from_media_query

  • Target SDK: >= Flutter 3.10.0 (Dart 3.0.0)
  • Rule type: Practice
  • Maturity level: Experimental
  • Quick fix: ✅

Prefer using MediaQuery.xxxOf(context) or MediaQuery.maybeXxxOf(context) instead of MediaQuery.of(context) or MediaQuery.maybeOf(context) to avoid unnecessary rebuilds.

BAD:

final size = MediaQuery.of(context).size;

GOOD:

final size = MediaQuery.sizeOf(context);

Note that using MediaQuery.of(context) or MediaQuery.maybeOf(context) makes sense following cases:

  • wrap Widget with MediaQuery overridden MediaQueryData
  • observe all changes of MediaQueryData

See also:

Assists #

Upcoming... 🚀

Feature requests #

If you have any feature requests, please create an issue from this template.

Bug reports #

If you find any bugs, please create an issue from this template.

Contributing #

Welcome your contributions!!
Please read CONTRIBUTING docs before submitting your PR.

9
likes
0
points
656
downloads

Publisher

verified publisherronnnnn.com

Weekly Downloads

nilts is lint rules, quick fixes and assists for Dart and Flutter projects that helps you enforce best practices, and avoid errors.

Repository (GitHub)
View/report issues

Topics

#lints #lint #analysis #code-style #tools

License

unknown (license)

Dependencies

analyzer, analyzer_plugin, custom_lint_builder, meta

More

Packages that depend on nilts