Skip to content

Commit

Permalink
Add example to flutter_lints package (flutter#354)
Browse files Browse the repository at this point in the history
  • Loading branch information
goderbauer authored May 13, 2021
1 parent 1b5a369 commit f18ba69
Show file tree
Hide file tree
Showing 8 changed files with 99 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ task:
- name: format+analyze
format_script: ./script/tool_runner.sh format --fail-on-change --clang-format=clang-format-5.0
license_script: pub global run flutter_plugin_tools license-check
analyze_script: ./script/tool_runner.sh analyze --custom-analysis=web_benchmarks/testing/test_app
analyze_script: ./script/tool_runner.sh analyze --custom-analysis=web_benchmarks/testing/test_app,flutter_lints/example
- name: publishable
version_script: ./script/tool_runner.sh version-check
publishable_script: ./script/tool_runner.sh publish-check
Expand Down
4 changes: 4 additions & 0 deletions packages/flutter_lints/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 1.0.1

* Added an example project

## 1.0.0

* Initial release
16 changes: 16 additions & 0 deletions packages/flutter_lints/example/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
An example project that showcases how to enable the lint set from
`package:flutter_lints`, which contains recommended lints for Flutter apps,
packages, and plugins.

The `flutter_lints` packages is listed as a dev_dependency in the `pubspec.yaml`
file.

The lint set provided by the package is activated in the `analysis_options.yaml`
file. The lints enforced for this project can be further customized in that
file.

The Dart code in this project (e.g. `lib/main.dart`) is analyzed using the
lint configuration provided by `package:flutter_lints`.

The issues identified by the analyzer are surfaced in IDEs with Dart support or
by invoking `flutter analyze` from the command line.
29 changes: 29 additions & 0 deletions packages/flutter_lints/example/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# 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
33 changes: 33 additions & 0 deletions packages/flutter_lints/example/lib/main.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// The code in this file (and all other dart files in the package) is
// analyzed using the rules activated in `analysis_options.yaml`.

// The following syntax deactivates a lint for the entire file:
// ignore_for_file: avoid_renaming_method_parameters

void main() {
const String partOne = 'Hello';
const String partTwo = 'World';

// The following syntax deactivates a lint on a per-line bases:
print('$partOne $partTwo'); // ignore: avoid_print
}

abstract class Base {
int methodA(int foo);
String methodB(String foo);
}

// Normally, the parameter renaming from `foo` to `bar` in this class would
// trigger the `avoid_renaming_method_parameters` lint, but it has been
// deactivated for the file with the `ignore_for_file` comment above.
class Sub extends Base {
@override
int methodA(int bar) => bar;

@override
String methodB(String bar) => bar;
}
13 changes: 13 additions & 0 deletions packages/flutter_lints/example/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: example
description: A project that showcases how to enable the recommended lints for Flutter apps, packages, and plugins.

publish_to: none

environment:
sdk: '>=2.12.0 <3.0.0'

# Add the latest version of `package:flutter_lints` as a dev_dependency. The
# lint set provided by this package is activated in the `analysis_options.yaml`
# file located next to this `pubspec.yaml` file.
dev_dependencies:
flutter_lints: ^1.0.0 # Check https://pub.dev/packages/flutter_lints for latest version number.
2 changes: 1 addition & 1 deletion packages/flutter_lints/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: flutter_lints
description: Recommended lints for Flutter apps, packages, and plugins to encourage good coding practices.
version: 1.0.0
version: 1.0.1
homepage: https://github.com/flutter/packages/tree/master/packages/flutter_lints

environment:
Expand Down
3 changes: 2 additions & 1 deletion packages/flutter_lints/run_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

filecount=`find . -name '*.dart' | wc -l`
# Dart sources are only allowed in the example directory.
filecount=`find . -name '*.dart' ! -path './example/*' | wc -l`
if [ $filecount -ne 0 ]
then
echo 'Dart sources are not allowed in this package:'
Expand Down

0 comments on commit f18ba69

Please sign in to comment.