forked from kevin.shehu/GGD
39 lines
1.9 KiB
JavaScript
39 lines
1.9 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.handleCommentsBinaryExpression = void 0;
|
||
|
var comments_utils_1 = require("./comments-utils");
|
||
|
function handleCommentsBinaryExpression(ctx) {
|
||
|
var unaryExpressionIndex = 1;
|
||
|
if (ctx.BinaryOperator !== undefined) {
|
||
|
ctx.BinaryOperator.forEach(function (binaryOperator) {
|
||
|
var _a;
|
||
|
if (comments_utils_1.hasLeadingComments(binaryOperator)) {
|
||
|
while (ctx.unaryExpression[unaryExpressionIndex].location.startOffset <
|
||
|
binaryOperator.endOffset) {
|
||
|
unaryExpressionIndex++;
|
||
|
}
|
||
|
// Adapt the position of the operator and its leading comments
|
||
|
var shiftUp = binaryOperator.leadingComments[0].startLine -
|
||
|
1 -
|
||
|
binaryOperator.startLine;
|
||
|
if (binaryOperator.startLine !==
|
||
|
ctx.unaryExpression[unaryExpressionIndex].location.startLine) {
|
||
|
binaryOperator.leadingComments.forEach(function (comment) {
|
||
|
comment.startLine += 1;
|
||
|
comment.endLine += 1;
|
||
|
});
|
||
|
}
|
||
|
binaryOperator.startLine += shiftUp;
|
||
|
binaryOperator.endLine += shiftUp;
|
||
|
// Assign the leading comments & trailing comments of the binaryOperator
|
||
|
// to the following unaryExpression as leading comments
|
||
|
ctx.unaryExpression[unaryExpressionIndex].leadingComments =
|
||
|
ctx.unaryExpression[unaryExpressionIndex].leadingComments || [];
|
||
|
(_a = ctx.unaryExpression[unaryExpressionIndex].leadingComments).unshift.apply(_a, binaryOperator.leadingComments);
|
||
|
delete binaryOperator.leadingComments;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
exports.handleCommentsBinaryExpression = handleCommentsBinaryExpression;
|