diff options
Diffstat (limited to 'tools/eslint/lib/rules/no-multi-str.js')
-rw-r--r-- | tools/eslint/lib/rules/no-multi-str.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tools/eslint/lib/rules/no-multi-str.js b/tools/eslint/lib/rules/no-multi-str.js new file mode 100644 index 0000000000..1d4810b97d --- /dev/null +++ b/tools/eslint/lib/rules/no-multi-str.js @@ -0,0 +1,41 @@ +/** + * @fileoverview Rule to flag when using multiline strings + * @author Ilya Volodin + * @copyright 2014 Nicholas C. Zakas. All rights reserved. + * @copyright 2013 Ilya Volodin. All rights reserved. + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +module.exports = function(context) { + + /** + * Determines if a given node is part of JSX syntax. + * @param {ASTNode} node The node to check. + * @returns {boolean} True if the node is a JSX node, false if not. + * @private + */ + function isJSXElement(node) { + return node.type.indexOf("JSX") === 0; + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + + "Literal": function(node) { + var lineBreak = /\n/; + + if (lineBreak.test(node.raw) && !isJSXElement(node.parent)) { + context.report(node, "Multiline support is limited to browsers supporting ES5 only."); + } + } + }; + +}; |