*/
  IndentInfo unindent(int row) {
    StringBuilder sb = code.get(row).sbuild;
    int cellCount = 0, charCount = 0;
    // Calculate the number of cells by which this line appears to be indented
    while (charCount < sb.length() && Character.isWhitespace(sb.charAt(charCount))) {
      if (sb.charAt(charCount++) == '\t') {
        cellCount = nextTabCharCount(cellCount);
      } else {
        cellCount++;
      }
    }
    if (cellCount > 0) {
      int desiredCells = prevTabCharCount(cellCount - 1);
      for (int cellAt = 0, i = 0; i < charCount; i++) {
        if (cellAt == desiredCells) {
          String removed = sb.substring(i, charCount);
          sb.delete(i, charCount);
          return new IndentInfo(cellCount - desiredCells, "", removed); //$NON-NLS-1$
        }
        // Theoretically, this occurs when you backspace a tab of size 4, but your indent is size 2
        if (cellAt > desiredCells) {
          String removed = sb.substring(i, charCount);
          sb.delete(i, charCount);
          StringBuilder inserted = new StringBuilder(desiredCells - cellAt);
          for (i = cellAt; i < desiredCells; i++) {
            inserted.append(" "); //$NON-NLS-1$
          }
          sb.insert(i, inserted);
          return new IndentInfo(cellCount - desiredCells, inserted.toString(), removed);
        }
        if (sb.charAt(i) == '\t') {
          cellAt = nextTabCharCount(cellAt);
        } else {
          cellAt++;
        }
      }
    }
    return new IndentInfo(0, "", ""); //$NON-NLS-1$ //$NON-NLS-2$
  }