Chromium Code Reviews| Index: pkg/analyzer/lib/source/analysis_options_provider.dart |
| diff --git a/pkg/analyzer/lib/source/analysis_options_provider.dart b/pkg/analyzer/lib/source/analysis_options_provider.dart |
| index b96ba5cebf2de765913c58eed54881cbc3005501..58bde71131078ed17872f4ddb7a0829026b3f3c2 100644 |
| --- a/pkg/analyzer/lib/source/analysis_options_provider.dart |
| +++ b/pkg/analyzer/lib/source/analysis_options_provider.dart |
| @@ -4,6 +4,8 @@ |
| library analyzer.source.analysis_options_provider; |
| +import 'dart:core' hide Resource; |
| + |
| import 'package:analyzer/file_system/file_system.dart'; |
| import 'package:analyzer/src/generated/engine.dart'; |
| import 'package:analyzer/src/util/yaml.dart'; |
| @@ -14,9 +16,15 @@ import 'package:yaml/yaml.dart'; |
| class AnalysisOptionsProvider { |
| /// Provide the options found in [root]/[ANALYSIS_OPTIONS_FILE]. |
| /// Return an empty options map if the file does not exist. |
| - Map<String, YamlNode> getOptions(Folder root) { |
| - var optionsSource = _readAnalysisOptionsFile( |
| - root.getChild(AnalysisEngine.ANALYSIS_OPTIONS_FILE)); |
| + Map<String, YamlNode> getOptions(Folder root, {bool crawlUp: false}) { |
| + Resource resource; |
| + for (Folder folder = root; folder != null; folder = folder.parent) { |
| + resource = folder.getChild(AnalysisEngine.ANALYSIS_OPTIONS_FILE); |
| + if (resource.exists || !crawlUp) { |
| + break; |
| + } |
| + } |
| + var optionsSource = _readAnalysisOptionsFile(resource); |
|
Brian Wilkerson
2016/03/23 22:16:57
type?
|
| return getOptionsFromString(optionsSource); |
| } |