                   tokenStack[parentTokenIdx],
                   @eslintIndentOptions.jsxClosingBracketLocation[1].nonEmpty
               else
-                indentRecalc = @indentRow({row: row}
-                  ,tokenStack[parentTokenIdx].firstTagInLineIndentation,0,1)
+                indentRecalc = @indentRow({row: row, blockIndent: tokenStack[parentTokenIdx].firstTagInLineIndentation, jsxIndentProps: 1 })
 
             # re-parse line if indent did something to it
             if indentRecalc

                    # based upon eslint indent not React/indent
                    tagIndentation = firstCharIndentation = firstTagInLineIndentation =
                      @getEslintIndent() + @getIndentOfPreviousRow row
                    indentRecalc = @indentRow({row: row }, firstCharIndentation)
              else if isFirstTagOfBlock and parentTokenIdx?
                indentRecalc = @indentRow({row: row }, @getIndentOfPreviousRow(row), 1)
              else if parentTokenIdx?
                indentRecalc = @indentRow({row: row }, tokenStack[parentTokenIdx].firstCharIndentation, 1 )

            # re-parse line if indent did something to it
            if indentRecalc

  indentForClosingBracket: ( row, parentTag, closingBracketRule ) ->
    if @eslintIndentOptions.jsxClosingBracketLocation[0]
      if closingBracketRule is TAGALIGNED
        @indentRow({row: row, blockIndent: parentTag.tagIndentation})
      else if closingBracketRule is LINEALIGNED
        @indentRow({row: row, blockIndent: parentTag.firstCharIndentation })
      else if closingBracketRule is AFTERPROPS
        if @eslintIndentOptions.jsxIndentProps[0]
          @indentRow({row: row,  blockIndent: parentTag.tagIndentation, jsxIndentProps: 1 })
        else
          @indentRow({row: row,  blockIndent: parentTag.tagIndentation})
      else if closingBracketRule is PROPSALIGNED
        if @eslintIndentOptions.jsxIndentProps[0]
          @indentRow({row: row,  blockIndent: parentTag.firstTagInLineIndentation,jsxIndentProps: 1})
        else
          @indentRow({row: row,  blockIndent: parentTag.firstTagInLineIndentation})

  # indent a row by the addition of one or more indents.
  # returns false if no indent required as it is already correct
  # return true if indent was required
  # blockIndent is the indent to the start of this logical jsx block
  # other indents are the required indent based on eslint conditions for React
  # option contains row to indent and allowAdditionalIndents flag
  indentRow: (options) ->
    { row, allowAdditionalIndents, blockIndent, jsIndent, jsxIndent, jsxIndentProps } = options
    # calc overall indent
    if jsIndent
      if @eslintIndentOptions.indent[0]
        if @eslintIndentOptions.indent[1]
          blockIndent += jsIndent * @eslintIndentOptions.indent[1]
    if jsxIndent
      if @eslintIndentOptions.jsxIndent[0]
        if @eslintIndentOptions.jsxIndent[1]
          blockIndent += jsxIndent * @eslintIndentOptions.jsxIndent[1]
    if jsxIndentProps
      if @eslintIndentOptions.jsxIndentProps[0]
        if @eslintIndentOptions.jsxIndentProps[1]
          blockIndent += jsxIndentProps * @eslintIndentOptions.jsxIndentProps[1]
    # allowAdditionalIndents allows indents to be greater than the minimum
    # used where items are aligned but no eslint rules are applicable
    # so user has some discretion in adding more indents
    if allowAdditionalIndents
      if @editor.indentationForBufferRow(row) < blockIndent
        @editor.setIndentationForBufferRow row, blockIndent, { preserveLeadingWhitespace: false }
        return true
    else
      if @editor.indentationForBufferRow(row) isnt blockIndent
        @editor.setIndentationForBufferRow row, blockIndent, { preserveLeadingWhitespace: false }
        return true
    return false
