 
       return if not eslintRules?
 
+      ES_DEFAULT_INDENT = 4 # default eslint indent as spaces
+
+
+      # read indent if it exists and use it as the default indent for JSX
       rule = eslintRules['indent']
-      if typeof rule is 'number'
-        @eslintIndentOptions.indent[0] = rule
-        @eslintIndentOptions.indent[1] = 4 / @atomTabLength
+      if typeof rule is 'number' or typeof rule is 'string'
+        defaultIndent  = ES_DEFAULT_INDENT / @atomTabLength
       else if typeof rule is 'object'
-        @eslintIndentOptions.indent[0] = rule[0]
         if typeof rule[1] is 'number'
-          @eslintIndentOptions.indent[1] = rule[1] / @atomTabLength
-        else @eslintIndentOptions.indent[1] = 1
+          defaultIndent  = rule[1] / @atomTabLength
+        else defaultIndent  = 1
+      else defaultIndent  = 1
 
       rule = eslintRules['react/jsx-indent']
-      if typeof rule is 'number'
+      if typeof rule is 'number' or typeof rule is 'string'
         @eslintIndentOptions.jsxIndent[0] = rule
-        @eslintIndentOptions.jsxIndent[1] = 4 / @atomTabLength
+        @eslintIndentOptions.jsxIndent[1] = ES_DEFAULT_INDENT / @atomTabLength
       else if typeof rule is 'object'
         @eslintIndentOptions.jsxIndent[0] = rule[0]
         if typeof rule[1] is 'number'
           @eslintIndentOptions.jsxIndent[1] = rule[1] / @atomTabLength
         else @eslintIndentOptions.jsxIndent[1] = 1
+      else @eslintIndentOptions.jsxIndent[1] = defaultIndent
 
       rule = eslintRules['react/jsx-indent-props']
-      if typeof rule is 'number'
+      if typeof rule is 'number' or typeof rule is 'string'
         @eslintIndentOptions.jsxIndentProps[0] = rule
-        @eslintIndentOptions.jsxIndentProps[1] = 4 / @atomTabLength
+        @eslintIndentOptions.jsxIndentProps[1] = ES_DEFAULT_INDENT / @atomTabLength
       else if typeof rule is 'object'
         @eslintIndentOptions.jsxIndentProps[0] = rule[0]
         if typeof rule[1] is 'number'
           @eslintIndentOptions.jsxIndentProps[1] = rule[1] / @atomTabLength
         else @eslintIndentOptions.jsxIndentProps[1] = 1
+      else @eslintIndentOptions.jsxIndentProps[1] = defaultIndent
 
       rule = eslintRules['react/jsx-closing-bracket-location']
       @eslintIndentOptions.jsxClosingBracketLocation[1].selfClosing = TAGALIGNED
       @eslintIndentOptions.jsxClosingBracketLocation[1].nonEmpty = TAGALIGNED
-      if typeof rule is 'number'
+      if typeof rule is 'number' or typeof rule is 'string'
         @eslintIndentOptions.jsxClosingBracketLocation[0] = rule
       else if typeof rule is 'object' # array
         @eslintIndentOptions.jsxClosingBracketLocation[0] = rule[0]


  # get tab indents from eslint indent
  getEslintIndent: () ->
    if @eslintIndentOptions.indent[0] then jsIndent = @eslintIndentOptions.indent[1]
    else jsIndent = 0
    jsIndent

  # allign nonEmpty and selfClosing tags based on eslint rules
  # row to be indented based upon a parentTags properties and a rule type

      when JSXBRACE_OPEN
        @indentRow({row: row, blockIndent: token.firstCharIndentation, jsxIndent: 1 })
      when BRACE_OPEN
        @indentRow({row: row, blockIndent: token.firstCharIndentation, jsxIndent: 1 })
      when JSXTAG_SELFCLOSE_END, JSXBRACE_CLOSE, JSXTAG_CLOSE_ATTRS
        @indentRow({row: row, blockIndent: tokenStack[token.parentTokenIdx].firstCharIndentation, jsxIndentProps: 1})
      when BRACE_CLOSE
        @indentRow({row: row, blockIndent: tokenStack[token.parentTokenIdx].firstCharIndentation, jsxIndent: 1 })

  # get the token at the given match position or return truthy false
  getToken: (bufferRow, match) ->
