IDEA-177741 Annotation folding does not fold parameter annotations

This commit is contained in:
Dmitry Batrak
2017-09-06 16:00:07 +03:00
parent 9618304bea
commit aa485c3774
2 changed files with 28 additions and 1 deletions
@@ -39,7 +39,10 @@ import com.intellij.psi.impl.source.tree.JavaDocElementType;
import com.intellij.psi.impl.source.tree.JavaElementType;
import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.util.*;
import com.intellij.psi.util.PropertyUtilBase;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.text.CharArrayUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -549,6 +552,10 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem
addDocCommentToFold(list, document, method);
}
for (PsiParameter parameter : method.getParameterList().getParameters()) {
addAnnotationsToFold(parameter.getModifierList(), list, document);
}
PsiCodeBlock body = method.getBody();
if (body != null && !oneLiner) {
addCodeBlockFolds(body, list, processedComments, document, quick);
@@ -91,4 +91,24 @@ class Test {
assert foldingModel.getCollapsedRegionAtOffset(text.indexOf("System.out.println"))?.placeholderText == '{...}'
}
void "test parameter annotations"() {
configure """\
class Some {
void m(@Anno("hello " +
"world") int a,
@Anno("goodbye " +
"world") int b) {}
}
@interface Anno {
String value();
}
"""
assert myFixture.editor.foldingModel.allFoldRegions.toString() ==
'[FoldRegion -(11:141), placeholder=\'{...}\', ' +
'FoldRegion -(24:66), placeholder=\'@{...}\', ' +
'FoldRegion -(85:129), placeholder=\'@{...}\', ' +
'FoldRegion -(159:183), placeholder=\'{...}\']'
}
}