diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/MakeCallChainIntoCallSequenceIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/MakeCallChainIntoCallSequenceIntention.java index 6d93347bb71c..8e54f7d540bd 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/MakeCallChainIntoCallSequenceIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/MakeCallChainIntoCallSequenceIntention.java @@ -22,6 +22,7 @@ import com.intellij.psi.codeStyle.CodeStyleSettings; import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.psi.codeStyle.JavaCodeStyleSettings; import com.intellij.util.IncorrectOperationException; +import com.siyeh.ig.psiutils.CommentTracker; import com.siyeh.ipp.base.Intention; import com.siyeh.ipp.base.PsiElementPredicate; import com.siyeh.ipp.psiutils.HighlightUtil; @@ -157,8 +158,9 @@ public class MakeCallChainIntoCallSequenceIntention extends Intention { final PsiElement appendStatementParent = appendStatement.getParent(); final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject()); final PsiCodeBlock codeBlock = factory.createCodeBlockFromText(builder.toString(), appendStatement); + CommentTracker tracker = new CommentTracker(); if (appendStatementParent instanceof PsiLoopStatement || appendStatementParent instanceof PsiIfStatement) { - final PsiElement insertedCodeBlock = appendStatement.replace(codeBlock); + final PsiElement insertedCodeBlock = tracker.replaceAndRestoreComments(appendStatement, codeBlock); final PsiCodeBlock reformattedCodeBlock = (PsiCodeBlock)codeStyleManager.reformat(insertedCodeBlock); if (showRenameTemplate) { final PsiStatement[] statements = reformattedCodeBlock.getStatements(); @@ -170,13 +172,13 @@ public class MakeCallChainIntoCallSequenceIntention extends Intention { final PsiStatement[] statements = codeBlock.getStatements(); PsiVariable variable = null; for (int i = 0, length = statements.length; i < length; i++) { - final PsiElement insertedStatement = appendStatementParent.addBefore(statements[i], appendStatement); + final PsiElement insertedStatement = appendStatementParent.addBefore(tracker.markUnchanged(statements[i]), appendStatement); if (i == 0 && showRenameTemplate) { variable = (PsiVariable)((PsiDeclarationStatement) insertedStatement).getDeclaredElements()[0]; } codeStyleManager.reformat(insertedStatement); } - appendStatement.delete(); + tracker.deleteAndRestoreComments(appendStatement); if (variable != null) { HighlightUtil.showRenameTemplate(appendStatementParent, variable); } diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder.java index 107e39219508..5401e6daff7c 100644 --- a/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder.java +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder.java @@ -1,6 +1,6 @@ class Test { { StringBuilder text = null; - text.delete(text.length() - 1, text.length()).append(";\n"); + text.delete(text.length() - 1, text.length()).append(";\n"); //keep me } } \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder_after.java index 5f620e193a8f..8f29bdf392c2 100644 --- a/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder_after.java +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/concatenation/call_chain/Builder_after.java @@ -2,6 +2,6 @@ class Test { { StringBuilder text = null; text.delete(text.length() - 1, text.length()); - text.append(";\n"); + text.append(";\n");//keep me } } \ No newline at end of file