OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer.src.task.options; | 5 library analyzer.src.task.options; |
6 | 6 |
7 import 'package:analyzer/analyzer.dart'; | 7 import 'package:analyzer/analyzer.dart'; |
8 import 'package:analyzer/plugin/options.dart'; | 8 import 'package:analyzer/plugin/options.dart'; |
9 import 'package:analyzer/source/analysis_options_provider.dart'; | 9 import 'package:analyzer/source/analysis_options_provider.dart'; |
10 import 'package:analyzer/src/generated/engine.dart'; | 10 import 'package:analyzer/src/generated/engine.dart'; |
| 11 import 'package:analyzer/src/generated/java_engine.dart'; |
11 import 'package:analyzer/src/generated/source.dart'; | 12 import 'package:analyzer/src/generated/source.dart'; |
12 import 'package:analyzer/src/task/general.dart'; | 13 import 'package:analyzer/src/task/general.dart'; |
13 import 'package:analyzer/task/general.dart'; | 14 import 'package:analyzer/task/general.dart'; |
14 import 'package:analyzer/task/model.dart'; | 15 import 'package:analyzer/task/model.dart'; |
15 import 'package:source_span/source_span.dart'; | 16 import 'package:source_span/source_span.dart'; |
16 import 'package:yaml/yaml.dart'; | 17 import 'package:yaml/yaml.dart'; |
17 | 18 |
18 /// The errors produced while parsing `.analysis_options` files. | 19 /// The errors produced while parsing `.analysis_options` files. |
19 /// | 20 /// |
20 /// The list will be empty if there were no errors, but will not be `null`. | 21 /// The list will be empty if there were no errors, but will not be `null`. |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 new OptionsFileValidator(source).validate(options); | 89 new OptionsFileValidator(source).validate(options); |
89 | 90 |
90 /// Return a map from the names of the inputs of this kind of task to the | 91 /// Return a map from the names of the inputs of this kind of task to the |
91 /// task input descriptors describing those inputs for a task with the | 92 /// task input descriptors describing those inputs for a task with the |
92 /// given [target]. | 93 /// given [target]. |
93 static Map<String, TaskInput> buildInputs(Source source) => | 94 static Map<String, TaskInput> buildInputs(Source source) => |
94 <String, TaskInput>{CONTENT_INPUT_NAME: CONTENT.of(source)}; | 95 <String, TaskInput>{CONTENT_INPUT_NAME: CONTENT.of(source)}; |
95 | 96 |
96 /// Compute [LineInfo] for the given [content]. | 97 /// Compute [LineInfo] for the given [content]. |
97 static LineInfo computeLineInfo(String content) { | 98 static LineInfo computeLineInfo(String content) { |
98 List<int> lineStarts = <int>[0]; | 99 List<int> lineStarts = StringUtilities.computeLineStarts(content); |
99 int length = content.length; | |
100 int unit; | |
101 for (int index = 0; index < length; index++) { | |
102 unit = content.codeUnitAt(index); | |
103 // Special-case \r\n. | |
104 if (unit == 0x0D /* \r */) { | |
105 // Peek ahead to detect a following \n. | |
106 if ((index + 1 < length) && content.codeUnitAt(index + 1) == 0x0A) { | |
107 // Line start will get registered at next index at the \n. | |
108 } else { | |
109 lineStarts.add(index + 1); | |
110 } | |
111 } | |
112 | |
113 if (unit == 0x0A) { | |
114 lineStarts.add(index + 1); | |
115 } | |
116 } | |
117 return new LineInfo(lineStarts); | 100 return new LineInfo(lineStarts); |
118 } | 101 } |
119 | 102 |
120 /// Create a task based on the given [target] in the given [context]. | 103 /// Create a task based on the given [target] in the given [context]. |
121 static GenerateOptionsErrorsTask createTask( | 104 static GenerateOptionsErrorsTask createTask( |
122 AnalysisContext context, AnalysisTarget target) => | 105 AnalysisContext context, AnalysisTarget target) => |
123 new GenerateOptionsErrorsTask(context, target); | 106 new GenerateOptionsErrorsTask(context, target); |
124 } | 107 } |
125 | 108 |
126 /// Validates `linter` top-level options. | 109 /// Validates `linter` top-level options. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 AnalysisOptionsWarningCode.UNSUPPORTED_OPTION, | 152 AnalysisOptionsWarningCode.UNSUPPORTED_OPTION, |
170 k.span, | 153 k.span, |
171 [pluginName, k.value]); | 154 [pluginName, k.value]); |
172 } | 155 } |
173 } | 156 } |
174 //TODO(pq): consider an error if the node is not a Scalar. | 157 //TODO(pq): consider an error if the node is not a Scalar. |
175 }); | 158 }); |
176 } | 159 } |
177 } | 160 } |
178 } | 161 } |
OLD | NEW |