| 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;
|
| -}
|
|
|