private static void generateLineWhitespace(@NotNull StringBuffer buffer,
                                             @NotNull CommonCodeStyleSettings.IndentOptions options,
                                             int indentSpaces,
                                             int alignmentSpaces,
                                             boolean tabsAllowed) {
    if (options.USE_TAB_CHARACTER && tabsAllowed) {
      if (options.SMART_TABS) {
        int tabCount = indentSpaces / options.TAB_SIZE;
        int leftSpaces = indentSpaces - tabCount * options.TAB_SIZE;
        StringUtil.repeatSymbol(buffer, '\t', tabCount);
        StringUtil.repeatSymbol(buffer, ' ', leftSpaces + alignmentSpaces);
      }
      else {
        int size = indentSpaces + alignmentSpaces;
        int tabs = size / options.TAB_SIZE;
        int spaces = size % options.TAB_SIZE;
        StringUtil.repeatSymbol(buffer, '\t', tabs);
        StringUtil.repeatSymbol(buffer, ' ', spaces);
      }
    }
    else {
       int spaces = indentSpaces + alignmentSpaces;
       StringUtil.repeatSymbol(buffer, ' ', spaces);
    }
  }
private static void generateLineWhitespace(@NotNull StringBuffer buffer,
                                             @NotNull CommonCodeStyleSettings.IndentOptions options,
                                             int indentSpaces,
                                             int alignmentSpaces,
                                             boolean tabsAllowed)