private void unfoldCurrentLine(@NotNull final Editor editor) { final FoldRegion[] allRegions = editor.getFoldingModel().getAllFoldRegions(); final int offset = editor.getCaretModel().getOffset(); int line = editor.getDocument().getLineNumber(offset); int start = editor.getDocument().getLineStartOffset(line); int end = editor.getDocument().getLineEndOffset(line); final TextRange range = new TextRange(start, end); editor .getFoldingModel() .runBatchFoldingOperation( new Runnable() { @Override public void run() { for (FoldRegion region : allRegions) { if (!region.isExpanded() && range.intersects( TextRange.create( region))) /*region.getStartOffset() <= offset && offset <= region.getEndOffset()*/ { region.setExpanded(true); } } } }); }