SortContentAction: preserve comments in corner case

This commit is contained in:
Roman.Ivanov
2018-04-25 16:41:41 +07:00
parent 48499b6e4b
commit c0ba114576
4 changed files with 24 additions and 0 deletions
@@ -12,6 +12,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
import com.siyeh.ig.psiutils.ExpressionUtils;
import gnu.trove.TIntArrayList;
import one.util.streamex.StreamEx;
@@ -833,6 +834,11 @@ public class SortContentAction extends PsiElementBaseIntentionAction {
}
StringBuilder sb = new StringBuilder();
sortableList.generate(sb);
SortableEntry lastItem = ContainerUtil.getLastItem(sortableList.myEntries);
assert lastItem != null;
if (!lastItem.myBeforeSeparator.isEmpty()) {
sb.append("\n");
}
PsiElement elementToPreserve = lastElement.getNextSibling();
while (elementToPreserve != null && elementToPreserve != rBrace) {
sb.append(elementToPreserve.getText());
@@ -9,5 +9,6 @@ public enum OSType {
WIN//after win
// win
;
}
@@ -0,0 +1,9 @@
// "Sort content" "true"
public enum Enum {
A,
B,
C// foo
;
}
@@ -0,0 +1,8 @@
// "Sort content" "true"
public enum Enum {
C // foo
,<caret>
A,
B;
}