Add example to flutter_lints package (#354)
diff --git a/.cirrus.yml b/.cirrus.yml
index 7df1c8e..a2c84ec 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -32,7 +32,7 @@
- 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
diff --git a/packages/flutter_lints/CHANGELOG.md b/packages/flutter_lints/CHANGELOG.md
index 32f490b..999b81d 100644
--- a/packages/flutter_lints/CHANGELOG.md
+++ b/packages/flutter_lints/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.1
+
+* Added an example project
+
## 1.0.0
* Initial release
diff --git a/packages/flutter_lints/example/README.md b/packages/flutter_lints/example/README.md
new file mode 100644
index 0000000..0f67ce6
--- /dev/null
+++ b/packages/flutter_lints/example/README.md
@@ -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.
diff --git a/packages/flutter_lints/example/analysis_options.yaml b/packages/flutter_lints/example/analysis_options.yaml
new file mode 100644
index 0000000..61b6c4d
--- /dev/null
+++ b/packages/flutter_lints/example/analysis_options.yaml
@@ -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
diff --git a/packages/flutter_lints/example/lib/main.dart b/packages/flutter_lints/example/lib/main.dart
new file mode 100644
index 0000000..ca062f2
--- /dev/null
+++ b/packages/flutter_lints/example/lib/main.dart
@@ -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;
+}
diff --git a/packages/flutter_lints/example/pubspec.yaml b/packages/flutter_lints/example/pubspec.yaml
new file mode 100644
index 0000000..0177756
--- /dev/null
+++ b/packages/flutter_lints/example/pubspec.yaml
@@ -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.
diff --git a/packages/flutter_lints/pubspec.yaml b/packages/flutter_lints/pubspec.yaml
index 1e6a8ab..6623a45 100644
--- a/packages/flutter_lints/pubspec.yaml
+++ b/packages/flutter_lints/pubspec.yaml
@@ -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:
diff --git a/packages/flutter_lints/run_tests.sh b/packages/flutter_lints/run_tests.sh
index 63369d6..b410603 100755
--- a/packages/flutter_lints/run_tests.sh
+++ b/packages/flutter_lints/run_tests.sh
@@ -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:'