1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 'use strict';
- const getNextNonSharedLineCommentNode = require('./getNextNonSharedLineCommentNode');
- const getPreviousNonSharedLineCommentNode = require('./getPreviousNonSharedLineCommentNode');
- const { isRoot, isComment } = require('./typeGuards');
- /** @typedef {import('postcss').Node} PostcssNode */
- /**
- *
- * @param {PostcssNode | void} a
- * @param {PostcssNode | void} b
- */
- function nodesShareLines(a, b) {
- const aLine = a && a.source && a.source.end && a.source.end.line;
- const bLine = b && b.source && b.source.start && b.source.start.line;
- return aLine === bLine;
- }
- /**
- * @param {PostcssNode} node
- * @returns {boolean}
- */
- module.exports = function isSharedLineComment(node) {
- if (!isComment(node)) {
- return false;
- }
- const previousNonSharedLineCommentNode = getPreviousNonSharedLineCommentNode(node);
- if (nodesShareLines(previousNonSharedLineCommentNode, node)) {
- return true;
- }
- const nextNonSharedLineCommentNode = getNextNonSharedLineCommentNode(node);
- if (nextNonSharedLineCommentNode && nodesShareLines(node, nextNonSharedLineCommentNode)) {
- return true;
- }
- const parentNode = node.parent;
- // It's a first child and located on the same line as block start
- if (
- parentNode !== undefined &&
- !isRoot(parentNode) &&
- parentNode.index(node) === 0 &&
- node.raws.before !== undefined &&
- !node.raws.before.includes('\n')
- ) {
- return true;
- }
- return false;
- };
|