analyzer: Move analysis options-validating code out of "task"
* OptionsValidator was defined in the `src/plugin/` directory (the only file in there), which I found confusing. Moved it to `src/analysis_options/`. * OptionsFileValidator, and a few related classes, were defined in the `src/task/` (the last file in there!), so I moved it to the same place. There is more to tidy in here, but this is a simple file-move. Change-Id: I8f4c5cc0ae4e76eb6c17249457c50ab69c82590d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443147 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>
This commit is contained in:
committed by
Commit Queue
parent
1dffc4a24c
commit
0ffd2849e4
@@ -18,6 +18,7 @@ import 'package:analyzer/file_system/overlay_file_system.dart';
|
||||
import 'package:analyzer/instrumentation/instrumentation.dart';
|
||||
import 'package:analyzer/source/file_source.dart';
|
||||
import 'package:analyzer/source/line_info.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
|
||||
import 'package:analyzer/src/dart/analysis/byte_store.dart';
|
||||
import 'package:analyzer/src/dart/analysis/driver.dart';
|
||||
@@ -28,7 +29,6 @@ import 'package:analyzer/src/dart/analysis/unlinked_unit_store.dart';
|
||||
import 'package:analyzer/src/generated/sdk.dart';
|
||||
import 'package:analyzer/src/manifest/manifest_validator.dart';
|
||||
import 'package:analyzer/src/pubspec/pubspec_validator.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
|
||||
import 'package:analyzer/src/workspace/blaze.dart';
|
||||
import 'package:analyzer/src/workspace/blaze_watcher.dart';
|
||||
|
||||
@@ -22,12 +22,12 @@ import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/source/file_source.dart';
|
||||
import 'package:analyzer/source/line_info.dart';
|
||||
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/dart/analysis/analysis_options.dart';
|
||||
import 'package:analyzer/src/dart/analysis/results.dart' as engine;
|
||||
import 'package:analyzer/src/exception/exception.dart';
|
||||
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
|
||||
import 'package:analyzer/src/pubspec/pubspec_validator.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
|
||||
import 'package:analyzer/src/workspace/pub.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
|
||||
|
||||
@@ -11,8 +11,8 @@ import 'package:analysis_server/src/services/correction/fix/analysis_options/fix
|
||||
import 'package:analyzer/source/file_source.dart';
|
||||
import 'package:analyzer/source/line_info.dart';
|
||||
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/util/performance/operation_performance.dart';
|
||||
import 'package:analyzer/src/workspace/pub.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
+1
-1
@@ -8,9 +8,9 @@ import 'package:analysis_server/src/services/completion/yaml/yaml_completion_gen
|
||||
import 'package:analyzer/dart/analysis/formatter_options.dart';
|
||||
import 'package:analyzer/error/error.dart';
|
||||
import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/dart/analysis/experiments.dart';
|
||||
import 'package:analyzer/src/lint/registry.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
|
||||
/// A completion generator that can produce completion suggestions for analysis
|
||||
/// options files.
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@
|
||||
|
||||
import 'package:analysis_server/src/services/completion/yaml/analysis_options_generator.dart';
|
||||
import 'package:analyzer/error/error.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/lint/linter.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/test_utilities/lint_registration_mixin.dart';
|
||||
import 'package:linter/src/rules.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
+1
-1
@@ -7,8 +7,8 @@ import 'package:analysis_server_plugin/edit/fix/fix.dart';
|
||||
import 'package:analyzer/analysis_rule/rule_state.dart';
|
||||
import 'package:analyzer/diagnostic/diagnostic.dart';
|
||||
import 'package:analyzer/source/file_source.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer_plugin/protocol/protocol_common.dart'
|
||||
hide AnalysisError;
|
||||
import 'package:analyzer_testing/resource_provider_mixin.dart';
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
import 'package:analyzer/diagnostic/diagnostic.dart';
|
||||
import 'package:analyzer/error/error.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/generated/engine.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/source/file_source.dart';
|
||||
import 'package:analyzer/source/source.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
|
||||
import 'package:analyzer/src/util/yaml.dart';
|
||||
import 'package:source_span/source_span.dart';
|
||||
|
||||
+1
-1
@@ -10,12 +10,12 @@ import 'package:analyzer/source/error_processor.dart';
|
||||
import 'package:analyzer/source/source.dart';
|
||||
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
|
||||
import 'package:analyzer/src/analysis_options/error/option_codes.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_validator.dart';
|
||||
import 'package:analyzer/src/dart/analysis/experiments.dart';
|
||||
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
|
||||
import 'package:analyzer/src/generated/utilities_general.dart';
|
||||
import 'package:analyzer/src/lint/options_rule_validator.dart';
|
||||
import 'package:analyzer/src/lint/registry.dart';
|
||||
import 'package:analyzer/src/plugin/options.dart';
|
||||
import 'package:analyzer/src/util/yaml.dart';
|
||||
import 'package:analyzer/src/utilities/extensions/string.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
@@ -0,0 +1,16 @@
|
||||
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
/// Support for client code that wants to consume options contributed to the
|
||||
/// analysis options file.
|
||||
library;
|
||||
|
||||
import 'package:analyzer/error/listener.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
/// A class that validates options as defined in an analysis options file.
|
||||
abstract class OptionsValidator {
|
||||
/// Validate [options], reporting any errors to the given [reporter].
|
||||
void validate(DiagnosticReporter reporter, YamlMap options);
|
||||
}
|
||||
@@ -12,13 +12,13 @@ import 'package:analyzer/error/error.dart';
|
||||
import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/source/error_processor.dart';
|
||||
import 'package:analyzer/src/analysis_options/code_style_options.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/dart/analysis/experiments.dart';
|
||||
import 'package:analyzer/src/generated/utilities_general.dart' show toBool;
|
||||
import 'package:analyzer/src/lint/config.dart';
|
||||
import 'package:analyzer/src/lint/linter.dart';
|
||||
import 'package:analyzer/src/lint/registry.dart';
|
||||
import 'package:analyzer/src/summary/api_signature.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/util/yaml.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:pub_semver/pub_semver.dart';
|
||||
|
||||
@@ -7,11 +7,11 @@ import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/file_system/physical_file_system.dart'
|
||||
show PhysicalResourceProvider;
|
||||
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/context/packages.dart';
|
||||
import 'package:analyzer/src/dart/analysis/analysis_options.dart';
|
||||
import 'package:analyzer/src/dart/analysis/context_root.dart';
|
||||
import 'package:analyzer/src/lint/pub.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
|
||||
import 'package:analyzer/src/util/yaml.dart';
|
||||
import 'package:analyzer/src/utilities/extensions/file_system.dart';
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// for details. 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:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/util/yaml.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
import 'package:analyzer/diagnostic/diagnostic.dart';
|
||||
import 'package:analyzer/error/listener.dart';
|
||||
import 'package:analyzer/src/analysis_options/error/option_codes.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_validator.dart';
|
||||
import 'package:analyzer/src/lint/linter.dart';
|
||||
import 'package:analyzer/src/lint/registry.dart';
|
||||
import 'package:analyzer/src/plugin/options.dart';
|
||||
import 'package:analyzer/src/util/yaml.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:pub_semver/pub_semver.dart';
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
/// Support for client code that wants to consume options contributed to the
|
||||
/// analysis options file.
|
||||
library;
|
||||
|
||||
import 'package:analyzer/error/listener.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
/// Validates options as defined in an analysis options file.
|
||||
///
|
||||
/// The options file format is intentionally very open-ended, giving clients
|
||||
/// utmost flexibility in defining their own options. The only hard and fast
|
||||
/// expectation is that options files will contain a mapping from Strings
|
||||
/// (identifying 'scopes') to associated options. For example, the given
|
||||
/// content
|
||||
///
|
||||
/// linter:
|
||||
/// rules:
|
||||
/// camel_case_types: true
|
||||
/// compiler:
|
||||
/// resolver:
|
||||
/// useMultiPackage: true
|
||||
/// packagePaths:
|
||||
/// - /foo/bar/pkg
|
||||
/// - /bar/baz/pkg
|
||||
///
|
||||
/// defines two scopes, `linter` and `compiler`. Parsing would result in a
|
||||
/// map, mapping the `linter` and `compiler` scope identifiers to their
|
||||
/// respective parsed option node contents. Extracting values is a simple
|
||||
/// matter of inspecting the parsed nodes. For example, testing whether the
|
||||
/// compiler's resolver is set to use the `useMultiPackage` option might look
|
||||
/// something like this (eliding error-checking):
|
||||
///
|
||||
/// bool useMultiPackage =
|
||||
/// options['compiler']['resolver']['useMultiPackage'];
|
||||
///
|
||||
/// Clients may implement this class when implementing plugins.
|
||||
///
|
||||
abstract class OptionsValidator {
|
||||
/// Validate [options], reporting any errors to the given [reporter].
|
||||
void validate(DiagnosticReporter reporter, YamlMap options);
|
||||
}
|
||||
+1
-1
@@ -3,10 +3,10 @@
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:_fe_analyzer_shared/src/base/errors.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/context/source.dart';
|
||||
import 'package:analyzer/src/file_system/file_system.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/test_utilities/lint_registration_mixin.dart';
|
||||
import 'package:analyzer_testing/resource_provider_mixin.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
+1
-1
@@ -7,11 +7,11 @@ import 'dart:mirrors';
|
||||
import 'package:analyzer/diagnostic/diagnostic.dart';
|
||||
import 'package:analyzer/error/error.dart';
|
||||
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/error/codes.dart';
|
||||
import 'package:analyzer/src/file_system/file_system.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer/src/lint/linter.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/test_utilities/lint_registration_mixin.dart';
|
||||
import 'package:analyzer_testing/resource_provider_mixin.dart';
|
||||
import 'package:test/test.dart';
|
||||
@@ -5,12 +5,14 @@
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import 'analysis_options_test.dart' as analysis_options;
|
||||
import 'options_file_validator_test.dart' as options_file_validator;
|
||||
import 'options_provider_test.dart' as options_provider;
|
||||
import 'options_rule_validator_test.dart' as options_rule_validator;
|
||||
|
||||
main() {
|
||||
defineReflectiveSuite(() {
|
||||
analysis_options.main();
|
||||
options_file_validator.main();
|
||||
options_provider.main();
|
||||
options_rule_validator.main();
|
||||
}, name: 'options');
|
||||
|
||||
@@ -4,12 +4,10 @@
|
||||
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import 'options_test.dart' as options_test;
|
||||
import 'strong/test_all.dart' as strong_mode_test_all;
|
||||
|
||||
main() {
|
||||
defineReflectiveSuite(() {
|
||||
options_test.main();
|
||||
strong_mode_test_all.main();
|
||||
}, name: 'task');
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import 'package:analyzer/file_system/file_system.dart';
|
||||
import 'package:analyzer/file_system/physical_file_system.dart';
|
||||
import 'package:analyzer/source/file_source.dart';
|
||||
import 'package:analyzer/source/line_info.dart';
|
||||
import 'package:analyzer/src/analysis_options/options_file_validator.dart';
|
||||
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
|
||||
import 'package:analyzer/src/dart/analysis/analysis_options.dart';
|
||||
import 'package:analyzer/src/dart/analysis/byte_store.dart';
|
||||
@@ -24,7 +25,6 @@ import 'package:analyzer/src/generated/sdk.dart';
|
||||
import 'package:analyzer/src/manifest/manifest_validator.dart';
|
||||
import 'package:analyzer/src/pubspec/pubspec_validator.dart';
|
||||
import 'package:analyzer/src/source/path_filter.dart';
|
||||
import 'package:analyzer/src/task/options.dart';
|
||||
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
|
||||
import 'package:analyzer/src/util/yaml.dart';
|
||||
import 'package:analyzer/src/workspace/pub.dart';
|
||||
|
||||
Reference in New Issue
Block a user