code: def unindent(self):
          
  
          _logger().debug('unindent')
          cursor = self.editor.textCursor()
          _logger().debug('cursor has selection %r', cursor.hasSelection())
          if cursor.hasSelection():
              cursor.beginEditBlock()
              self.unindent_selection(cursor)
              cursor.endEditBlock()
              self.editor.setTextCursor(cursor)
          else:
              tab_len = self.editor.tab_length
              indentation = cursor.positionInBlock()
              indentation -= self.min_column
              if indentation == 0:
                  return
              max_spaces = indentation % tab_len
              if max_spaces == 0:
                  max_spaces = tab_len
              spaces = self.count_deletable_spaces(cursor, max_spaces)
              _logger().info('deleting %d space before cursor' % spaces)
              cursor.beginEditBlock()
              for _ in range(spaces):
                  cursor.deletePreviousChar()
              cursor.endEditBlock()
              self.editor.setTextCursor(cursor)
              _logger().debug(cursor.block().text())
docs: Un-indents text at cursor position.