| /* @flow */ |
| "use strict"; |
| |
| const _ = require("lodash"); |
| const getNextNonSharedLineCommentNode = require("./getNextNonSharedLineCommentNode"); |
| const getPreviousNonSharedLineCommentNode = require("./getPreviousNonSharedLineCommentNode"); |
| |
| function nodesShareLines(a, b) { |
| return _.get(a, "source.end.line") === _.get(b, "source.start.line"); |
| } |
| |
| module.exports = function isSharedLineComment( |
| node /*: postcss$node*/ |
| ) /*: boolean*/ { |
| if (node.type !== "comment") { |
| return false; |
| } |
| |
| const previousNonSharedLineCommentNode = getPreviousNonSharedLineCommentNode( |
| node |
| ); |
| |
| if (nodesShareLines(previousNonSharedLineCommentNode, node)) { |
| return true; |
| } |
| |
| const nextNonSharedLineCommentNode = getNextNonSharedLineCommentNode(node); |
| |
| if (nodesShareLines(node, nextNonSharedLineCommentNode)) { |
| return true; |
| } |
| |
| const parentNode = node.parent; |
| |
| if ( |
| parentNode !== undefined && |
| parentNode.type !== "root" && |
| parentNode.source.start.line === node.source.start.line |
| ) { |
| return true; |
| } |
| |
| return false; |
| }; |