From 4996aefb60028aabaea1ff0788091906d591931c Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 17 Jun 2016 16:55:23 +0300 Subject: [PATCH] cleanup --- .../editor/impl/EditorMarkupModelImpl.java | 69 +++++++++---------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java index a056e30cdc55..a71ace656576 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java @@ -40,6 +40,7 @@ import com.intellij.openapi.editor.actionSystem.DocCommandGroupId; import com.intellij.openapi.editor.colors.EditorFontType; import com.intellij.openapi.editor.ex.*; import com.intellij.openapi.editor.ex.util.EditorUIUtil; +import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.editor.markup.ErrorStripeRenderer; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.fileEditor.impl.EditorWindowHolder; @@ -79,8 +80,6 @@ import java.util.List; import java.util.Queue; import java.util.concurrent.atomic.AtomicReference; -import static com.intellij.openapi.editor.ex.util.EditorUtil.isRealFileEditor; - public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMarkupModel { private static final TooltipGroup ERROR_STRIPE_TOOLTIP_GROUP = new TooltipGroup("ERROR_STRIPE_TOOLTIP_GROUP", 0); @@ -121,11 +120,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark private int myMinMarkHeight;// height for horizontal, width for vertical stripes private static final int myPreviewLines = Math.max(2, Math.min(25, Integer.getInteger("preview.lines", 5)));// Actually preview has myPreviewLines * 2 + 1 lines (above + below + current one) private static final int myCachePreviewLines = 100;// Actually cache image has myCachePreviewLines * 2 + 1 lines (above + below + current one) - @Nullable private LightweightHint myEditorPreviewHint = null; + @Nullable private LightweightHint myEditorPreviewHint; @NotNull private final EditorFragmentRenderer myEditorFragmentRenderer; - private int myRowAdjuster = 0; - private int myWheelAccumulator = 0; - private int myLastVisualLine = 0; + private int myRowAdjuster; + private int myWheelAccumulator; + private int myLastVisualLine; EditorMarkupModelImpl(@NotNull EditorImpl editor) { super(editor.getDocument()); @@ -194,9 +193,8 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark int visualY = myEditor.getLineHeight() * visualLine; boolean isVisible = area.contains(area.x, visualY) && myWheelAccumulator == 0; - TooltipRenderer bigRenderer; if (UIUtil.uiParents(myEditor.getComponent(), false).filter(EditorWindowHolder.class).isEmpty() || isVisible || !UISettings.getInstance().SHOW_EDITOR_TOOLTIP) { - final Set highlighters = new THashSet(); + final Set highlighters = new THashSet<>(); getNearestHighlighters(this, me.getY(), highlighters); getNearestHighlighters(((EditorEx)getEditor()).getFilteredDocumentMarkupModel(), me.getY(), highlighters); if (highlighters.isEmpty()) return false; @@ -211,7 +209,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } me = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), e.getModifiers(), me.getX(), y + 1, e.getClickCount(), e.isPopupTrigger()); - bigRenderer = myTooltipRendererProvider.calcTooltipRenderer(highlighters); + TooltipRenderer bigRenderer = myTooltipRendererProvider.calcTooltipRenderer(highlighters); if (bigRenderer != null) { showTooltip(me, bigRenderer, createHint(me)); return true; @@ -221,7 +219,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark float rowRatio = (float)visualLine /(myEditor.getVisibleLineCount() - 1); int y = myRowAdjuster != 0 ? (int)(rowRatio * myEditor.getVerticalScrollBar().getHeight()) : me.getY(); me = new MouseEvent(me.getComponent(), me.getID(), me.getWhen(), me.getModifiers(), me.getX(), y, me.getClickCount(), me.isPopupTrigger()); - final List highlighters = new ArrayList(); + final List highlighters = new ArrayList<>(); collectRangeHighlighters(this, visualLine, highlighters); collectRangeHighlighters(myEditor.getFilteredDocumentMarkupModel(), visualLine, highlighters); myEditorFragmentRenderer.update(visualLine, highlighters, me.isAltDown()); @@ -267,7 +265,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark @Nullable private RangeHighlighter getNearestRangeHighlighter(@NotNull final MouseEvent e) { - List highlighters = new ArrayList(); + List highlighters = new ArrayList<>(); getNearestHighlighters(this, e.getY(), highlighters); getNearestHighlighters(myEditor.getFilteredDocumentMarkupModel(), e.getY(), highlighters); RangeHighlighter nearestMarker = null; @@ -459,7 +457,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } if (myErrorStripeRenderer != null) { - int x = isMirrored() ? 0 : (getThinGap() + myMinMarkHeight); + int x = isMirrored() ? 0 : getThinGap() + myMinMarkHeight; final Rectangle b = new Rectangle(x, 0, getErrorIconWidth(), getErrorIconHeight()); myErrorStripeRenderer.paint(this, g, b); } @@ -477,7 +475,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } private boolean transparent() { - return Registry.is("editor.transparent.scrollbar", false) && isRealFileEditor(myEditor); + return Registry.is("editor.transparent.scrollbar", false) && EditorUtil.isRealFileEditor(myEditor); } private class MyErrorPanel extends ButtonlessScrollBarUI implements MouseMotionListener, MouseListener, MouseWheelListener, UISettingsListener { @@ -500,7 +498,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark @Override protected boolean isMacScrollbarHiddenAndXcodeLikeScrollbar() { - return super.isMacScrollbarHiddenAndXcodeLikeScrollbar() && isRealFileEditor(myEditor); + return super.isMacScrollbarHiddenAndXcodeLikeScrollbar() && EditorUtil.isRealFileEditor(myEditor); } @Override @@ -603,7 +601,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark @Override protected boolean alwaysPaintThumb() { - if (scrollbar.getOrientation() == Adjustable.VERTICAL) return !(xcodeLikeScrollbar() && isRealFileEditor(myEditor)); + if (scrollbar.getOrientation() == Adjustable.VERTICAL) return !(xcodeLikeScrollbar() && EditorUtil.isRealFileEditor(myEditor)); return super.alwaysPaintThumb(); } @@ -619,8 +617,8 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark @Override protected void paintMaxiThumb(@NotNull Graphics2D g, @NotNull Rectangle thumbBounds) { - int arc = 3; g.setColor(adjustColor(getGradientDarkColor())); + int arc = 3; g.fillRoundRect(isMirrored() ? -3 : 2, 0, thumbBounds.width, thumbBounds.height, arc, arc); } @@ -701,7 +699,6 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark final Rectangle clip = new Rectangle(0, yrange.getStartOffset(), gutterWidth, yrange.getLength() + myMinMarkHeight); paintTrackBasement(g, clip); - Document document = myEditor.getDocument(); int startOffset = yPositionToOffset(clip.y - myMinMarkHeight, true); int endOffset = yPositionToOffset(clip.y + clip.height, false); @@ -715,11 +712,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } private void drawMarkup(@NotNull final Graphics g, int startOffset, int endOffset, @NotNull MarkupModelEx markup1, @NotNull MarkupModelEx markup2) { - final Queue thinEnds = new PriorityQueue(5, (o1, o2) -> o1.yEnd - o2.yEnd); - final Queue wideEnds = new PriorityQueue(5, (o1, o2) -> o1.yEnd - o2.yEnd); + final Queue thinEnds = new PriorityQueue<>(5, (o1, o2) -> o1.yEnd - o2.yEnd); + final Queue wideEnds = new PriorityQueue<>(5, (o1, o2) -> o1.yEnd - o2.yEnd); // sorted by layer - final List thinStripes = new ArrayList(); // layer desc - final List wideStripes = new ArrayList(); // layer desc + final List thinStripes = new ArrayList<>(); // layer desc + final List wideStripes = new ArrayList<>(); // layer desc final int[] thinYStart = new int[1]; // in range 0..yStart all spots are drawn final int[] wideYStart = new int[1]; // in range 0..yStart all spots are drawn @@ -906,7 +903,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark int inc = e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL ? e.getUnitsToScroll() * e.getScrollAmount() : e.getWheelRotation() < 0 ? -e.getScrollAmount() : e.getScrollAmount(); // Stop accumulating when the last or the first line has been reached as 'adjusted' position to show lens. - if ((myLastVisualLine < myEditor.getVisibleLineCount() - 1 && inc > 0) || (myLastVisualLine > 0 && inc < 0)) { + if (myLastVisualLine < myEditor.getVisibleLineCount() - 1 && inc > 0 || myLastVisualLine > 0 && inc < 0) { myWheelAccumulator += inc; } myRowAdjuster = myWheelAccumulator / myEditor.getLineHeight(); @@ -993,7 +990,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark ContainerUtil.add(listener, myErrorMarkerListeners, parent); } - public void markDirtied(@NotNull ProperTextRange yPositions) { + private void markDirtied(@NotNull ProperTextRange yPositions) { if (myDirtyYPositions != WHOLE_DOCUMENT) { int start = Math.max(0, yPositions.getStartOffset() - myEditor.getLineHeight()); int end = myEditorScrollbarTop + myEditorTargetHeight == 0 ? yPositions.getEndOffset() + myEditor.getLineHeight() @@ -1033,7 +1030,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark final String text = tooltipObject.toString(); if (tooltips == null) { - tooltips = new THashSet(); + tooltips = new THashSet<>(); } if (tooltips.add(text)) { if (bigRenderer == null) { @@ -1115,13 +1112,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark else if (start == end || offsetToLine(start, document) == endLineNumber) { endY = startY; // both offsets are on the same line, no need to recalc Y position } + else if (myEditorSourceHeight < editorTargetHeight) { + endY = myEditorScrollbarTop + endLineNumber * myEditor.getLineHeight(); + } else { - if (myEditorSourceHeight < editorTargetHeight) { - endY = myEditorScrollbarTop + endLineNumber * myEditor.getLineHeight(); - } - else { - endY = myEditorScrollbarTop + (int)((float)endLineNumber / lineCount * editorTargetHeight); - } + endY = myEditorScrollbarTop + (int)((float)endLineNumber / lineCount * editorTargetHeight); } if (endY < startY) endY = startY; return new ProperTextRange(startY, endY); @@ -1161,7 +1156,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark private class EditorFragmentRenderer implements TooltipRenderer { private int myVisualLine; private boolean myShowInstantly; - private final List myHighlighters = new ArrayList(); + private final List myHighlighters = new ArrayList<>(); @Nullable private BufferedImage myCacheLevel1; @Nullable private BufferedImage myCacheLevel2; private int myCacheStartLine; @@ -1169,13 +1164,13 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark private int myStartVisualLine; private int myEndVisualLine; private int myRelativeY; - private boolean myDelayed = false; - private boolean isDirty = false; - private final AtomicReference myPointHolder = new AtomicReference(); - private final AtomicReference myHintHolder = new AtomicReference(); + private boolean myDelayed; + private boolean isDirty; + private final AtomicReference myPointHolder = new AtomicReference<>(); + private final AtomicReference myHintHolder = new AtomicReference<>(); private EditorFragmentRenderer() { - update(-1, Collections.emptyList(), false); + update(-1, Collections.emptyList(), false); } void update(int visualLine, @NotNull Collection rangeHighlighters, boolean showInstantly) { @@ -1325,11 +1320,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark //Add glass effect Shape s = new Rectangle(0, 0, size.width, size.height); double cx = size.width / 2; - double cy = 0; double rx = size.width / 10; int ry = myEditor.getLineHeight() * 3 / 2; g2.setPaint(new GradientPaint(0, 0, Gray._255.withAlpha(75), 0, ry, Gray._255.withAlpha(10))); double pseudoMajorAxis = size.width - rx * 9 / 5; + double cy = 0; Shape topShape1 = new Ellipse2D.Double(cx - rx - pseudoMajorAxis / 2, cy - ry, 2 * rx, 2 * ry); Shape topShape2 = new Ellipse2D.Double(cx - rx + pseudoMajorAxis / 2, cy - ry, 2 * rx, 2 * ry); Area topArea = new Area(topShape1);