diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java index fca9f55e64eb..f3fd081e98e5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SortContentAction.java @@ -874,15 +874,24 @@ public class SortContentAction extends PsiElementBaseIntentionAction { for(PsiElement current = newClassLBrace.getNextSibling(); current != newClassRBrace; current = current.getNextSibling()) { finalText.append(current.getText()); } - PsiClass anEnum = createEnum(project, finalText.toString(), aClass.getText()); + String prefix = aClass.getText(); + + // Workaround of deleting \n between comment after enum and lBrace when after class there are at least one \n + PsiElement lastChild = aClass.getLastChild(); + if (lastChild instanceof PsiComment && ((PsiComment)lastChild).getTokenType() == JavaTokenType.END_OF_LINE_COMMENT) { + prefix += "\n"; + } + //if (aClass.getLastChild() instanceof PsiComment) + PsiClass anEnum = createEnum(project, finalText.toString(), prefix); if (anEnum != null) { aClass.replace(anEnum); } } private static PsiClass createEnum(Project project, String text, String prefix) { + String enumText = prefix + " {" + text + "}"; PsiJavaFile file = (PsiJavaFile)PsiFileFactory.getInstance(project) - .createFileFromText("_DUMMY_", JavaFileType.INSTANCE, prefix + " {" + text + "}"); + .createFileFromText("_DUMMY_", JavaFileType.INSTANCE, enumText); PsiClass[] classes = file.getClasses(); if (classes.length != 1) return null; return classes[0]; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments5.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments5.java new file mode 100644 index 000000000000..cd17d9ec88a0 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/afterEnumComments5.java @@ -0,0 +1,9 @@ +// "Sort content" "true" + +public enum X //simple end comment +{ + b, f, x + +} + + diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeEnumComments5.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeEnumComments5.java new file mode 100644 index 000000000000..2dc59479ee48 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/sortContent/beforeEnumComments5.java @@ -0,0 +1,7 @@ +// "Sort content" "true" + +public enum X //simple end comment +{ + f, b, x +} +