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

Unified Diff: pkg/analyzer/lib/src/lint/config.dart

Issue 2561573003: Revert "Move the linter core to the analyzer package" (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
« no previous file with comments | « pkg/analyzer/lib/src/lint/analysis.dart ('k') | pkg/analyzer/lib/src/lint/io.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/lint/config.dart
diff --git a/pkg/analyzer/lib/src/lint/config.dart b/pkg/analyzer/lib/src/lint/config.dart
deleted file mode 100644
index f33b3f3392b77e7e7cc99efc55c936e322aa360e..0000000000000000000000000000000000000000
--- a/pkg/analyzer/lib/src/lint/config.dart
+++ /dev/null
@@ -1,243 +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.
-
-import 'package:yaml/yaml.dart';
-
-/**
- * Parse the given map into a lint config.
- */
-LintConfig parseConfig(Map optionsMap) {
- if (optionsMap != null) {
- var options = optionsMap['linter'];
- // Quick check of basic contract.
- if (options is Map) {
- return new LintConfig.parseMap(options);
- }
- }
- return null;
-}
-
-/**
- * Process the given option [fileContents] and produce a corresponding
- * [LintConfig].
- */
-LintConfig processAnalysisOptionsFile(String fileContents, {String fileUrl}) {
- var yaml = loadYamlNode(fileContents, sourceUrl: fileUrl);
- if (yaml is YamlMap) {
- return parseConfig(yaml);
- }
- return null;
-}
-
-/**
- * The configuration of lint rules within an analysis options file.
- */
-abstract class LintConfig {
- factory LintConfig.parse(String source, {String sourceUrl}) =>
- new _LintConfig().._parse(source, sourceUrl: sourceUrl);
-
- factory LintConfig.parseMap(Map map) => new _LintConfig().._parseMap(map);
-
- List<String> get fileExcludes;
- List<String> get fileIncludes;
- List<RuleConfig> get ruleConfigs;
-}
-
-/**
- * The configuration of a single lint rule within an analysis options file.
- */
-abstract class RuleConfig {
- Map<String, dynamic> args = <String, dynamic>{};
- String get group;
- String get name;
-
- // Provisional
- bool disables(String ruleName) =>
- ruleName == name && args['enabled'] == false;
-
- bool enables(String ruleName) => ruleName == name && args['enabled'] == true;
-}
-
-class _LintConfig implements LintConfig {
- @override
- final fileIncludes = <String>[];
- @override
- final fileExcludes = <String>[];
- @override
- final ruleConfigs = <RuleConfig>[];
-
- void addAsListOrString(value, List<String> list) {
- if (value is List) {
- value.forEach((v) => list.add(v));
- } else if (value is String) {
- list.add(value);
- }
- }
-
- bool asBool(scalar) {
- if (scalar is bool) {
- return scalar;
- }
- if (scalar is String) {
- if (scalar == 'true') {
- return true;
- }
- if (scalar == 'false') {
- return false;
- }
- }
- return null;
- }
-
- String asString(scalar) {
- if (scalar is String) {
- return scalar;
- }
- return null;
- }
-
- Map<String, dynamic> parseArgs(args) {
- bool enabled = asBool(args);
- if (enabled != null) {
- return {'enabled': enabled};
- }
- return null;
- }
-
- void _parse(String src, {String sourceUrl}) {
- var yaml = loadYamlNode(src, sourceUrl: sourceUrl);
- if (yaml is YamlMap) {
- _parseYaml(yaml);
- }
- }
-
- void _parseMap(Map options) {
- //TODO(pq): unify map parsing.
- if (options is YamlMap) {
- _parseYaml(options);
- } else {
- _parseRawMap(options);
- }
- }
-
- void _parseRawMap(Map options) {
- options.forEach((k, v) {
- if (k is! String) {
- return;
- }
- String key = k;
- switch (key) {
- case 'files':
- if (v is Map) {
- addAsListOrString(v['include'], fileIncludes);
- addAsListOrString(v['exclude'], fileExcludes);
- }
- break;
-
- case 'rules':
- // - unnecessary_getters
- // - camel_case_types
- if (v is List) {
- v.forEach((rule) {
- var config = new _RuleConfig();
- config.name = asString(rule);
- config.args = {'enabled': true};
- ruleConfigs.add(config);
- });
- }
-
- // {unnecessary_getters: false, camel_case_types: true}
- if (v is Map) {
- v.forEach((key, value) {
- // style_guide: {unnecessary_getters: false, camel_case_types: true}
- if (value is Map) {
- value.forEach((rule, args) {
- // unnecessary_getters: false
- var config = new _RuleConfig();
- config.group = key;
- config.name = asString(rule);
- config.args = parseArgs(args);
- ruleConfigs.add(config);
- });
- } else {
- //{unnecessary_getters: false}
- value = asBool(value);
- if (value != null) {
- var config = new _RuleConfig();
- config.name = asString(key);
- config.args = {'enabled': value};
- ruleConfigs.add(config);
- }
- }
- });
- }
- break;
- }
- });
- }
-
- void _parseYaml(YamlMap yaml) {
- yaml.nodes.forEach((k, v) {
- if (k is! YamlScalar) {
- return;
- }
- YamlScalar key = k;
- switch (key.toString()) {
- case 'files':
- if (v is YamlMap) {
- addAsListOrString(v['include'], fileIncludes);
- addAsListOrString(v['exclude'], fileExcludes);
- }
- break;
-
- case 'rules':
-
- // - unnecessary_getters
- // - camel_case_types
- if (v is List) {
- (v as List).forEach((rule) {
- var config = new _RuleConfig();
- config.name = asString(rule);
- config.args = {'enabled': true};
- ruleConfigs.add(config);
- });
- }
-
- // style_guide: {unnecessary_getters: false, camel_case_types: true}
- if (v is YamlMap) {
- v.forEach((key, value) {
- //{unnecessary_getters: false}
- if (value is bool) {
- var config = new _RuleConfig();
- config.name = asString(key);
- config.args = {'enabled': value};
- ruleConfigs.add(config);
- }
-
- // style_guide: {unnecessary_getters: false, camel_case_types: true}
- if (value is YamlMap) {
- value.forEach((rule, args) {
- // TODO: verify format
- // unnecessary_getters: false
- var config = new _RuleConfig();
- config.group = key;
- config.name = asString(rule);
- config.args = parseArgs(args);
- ruleConfigs.add(config);
- });
- }
- });
- }
- break;
- }
- });
- }
-}
-
-class _RuleConfig extends RuleConfig {
- @override
- String group;
- @override
- String name;
-}
« no previous file with comments | « pkg/analyzer/lib/src/lint/analysis.dart ('k') | pkg/analyzer/lib/src/lint/io.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698