mirror of
https://github.com/flutter/packages.git
synced 2025-06-17 10:58:42 +08:00
Add flutter_lints package (#343)
This commit is contained in:

committed by
GitHub

parent
9e8f5227ac
commit
b17875fa0e
3
packages/flutter_lints/CHANGELOG.md
Normal file
3
packages/flutter_lints/CHANGELOG.md
Normal file
@ -0,0 +1,3 @@
|
||||
## 1.0.0-dev.0
|
||||
|
||||
* Initial pre-release
|
27
packages/flutter_lints/LICENSE
Normal file
27
packages/flutter_lints/LICENSE
Normal file
@ -0,0 +1,27 @@
|
||||
Copyright 2021, The Flutter Authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
* Neither the name of Google LLC nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
64
packages/flutter_lints/README.md
Normal file
64
packages/flutter_lints/README.md
Normal file
@ -0,0 +1,64 @@
|
||||
[](https://pub.dev/packages/flutter_lints)
|
||||
|
||||
This package contains a recommended set of lints for [Flutter] apps, packages,
|
||||
and plugins to encourage good coding practices.
|
||||
|
||||
Lints are surfaced by the [dart analyzer], which statically checks dart code.
|
||||
[Dart-enabled IDEs] typically present the issues identified by the analyzer in
|
||||
their UI. Alternatively, the analyzer can be invoked manually by running
|
||||
`flutter analyze`.
|
||||
|
||||
This package is built on top of Dart's `recommended.yaml` set of lints from
|
||||
[package:lints].
|
||||
|
||||
## Usage
|
||||
|
||||
Flutter apps, packages, and plugins created with `flutter create` starting with
|
||||
Flutter version 2.xx are already set up to use the lints defined in this
|
||||
package. Entities created before that version can use these lints by following
|
||||
these instructions:
|
||||
|
||||
1. Depend on this package as a **dev_dependency** by running
|
||||
`flutter pub add --dev flutter_lints`.
|
||||
2. Create an `analyzer_options.yaml` file at the root of the package (alongside
|
||||
the `pubspec.yaml` file) and `include: package:flutter_lints/flutter.yaml`
|
||||
from it.
|
||||
|
||||
Example `analyzer_options.yaml` file:
|
||||
|
||||
```yaml
|
||||
# This file configures the analyzer, which statically analyzes Dart code to
|
||||
# check for errors, warnings, and lints.
|
||||
#
|
||||
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
|
||||
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
|
||||
# invoked from the command line by running `flutter analyze`.
|
||||
|
||||
# The following line activates a set of recommended lints for Flutter apps,
|
||||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
|
||||
# included above or to enable additional rules. A list of all available lints
|
||||
# and their documentation is published at
|
||||
# https://dart-lang.github.io/linter/lints/index.html.
|
||||
#
|
||||
# Instead of disabling a lint rule for the entire project in the
|
||||
# section below, it can also be suppressed for a single line of code
|
||||
# or a specific dart file by using the `// ignore: name_of_lint` and
|
||||
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
|
||||
# producing the lint.
|
||||
rules:
|
||||
# avoid_print: false # Uncomment to disable the `avoid_print` rule
|
||||
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
||||
|
||||
# Additional information about this file can be found at
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
```
|
||||
|
||||
[Flutter]: https://flutter.dev
|
||||
[dart analyzer]: https://dart.dev/guides/language/analysis-options
|
||||
[Dart-enabled IDEs]: https://dart.dev/tools#ides-and-editors
|
||||
[package:lints]: https://pub.dev/packages/lints
|
17
packages/flutter_lints/lib/flutter.yaml
Normal file
17
packages/flutter_lints/lib/flutter.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
# Recommended lints for Flutter apps, packages, and plugins.
|
||||
|
||||
include: package:lints/recommended.yaml
|
||||
|
||||
linter:
|
||||
rules:
|
||||
- avoid_print
|
||||
- avoid_unnecessary_containers
|
||||
- avoid_web_libraries_in_flutter
|
||||
- no_logic_in_create_state
|
||||
- prefer_const_constructors
|
||||
- prefer_const_constructors_in_immutables
|
||||
- prefer_const_declarations
|
||||
- prefer_const_literals_to_create_immutables
|
||||
- sized_box_for_whitespace
|
||||
- use_full_hex_values_for_flutter_colors
|
||||
- use_key_in_widget_constructors
|
11
packages/flutter_lints/pubspec.yaml
Normal file
11
packages/flutter_lints/pubspec.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
name: flutter_lints
|
||||
description: Recommended lints for Flutter apps, packages, and plugins.
|
||||
version: 1.0.0-dev.0
|
||||
homepage: https://github.com/flutter/packages/tree/master/packages/flutter_lints
|
||||
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
|
||||
dependencies:
|
||||
lints: ^1.0.0-dev.0
|
||||
# Code is not allowed in this package. Do not add any dependencies or dev_dependencies.
|
9
packages/flutter_lints/run_tests.sh
Executable file
9
packages/flutter_lints/run_tests.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
filecount=`find . -name '*.dart' | wc -l`
|
||||
if [ $filecount -ne 0 ]
|
||||
then
|
||||
echo 'Dart sources are not allowed in this package:'
|
||||
find . -name '*.dart'
|
||||
exit 1
|
||||
fi
|
Reference in New Issue
Block a user