void (final Editor editor, final int lineNumber) { final JPanel panel = new JPanel(new BorderLayout()); Disposable unregisterActionsDisposable = Disposer.newDisposable(); panel.add(createActionsToolbar(editor, lineNumber, unregisterActionsDisposable), BorderLayout.NORTH); final LineData lineData = getLineData(lineNumber); final EditorImpl uEditor; final String report; if (lineData != null && lineData.getStatus() != LineCoverage.NONE && !mySubCoverageActive && (report = getReport(editor, lineNumber)) != null) { final EditorFactory factory = EditorFactory.getInstance(); final Document doc = factory.createDocument(report); doc.setReadOnly(true); uEditor = (EditorImpl)factory.createEditor(doc, editor.getProject()); panel.add(EditorFragmentComponent.createEditorFragmentComponent(uEditor, 0, doc.getLineCount(), false, false), BorderLayout.CENTER); } else { uEditor = null; } final LightweightHint hint = new LightweightHint(panel){ @Override public void hide() { if (uEditor != null) EditorFactory.getInstance().releaseEditor(uEditor); Disposer.dispose(unregisterActionsDisposable); super.hide(); } }; int hideFlags = HintManager.HIDE_BY_ANY_KEY | HintManager.HIDE_BY_TEXT_CHANGE | HintManager.HIDE_BY_OTHER_HINT | HintManager.HIDE_BY_SCROLLING; HintHint hintInfo = new HintHint(editor, new Point()); HintManagerImpl.getInstanceImpl().showGutterHint(hint, editor, lineNumber, THICKNESS, hideFlags, -1, false, hintInfo); }