rexios_lints

Creator: coderz1093

Last updated:

0 purchases

rexios_lints Image
rexios_lints Images
Add to Cart

Description:

rexios lints

These are the linting rules I use for my Flutter and Dart projects
Getting started #
Add this package to your dev_dependencies in pubspec.yaml:
dev_dependencies:
rexios_lints: latest
copied to clipboard
Goal #
The goal of these rules is to enforce code consistency without being annoying. All of the rules in this package were added because of real-life issues I've encountered in projects.
Usage #
This package includes four different sets of linting rules. Add the relevant line to the top of your analysis_options.yaml file.
Project:
include: package:rexios_lints/{dart|flutter}/core.yaml
copied to clipboard
Project with custom_lint enabled:
include: package:rexios_lints/{dart|flutter}/core_extra.yaml
copied to clipboard
Package:
include: package:rexios_lints/{dart|flutter}/package.yaml
copied to clipboard
Package with custom_lint enabled:
include: package:rexios_lints/{dart|flutter}/package_extra.yaml
copied to clipboard
Custom lints #
The extra rulesets include custom lint rules created with the custom_lint package. See the custom_lint documentation for help configuring custom lints.
To check for custom lint issues in CI run the following command:
dart run custom_lint
copied to clipboard
Justification #
core #
always_declare_return_types

Safety
Undeclared return types are dynamic. This is almost never intentional. Either declare void or explicitly declare dynamic.

always_use_package_imports

Readability
Relative imports make it hard to see where a file is coming from

avoid_types_on_closure_parameters

Brevity
The type checker can inform you of the type if you need to see it

conditional_uri_does_not_exist

Safety
Without this rule there is no warning if a conditional import does not exist

document_ignores

Technical debt
In the rare case that ignoring a lint rule is unavoidable, the reason should be documented

invalid_runtime_check_with_js_interop_types

Safety
Runtime type tests with JS interop types do not work on all platforms

leading_newlines_in_multiline_strings

Readability
Not all languages ignore a leading newline in multiline strings. Dart does, and it's more readable. No more remembering if Dart supports it or not.

omit_local_variable_types

Brevity
The type checker can inform you of the type if you need to see it

prefer_final_in_for_each

Safety
Prevents accidental reassignment

prefer_final_locals

Safety
Prevents accidental reassignment

prefer_single_quotes

Consistency
Enforces consistency with the rest of the Dart ecosystem

require_trailing_commas

Readability
Prevents excessively long lines

unawaited_futures

Safety
Ensures that async calls in async methods aren't accidentally ignored

unnecessary_breaks

Brevity
Switch cases no longer need explicit break statements as of Dart 3

unnecessary_lambdas

Brevity
Widgets using tear-offs can be declared const in some cases
This can expose unsafe usage of dynamic types

unnecessary_parenthesis

Brevity
It's easy to end up with extra parenthesis when refactoring

flutter/core #
use_colored_box

Performance
A ColoredBox is more performant than a Container with a color property

use_decorated_box

Performance
A DecoratedBox is more performant than a Container with a decoration property

package #
public_member_api_docs

Enforces documentation. Promotes code readability and maintenance. Also ensures a good documentation score from pana.

extra #
do_not_use_raw_paths

Safety
Raw path strings (e.g. '/path/to/file') are platform-specific. Use the join method from the path package instead.

prefer_async_await

Readability
async/await is more readable than Future.then

prefer_timestamps

Safety
Creating anything other than UTC timestamps with DateTime.timestamp() could lead to storing bad data

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.

Related Products

More From This Creator