blob: 445941c8c03f698f770554fdb212e06ccc6117bb [file]
// Copyright 2014 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.
import 'package:analysis_server_plugin/plugin.dart';
import 'package:analysis_server_plugin/registry.dart';
import 'src/rules/avoid_future_catch_error.dart';
import 'src/rules/deprecation_syntax.dart';
import 'src/rules/golden_test_tags.dart';
import 'src/rules/integration_test_timeouts.dart';
import 'src/rules/issue_link_syntax.dart';
import 'src/rules/lazy_initialized_debug_expensive_fields.dart';
import 'src/rules/no_bad_imports_in_flutter.dart';
import 'src/rules/no_double_clamp.dart';
import 'src/rules/no_runtimetype_in_tostring.dart';
import 'src/rules/no_stopwatches.dart';
import 'src/rules/no_sync_async_star.dart';
import 'src/rules/no_test_imports.dart';
import 'src/rules/protect_public_state_subtypes.dart';
import 'src/rules/render_box_intrinsics.dart';
import 'src/rules/repository_link_syntax.dart';
import 'src/rules/skip_test_comments.dart';
import 'src/rules/taboo_documentation.dart';
final FlutterAnalyzerPlugin plugin = FlutterAnalyzerPlugin();
class FlutterAnalyzerPlugin extends Plugin {
@override
void register(PluginRegistry registry) {
registry
// Repo-wide warning rules (migrated from dev/bots/analyze.dart validations).
..registerWarningRule(DeprecationSyntax())
..registerWarningRule(GoldenTestTags())
..registerWarningRule(IntegrationTestTimeouts())
..registerWarningRule(IssueLinkSyntax())
..registerWarningRule(NoBadImportsInFlutter())
..registerWarningRule(NoSyncAsyncStar())
..registerWarningRule(NoTestImports())
..registerWarningRule(RepositoryLinkSyntax())
..registerWarningRule(SkipTestComments())
..registerWarningRule(TabooDocumentation())
// Package-specific lint rules (opt-in via diagnostics: in analysis_options.yaml).
..registerLintRule(AvoidFutureCatchError())
..registerLintRule(NoDoubleClamp())
..registerLintRule(NoRuntimeTypeInToString())
..registerLintRule(NoStopwatches())
..registerLintRule(LazyInitializedDebugExpensiveFields())
..registerLintRule(ProtectPublicStateSubtypes())
..registerLintRule(RenderBoxIntrinsicCalculationRule());
}
@override
String get name => 'flutter/flutter analyzer plugin';
}