mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
replace assignment with operator: preserve comments
This commit is contained in:
+10
-6
@@ -25,6 +25,7 @@ import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.InspectionGadgetsFix;
|
||||
import com.siyeh.ig.PsiReplacementUtil;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
import com.siyeh.ig.psiutils.EquivalenceChecker;
|
||||
import com.siyeh.ig.psiutils.ParenthesesUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -64,7 +65,7 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe
|
||||
final PsiPolyadicExpression polyadicExpression = (PsiPolyadicExpression)infos[1];
|
||||
return InspectionGadgetsBundle.message(
|
||||
"assignment.replaceable.with.operator.assignment.problem.descriptor",
|
||||
calculateReplacementExpression(lhs, polyadicExpression));
|
||||
calculateReplacementExpression(lhs, polyadicExpression, new CommentTracker()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,7 +81,9 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe
|
||||
return optionsPanel;
|
||||
}
|
||||
|
||||
static String calculateReplacementExpression(PsiExpression lhs, PsiPolyadicExpression polyadicExpression) {
|
||||
static String calculateReplacementExpression(PsiExpression lhs,
|
||||
PsiPolyadicExpression polyadicExpression,
|
||||
CommentTracker ct) {
|
||||
final PsiExpression[] operands = polyadicExpression.getOperands();
|
||||
final PsiJavaToken sign = polyadicExpression.getTokenBeforeOperand(operands[1]);
|
||||
String signText = sign.getText();
|
||||
@@ -90,7 +93,7 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe
|
||||
else if ("||".equals(signText)) {
|
||||
signText = "|";
|
||||
}
|
||||
final StringBuilder text = new StringBuilder(lhs.getText());
|
||||
final StringBuilder text = new StringBuilder(ct.text(lhs));
|
||||
text.append(' ');
|
||||
text.append(signText);
|
||||
text.append("= ");
|
||||
@@ -108,7 +111,7 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe
|
||||
else {
|
||||
addToken = true;
|
||||
}
|
||||
text.append(operand.getText());
|
||||
text.append(ct.text(operand));
|
||||
}
|
||||
return text.toString();
|
||||
}
|
||||
@@ -168,9 +171,10 @@ public class ReplaceAssignmentWithOperatorAssignmentInspection extends BaseInspe
|
||||
if (!(rhs instanceof PsiPolyadicExpression)) {
|
||||
return;
|
||||
}
|
||||
CommentTracker ct = new CommentTracker();
|
||||
final PsiPolyadicExpression polyadicExpression = (PsiPolyadicExpression)rhs;
|
||||
final String newExpression = calculateReplacementExpression(lhs, polyadicExpression);
|
||||
PsiReplacementUtil.replaceExpression(expression, newExpression);
|
||||
final String newExpression = calculateReplacementExpression(lhs, polyadicExpression, ct);
|
||||
PsiReplacementUtil.replaceExpression(expression, newExpression, ct);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user