private int adjustColumn(final CompilerMessage m, final int line, final int col) {
    if (myTabSize != JAVAC_TAB_SIZE && line >= 1) {
      // javac uses hard-coded tab size 8 chars. So recalculate only if project's codestyle is different
      final VirtualFile file = m.getVirtualFile();
      if (file != null && file.isValid()) {
        final int tabCount = ApplicationManager.getApplication().runReadAction((Computable<Integer>)() -> {
          final Document doc = FileDocumentManager.getInstance().getDocument(file);
          if (doc == null) {
            return 0;
          }
          int tcount = 0;
          final CharSequence seq = doc.getCharsSequence();
          final int start = doc.getLineStartOffset(line);
          final int end = doc.getLineEndOffset(line);
          int charsExpanded = 0;
          for (int i = start; i< end; i++) {
            if (seq.charAt(i) == '\t') {
              charsExpanded += JAVAC_TAB_SIZE;
              tcount++;
            }
            else {
              charsExpanded += 1;
            }
            if (charsExpanded >= col) {
              break; // consider only those tabs that are located before the given column number
            }
          }
          return tcount;
        });
        if (tabCount > 0) {
          return Math.max(0, col + tabCount * (myTabSize - JAVAC_TAB_SIZE));
        }
      }
    }
    return col;
  }
private int adjustColumn(final CompilerMessage m, final int line, final int col)