.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / eslint / lib / rules / no-multi-str.js
1 /**
2  * @fileoverview Rule to flag when using multiline strings
3  * @author Ilya Volodin
4  */
5
6 "use strict";
7
8 //------------------------------------------------------------------------------
9 // Requirements
10 //------------------------------------------------------------------------------
11
12 const astUtils = require("./utils/ast-utils");
13
14 //------------------------------------------------------------------------------
15 // Rule Definition
16 //------------------------------------------------------------------------------
17
18 module.exports = {
19     meta: {
20         type: "suggestion",
21
22         docs: {
23             description: "disallow multiline strings",
24             category: "Best Practices",
25             recommended: false,
26             url: "https://eslint.org/docs/rules/no-multi-str"
27         },
28
29         schema: [],
30
31         messages: {
32             multilineString: "Multiline support is limited to browsers supporting ES5 only."
33         }
34     },
35
36     create(context) {
37
38         /**
39          * Determines if a given node is part of JSX syntax.
40          * @param {ASTNode} node The node to check.
41          * @returns {boolean} True if the node is a JSX node, false if not.
42          * @private
43          */
44         function isJSXElement(node) {
45             return node.type.indexOf("JSX") === 0;
46         }
47
48         //--------------------------------------------------------------------------
49         // Public API
50         //--------------------------------------------------------------------------
51
52         return {
53
54             Literal(node) {
55                 if (astUtils.LINEBREAK_MATCHER.test(node.raw) && !isJSXElement(node.parent)) {
56                     context.report({
57                         node,
58                         messageId: "multilineString"
59                     });
60                 }
61             }
62         };
63
64     }
65 };