Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: pkg/analysis_server/lib/src/context_manager.dart

Issue 2545553007: Add support for generating lints when using the new driver (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/context_manager.dart
diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart
index 19737b8cabaac87494304f16e50c82438035c5a3..41af5d9316c7eaa5667ced58e2c08671e22df760 100644
--- a/pkg/analysis_server/lib/src/context_manager.dart
+++ b/pkg/analysis_server/lib/src/context_manager.dart
@@ -34,6 +34,9 @@ import 'package:analyzer/src/task/options.dart';
import 'package:analyzer/src/util/absolute_path.dart';
import 'package:analyzer/src/util/glob.dart';
import 'package:analyzer/src/util/yaml.dart';
+import 'package:linter/src/config.dart';
+import 'package:linter/src/linter.dart';
+import 'package:linter/src/rules.dart';
import 'package:package_config/packages.dart';
import 'package:package_config/packages_file.dart' as pkgfile show parse;
import 'package:package_config/src/packages_impl.dart' show MapPackages;
@@ -683,7 +686,7 @@ class ContextManagerImpl implements ContextManager {
if (options == null && !optionsRemoved) {
return;
}
- AnalysisOptions analysisOptions = info.analysisDriver.analysisOptions;
+ AnalysisOptionsImpl analysisOptions = info.analysisDriver.analysisOptions;
// In case options files are removed, revert to defaults.
if (optionsRemoved) {
@@ -703,18 +706,15 @@ class ContextManagerImpl implements ContextManager {
}
}
- // TODO(brianwilkerson) Figure out what to do here.
-// // Notify options processors.
-// AnalysisEngine.instance.optionsPlugin.optionsProcessors
-// .forEach((OptionsProcessor p) {
-// try {
-// p.optionsProcessed(info.context, options);
-// } catch (e, stacktrace) {
-// AnalysisEngine.instance.logger.logError(
-// 'Error processing analysis options',
-// new CaughtException(e, stacktrace));
-// }
-// });
+ var lintOptions = options['linter'];
+ if (lintOptions != null) {
+ LintConfig config = new LintConfig.parseMap(lintOptions);
+ Iterable<LintRule> lintRules = ruleRegistry.enabled(config);
+ if (lintRules.isNotEmpty) {
+ analysisOptions.lint = true;
+ analysisOptions.lintRules = lintRules.toList();
+ }
+ }
applyToAnalysisOptions(analysisOptions, options);

Powered by Google App Engine
This is Rietveld 408576698