mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
don't fold one-line methods with multi-line parameter list
This commit is contained in:
+7
-1
@@ -598,9 +598,15 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem
|
||||
|
||||
Document document = method.getContainingFile().getViewProvider().getDocument();
|
||||
PsiCodeBlock body = method.getBody();
|
||||
if (body == null || document == null) {
|
||||
PsiIdentifier nameIdentifier = method.getNameIdentifier();
|
||||
if (body == null || document == null || nameIdentifier == null) {
|
||||
return false;
|
||||
}
|
||||
if (document.getLineNumber(nameIdentifier.getTextRange().getStartOffset()) !=
|
||||
document.getLineNumber(method.getParameterList().getTextRange().getEndOffset())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
PsiJavaToken lBrace = body.getLBrace();
|
||||
PsiJavaToken rBrace = body.getRBrace();
|
||||
PsiStatement[] statements = body.getStatements();
|
||||
|
||||
@@ -568,14 +568,20 @@ class Test {
|
||||
|
||||
public void "test fold one-line methods"() {
|
||||
configure """class Foo {
|
||||
@Override
|
||||
int someMethod() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int someOtherMethod(
|
||||
int param) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}"""
|
||||
PsiClass fooClass = JavaPsiFacade.getInstance(project).findClass('Foo', GlobalSearchScope.allScope(project))
|
||||
def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset }
|
||||
assert regions.size() == 2
|
||||
assert regions.size() == 3
|
||||
checkAccessorFolding(regions[0], regions[1], fooClass.methods[0])
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user