From 2909d3dbf12424bd064d6131529cae43b687ed8b Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Thu, 14 Aug 2014 01:44:38 +0200 Subject: [PATCH] introduce line painters api --- .../openapi/editor/impl/EditorImpl.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index c0ffbd10aca4..25d7864b9abd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -2765,8 +2765,22 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi if (hEnd >= lEnd) { FoldRegion collapsedFolderAt = myFoldingModel.getCollapsedRegionAtOffset(start); if (collapsedFolderAt == null) { - drawStringWithSoftWraps(g, chars, start, lEnd - lIterator.getSeparatorLength(), position, clip, effectColor, - effectType, fontType, currentColor, logicalPosition); + int i = drawStringWithSoftWraps(g, chars, start, lEnd - lIterator.getSeparatorLength(), position, clip, effectColor, + effectType, fontType, currentColor, logicalPosition); + for (EditorLinePainter painter : EditorLinePainter.EP_NAME.getExtensions()) { + Collection extensions = painter.getLineExtensions(myProject, getVirtualFile(), lIterator.getLineNumber()); + if (extensions != null && !extensions.isEmpty()) { + for (LineExtensionInfo info : extensions) { + drawStringWithSoftWraps(g, info.getText(), 0, info.getText().length(), position, clip, + info.getEffectColor() == null ? effectColor : info.getEffectColor(), + info.getEffectType() == null ? effectType : info.getEffectType(), + info.getFontType(), + info.getColor() == null ? currentColor : info.getColor(), + logicalPosition); + } + } + } + position.x = 0; if (position.y > clip.y + clip.height) { break;