From cfb74f07f1ee590a33960575e0be390cd89d94f3 Mon Sep 17 00:00:00 2001 From: Sergey Ignatov Date: Thu, 2 Oct 2014 10:58:17 +0200 Subject: [PATCH] java folding: use unicode right arrow for closures, move deps to the right place --- .../folding/impl/JavaFoldingBuilder.java | 14 +++++++++++++- .../folding/impl/JavaFoldingBuilderBase.java | 9 ++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java b/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java index 5d948f326930..21a1ea144c67 100644 --- a/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java +++ b/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java @@ -18,13 +18,18 @@ package com.intellij.codeInsight.folding.impl; import com.intellij.codeInsight.ExpectedTypeInfo; import com.intellij.codeInsight.ExpectedTypesProvider; import com.intellij.lang.java.JavaLanguage; +import com.intellij.openapi.editor.colors.EditorColorsManager; +import com.intellij.openapi.editor.colors.EditorFontType; import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleSettings; import com.intellij.psi.codeStyle.CodeStyleSettingsManager; +import com.intellij.util.FontUtil; +import org.jetbrains.annotations.NotNull; + +import java.awt.*; public class JavaFoldingBuilder extends JavaFoldingBuilderBase { - @Override protected boolean isBelowRightMargin(Project project, int lineLength) { final CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(project); @@ -41,5 +46,12 @@ public class JavaFoldingBuilder extends JavaFoldingBuilderBase { ExpectedTypeInfo[] types = ExpectedTypesProvider.getExpectedTypes(expression, false); return types.length != 1 || !types[0].getType().equals(anonymousClass.getBaseClassType()); } + + @Override + @NotNull + protected String rightArrow() { + Font font = EditorColorsManager.getInstance().getGlobalScheme().getFont(EditorFontType.PLAIN); + return FontUtil.rightArrow(font); + } } diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java index d15bc3e422df..33c94e08d802 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java @@ -833,9 +833,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return psiParameter.getName(); } }, ", "); - //Font font = EditorColorsManager.getInstance().getGlobalScheme().getFont(EditorFontType.PLAIN); - //String arrow = FontUtil.rightArrow(font); - String arrow = "->"; + String arrow = rightArrow(); @NonNls final String lambdas = type + methodName + "(" + params + ") " + arrow + " {"; final int closureStart = expression.getTextRange().getStartOffset(); @@ -867,6 +865,11 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return isClosure; } + @NotNull + protected String rightArrow() { + return "->"; + } + private boolean fitsRightMargin(PsiElement element, Document document, int foldingStart, int foldingEnd, int collapsedLength) { final int beforeLength = foldingStart - document.getLineStartOffset(document.getLineNumber(foldingStart)); final int afterLength = document.getLineEndOffset(document.getLineNumber(foldingEnd)) - foldingEnd;