public void readExternal(@NotNull final Element parentNode) { // save old breakpoints for (Element element : parentNode.getChildren()) { myOriginalBreakpointsNodes.add(element.clone()); } if (myProject.isOpen()) { doRead(parentNode); } else { myStartupManager.registerPostStartupActivity( new Runnable() { @Override public void run() { doRead(parentNode); } }); } }
@NotNull public List<BreakpointWithHighlighter> findBreakpoints( @NotNull Document document, @NotNull TextRange textRange) { ApplicationManager.getApplication().assertIsDispatchThread(); List<BreakpointWithHighlighter> result = new ArrayList<BreakpointWithHighlighter>(); int startLine = document.getLineNumber(textRange.getStartOffset()); int endLine = document.getLineNumber(textRange.getEndOffset()) + 1; TextRange lineRange = new TextRange(startLine, endLine); for (final Breakpoint breakpoint : getBreakpoints()) { if (breakpoint instanceof BreakpointWithHighlighter && lineRange.contains(((BreakpointWithHighlighter) breakpoint).getLineIndex())) { result.add((BreakpointWithHighlighter) breakpoint); } } return result; }