From 6c605dee7b1064bc8f42c8eb9db62d8b52a4d6a3 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Tue, 30 Nov 2021 23:16:53 +0100 Subject: [PATCH] do not fold empty blocks --- .../tooling/aspect/AspectFoldingBuilder.java | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/jastadd/tooling/aspect/AspectFoldingBuilder.java b/src/main/java/org/jastadd/tooling/aspect/AspectFoldingBuilder.java index 5e28dbf..abefa83 100644 --- a/src/main/java/org/jastadd/tooling/aspect/AspectFoldingBuilder.java +++ b/src/main/java/org/jastadd/tooling/aspect/AspectFoldingBuilder.java @@ -24,33 +24,43 @@ public class AspectFoldingBuilder extends FoldingBuilderEx { List<FoldingDescriptor> descriptors = new ArrayList<>(); Collection<JastAddAspectAspectDeclaration> aspectDeclarations = PsiTreeUtil.findChildrenOfType(root, JastAddAspectAspectDeclaration.class); for (final JastAddAspectAspectDeclaration aspectDeclaration : aspectDeclarations) { - descriptors.add(new FoldingDescriptor(aspectDeclaration.getNode(), - new TextRange(aspectDeclaration.getAspectBody().getTextRange().getStartOffset() + 1, - aspectDeclaration.getAspectBody().getTextRange().getEndOffset() - 1))); + if (aspectDeclaration.getAspectBody().getTextRange().getLength() > 2) { + descriptors.add(new FoldingDescriptor(aspectDeclaration.getNode(), + new TextRange(aspectDeclaration.getAspectBody().getTextRange().getStartOffset() + 1, + aspectDeclaration.getAspectBody().getTextRange().getEndOffset() - 1))); + } } Collection<JastAddAspectClassDeclaration> classDeclarations = PsiTreeUtil.findChildrenOfType(root, JastAddAspectClassDeclaration.class); for (final JastAddAspectClassDeclaration classDeclaration : classDeclarations) { - descriptors.add(new FoldingDescriptor(classDeclaration.getNode(), - new TextRange(classDeclaration.getClassBody().getTextRange().getStartOffset() + 1, - classDeclaration.getClassBody().getTextRange().getEndOffset() - 1))); + if (classDeclaration.getClassBody().getTextRange().getLength() > 2) { + descriptors.add(new FoldingDescriptor(classDeclaration.getNode(), + new TextRange(classDeclaration.getClassBody().getTextRange().getStartOffset() + 1, + classDeclaration.getClassBody().getTextRange().getEndOffset() - 1))); + } } Collection<JastAddAspectEnumBody> enumBodies = PsiTreeUtil.findChildrenOfType(root, JastAddAspectEnumBody.class); for (final JastAddAspectEnumBody enumBody : enumBodies) { - descriptors.add(new FoldingDescriptor(enumBody.getNode(), - new TextRange(enumBody.getTextRange().getStartOffset() + 1, - enumBody.getTextRange().getEndOffset() - 1))); + if (enumBody.getTextRange().getLength() > 2) { + descriptors.add(new FoldingDescriptor(enumBody.getNode(), + new TextRange(enumBody.getTextRange().getStartOffset() + 1, + enumBody.getTextRange().getEndOffset() - 1))); + } } Collection<JastAddAspectAnnotationTypeBody> annotationTypeBodies = PsiTreeUtil.findChildrenOfType(root, JastAddAspectAnnotationTypeBody.class); for (final JastAddAspectAnnotationTypeBody annotationTypeBody : annotationTypeBodies) { - descriptors.add(new FoldingDescriptor(annotationTypeBody.getNode(), - new TextRange(annotationTypeBody.getTextRange().getStartOffset() + 1, - annotationTypeBody.getTextRange().getEndOffset() - 1))); + if (annotationTypeBody.getTextRange().getLength() > 2) { + descriptors.add(new FoldingDescriptor(annotationTypeBody.getNode(), + new TextRange(annotationTypeBody.getTextRange().getStartOffset() + 1, + annotationTypeBody.getTextRange().getEndOffset() - 1))); + } } Collection<JastAddAspectBlock> aspectBlocks = PsiTreeUtil.findChildrenOfType(root, JastAddAspectBlock.class); for (final JastAddAspectBlock block : aspectBlocks) { - descriptors.add(new FoldingDescriptor(block.getNode(), - new TextRange(block.getTextRange().getStartOffset() + 1, - block.getTextRange().getEndOffset() - 1))); + if (block.getTextRange().getLength() > 2) { + descriptors.add(new FoldingDescriptor(block.getNode(), + new TextRange(block.getTextRange().getStartOffset() + 1, + block.getTextRange().getEndOffset() - 1))); + } } return descriptors.toArray(new FoldingDescriptor[0]); } -- GitLab