| Index: pkg/polymer/lib/src/build/linter.dart
|
| diff --git a/pkg/polymer/lib/src/build/linter.dart b/pkg/polymer/lib/src/build/linter.dart
|
| index 3a79758d7bf9c9b97a71fa357c7b1c61be77672a..06004eb4bb713f038cc2572aaa1d6ad78a20cb1e 100644
|
| --- a/pkg/polymer/lib/src/build/linter.dart
|
| +++ b/pkg/polymer/lib/src/build/linter.dart
|
| @@ -2,10 +2,8 @@
|
| // 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.
|
|
|
| -/**
|
| - * Logic to validate that developers are correctly using Polymer constructs.
|
| - * This is mainly used to produce warnings for feedback in the editor.
|
| - */
|
| +/// Logic to validate that developers are correctly using Polymer constructs.
|
| +/// This is mainly used to produce warnings for feedback in the editor.
|
| library polymer.src.build.linter;
|
|
|
| import 'dart:async';
|
| @@ -18,15 +16,13 @@ import 'package:source_maps/span.dart';
|
| import 'common.dart';
|
| import 'utils.dart';
|
|
|
| -/**
|
| - * A linter that checks for common Polymer errors and produces warnings to
|
| - * show on the editor or the command line. Leaves sources unchanged, but creates
|
| - * a new asset containing all the warnings.
|
| - */
|
| +/// A linter that checks for common Polymer errors and produces warnings to
|
| +/// show on the editor or the command line. Leaves sources unchanged, but
|
| +/// creates a new asset containing all the warnings.
|
| class Linter extends Transformer with PolymerTransformer {
|
| final TransformOptions options;
|
|
|
| - /** Only run on .html files. */
|
| + /// Only run on .html files.
|
| final String allowedExtensions = '.html';
|
|
|
| Linter(this.options);
|
| @@ -46,12 +42,10 @@ class Linter extends Transformer with PolymerTransformer {
|
| });
|
| }
|
|
|
| - /**
|
| - * Collect into [elements] any data about each polymer-element defined in
|
| - * [document] or any of it's imports, unless they have already been [seen].
|
| - * Elements are added in the order they appear, transitive imports are added
|
| - * first.
|
| - */
|
| + /// Collect into [elements] any data about each polymer-element defined in
|
| + /// [document] or any of it's imports, unless they have already been [seen].
|
| + /// Elements are added in the order they appear, transitive imports are added
|
| + /// first.
|
| Future<Map<String, _ElementSummary>> _collectElements(
|
| Document document, AssetId sourceId, Transform transform,
|
| Set<AssetId> seen, [Map<String, _ElementSummary> elements]) {
|
| @@ -120,13 +114,11 @@ class Linter extends Transformer with PolymerTransformer {
|
| }
|
|
|
|
|
| -/**
|
| - * Information needed about other polymer-element tags in order to validate
|
| - * how they are used and extended.
|
| - *
|
| - * Note: these are only created for polymer-element, because pure custom
|
| - * elements don't have a declarative form.
|
| - */
|
| +/// Information needed about other polymer-element tags in order to validate
|
| +/// how they are used and extended.
|
| +///
|
| +/// Note: these are only created for polymer-element, because pure custom
|
| +/// elements don't have a declarative form.
|
| class _ElementSummary {
|
| final String tagName;
|
| final String extendsTag;
|
| @@ -181,7 +173,7 @@ class _LinterVisitor extends TreeVisitor {
|
| }
|
| }
|
|
|
| - /** Produce warnings for invalid link-rel tags. */
|
| + /// Produce warnings for invalid link-rel tags.
|
| void _validateLinkElement(Element node) {
|
| var rel = node.attributes['rel'];
|
| if (rel != 'import' && rel != 'stylesheet') return;
|
| @@ -199,16 +191,14 @@ class _LinterVisitor extends TreeVisitor {
|
| _logger.warning('link rel="$rel" missing href.', span: node.sourceSpan);
|
| }
|
|
|
| - /** Produce warnings if using `<element>` instead of `<polymer-element>`. */
|
| + /// Produce warnings if using `<element>` instead of `<polymer-element>`.
|
| void _validateElementElement(Element node) {
|
| _logger.warning('<element> elements are not supported, use'
|
| ' <polymer-element> instead', span: node.sourceSpan);
|
| }
|
|
|
| - /**
|
| - * Produce warnings if using `<polymer-element>` in the wrong place or if the
|
| - * definition is not complete.
|
| - */
|
| + /// Produce warnings if using `<polymer-element>` in the wrong place or if the
|
| + /// definition is not complete.
|
| void _validatePolymerElement(Element node) {
|
| if (_inPolymerElement) {
|
| _logger.error('Nested polymer element definitions are not allowed.',
|
| @@ -254,17 +244,15 @@ class _LinterVisitor extends TreeVisitor {
|
| _inPolymerElement = oldValue;
|
| }
|
|
|
| - /**
|
| - * Produces warnings for malformed script tags. In html5 leaving off type= is
|
| - * fine, but it defaults to text/javascript. Because this might be a common
|
| - * error, we warn about it when src file ends in .dart, but the type is
|
| - * incorrect, or when users write code in an inline script tag of a custom
|
| - * element.
|
| - *
|
| - * The hope is that these cases shouldn't break existing valid code, but that
|
| - * they'll help Polymer authors avoid having their Dart code accidentally
|
| - * interpreted as JavaScript by the browser.
|
| - */
|
| + /// Produces warnings for malformed script tags. In html5 leaving off type= is
|
| + /// fine, but it defaults to text/javascript. Because this might be a common
|
| + /// error, we warn about it when src file ends in .dart, but the type is
|
| + /// incorrect, or when users write code in an inline script tag of a custom
|
| + /// element.
|
| + ///
|
| + /// The hope is that these cases shouldn't break existing valid code, but that
|
| + /// they'll help Polymer authors avoid having their Dart code accidentally
|
| + /// interpreted as JavaScript by the browser.
|
| void _validateScriptElement(Element node) {
|
| var scriptType = node.attributes['type'];
|
| var isDart = scriptType == 'application/dart';
|
| @@ -314,10 +302,8 @@ class _LinterVisitor extends TreeVisitor {
|
| }
|
| }
|
|
|
| - /**
|
| - * Produces warnings for misuses of on-foo event handlers, and for instanting
|
| - * custom tags incorrectly.
|
| - */
|
| + /// Produces warnings for misuses of on-foo event handlers, and for instanting
|
| + /// custom tags incorrectly.
|
| void _validateNormalElement(Element node) {
|
| // Event handlers only allowed inside polymer-elements
|
| node.attributes.forEach((name, value) {
|
| @@ -380,9 +366,7 @@ class _LinterVisitor extends TreeVisitor {
|
| }
|
| }
|
|
|
| - /**
|
| - * Validate an attribute on a custom-element. Returns true if valid.
|
| - */
|
| + /// Validate an attribute on a custom-element. Returns true if valid.
|
| bool _validateCustomAttributeName(String name, FileSpan span) {
|
| if (name.contains('-')) {
|
| var newName = toCamelCase(name);
|
| @@ -394,7 +378,7 @@ class _LinterVisitor extends TreeVisitor {
|
| return true;
|
| }
|
|
|
| - /** Validate event handlers are used correctly. */
|
| + /// Validate event handlers are used correctly.
|
| void _validateEventHandler(Element node, String name, String value) {
|
| if (!name.startsWith('on-')) {
|
| _logger.warning('Event handler "$name" will be interpreted as an inline'
|
| @@ -434,10 +418,8 @@ var _invalidTagNames = const {
|
| 'missing-glyph': '',
|
| };
|
|
|
| -/**
|
| - * Returns true if this is a valid custom element name. See:
|
| - * <https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html#dfn-custom-element-name>
|
| - */
|
| +/// Returns true if this is a valid custom element name. See:
|
| +/// <https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html#dfn-custom-element-name>
|
| bool _isCustomTag(String name) {
|
| if (name == null || !name.contains('-')) return false;
|
| return !_invalidTagNames.containsKey(name);
|
|
|