boolean (FoldRegion foldRegion) { int regionStart = foldRegion.getStartOffset(); int regionEnd = foldRegion.getEndOffset(); int[] selectionStarts = foldRegion.getEditor().getSelectionModel().getBlockSelectionStarts(); int[] selectionEnds = foldRegion.getEditor().getSelectionModel().getBlockSelectionEnds(); for (int i = 0; i < selectionStarts.length; i++) { int start = selectionStarts[i]; int end = selectionEnds[i]; if (regionStart >= start && regionEnd <= end) return true; } return false; }