/** * Adapts a given line range so that the result is a line range that does * not overlap with any collapsed region of the attached viewer. * * @param lineRange the original line range * @param line the anchor line * @return the adapted line range * @since 3.0 */ private ILineRange adaptLineRangeToFolding(ILineRange lineRange, int line) { if (fSourceViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) fSourceViewer; try { IRegion region= convertToRegion(lineRange); IRegion[] coverage= extension.getCoveredModelRanges(region); if (coverage != null && coverage.length > 0) { IRegion container= findRegionContainingLine(coverage, line); if (container != null) return convertToLineRange(container); } } catch (BadLocationException x) { } return null; } return lineRange; }
/** * Adapts a given line range so that the result is a line range that does * not overlap with any collapsed region of the attached viewer. * * @param lineRange the original line range * @param line the anchor line * @return the adapted line range * @since 3.0 */ private ILineRange adaptLineRangeToFolding(ILineRange lineRange, int line) { if (fSourceViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) fSourceViewer; try { IRegion region= convertToRegion(lineRange); IRegion[] coverage= extension.getCoveredModelRanges(region); if (coverage != null && coverage.length > 0) { IRegion container= findRegionContainingLine(coverage, line); if (container != null) return convertToLineRange(container); } } catch (BadLocationException x) { } return null; } return lineRange; }