void (@NotNull Editor editor, int @NotNull [] startOffsets, int @NotNull [] endOffsets, int indentSymbolsToStrip, int firstLineStartOffset) { if (!LOG.isDebugEnabled()) { return; } StringBuilder buffer = new StringBuilder(); Document document = editor.getDocument(); CharSequence text = document.getCharsSequence(); for (int i = 0; i < startOffsets.length; i++) { int start = startOffsets[i]; int lineStart = document.getLineStartOffset(document.getLineNumber(start)); int end = endOffsets[i]; int lineEnd = document.getLineEndOffset(document.getLineNumber(end)); buffer.append(" region #").append(i).append(": ").append(start).append('-').append(end).append(", text at range ") .append(lineStart).append('-').append(lineEnd).append(": \n'").append(text.subSequence(lineStart, lineEnd)).append("'\n"); } if (buffer.length() > 0) { buffer.setLength(buffer.length() - 1); } LOG.debug(String.format( "Preparing syntax-aware text. Given: %s selection, indent symbols to strip=%d, first line start offset=%d, selected text:%n%s", startOffsets.length > 1 ? "block" : "regular", indentSymbolsToStrip, firstLineStartOffset, buffer )); }