int (@NotNull Document document, int line, int column, int tabSize) { int offset; if (0 <= line && line < document.getLineCount()) { final int lineStart = document.getLineStartOffset(line); final int lineEnd = document.getLineEndOffset(line); final CharSequence docText = document.getCharsSequence(); offset = lineStart; int col = 0; while (offset < lineEnd && col < column) { col += docText.charAt(offset) == '\t' ? tabSize : 1; offset++; } } else { offset = document.getTextLength(); } return offset; }