private void validateMaxLineWithExtension() { if (myMaxLineWithExtensionWidth > 0) { Project project = myEditor.getProject(); VirtualFile virtualFile = myEditor.getVirtualFile(); if (project != null && virtualFile != null) { for (EditorLinePainter painter : EditorLinePainter.EP_NAME.getExtensions()) { Collection<LineExtensionInfo> extensions = painter.getLineExtensions(project, virtualFile, myWidestLineWithExtension); if (extensions != null && !extensions.isEmpty()) { return; } } } myMaxLineWithExtensionWidth = 0; } }
private void paintLineExtensions(Graphics2D g, int line, float x, int y) { Project project = myEditor.getProject(); VirtualFile virtualFile = myEditor.getVirtualFile(); if (project == null || virtualFile == null) return; for (EditorLinePainter painter : EditorLinePainter.EP_NAME.getExtensions()) { Collection<LineExtensionInfo> extensions = painter.getLineExtensions(project, virtualFile, line); if (extensions != null) { for (LineExtensionInfo info : extensions) { LineLayout layout = new LineLayout(myView, info.getText(), info.getFontType(), g.getFontRenderContext()); g.setColor(info.getColor()); x = paintLineLayoutWithEffect( g, layout, x, y, info.getEffectColor(), info.getEffectType()); int currentLineWidth = (int) x; EditorSizeManager sizeManager = myView.getSizeManager(); if (currentLineWidth > sizeManager.getMaxLineWithExtensionWidth()) { sizeManager.setMaxLineWithExtensionWidth(line, currentLineWidth); } } } } }