Example #1
0
  private void adjustDiffForEmptyLines(CodeEdit ce, Vector<String> lines) {
    int leadingRemovedEmptyLines = 0;
    int trailingRemovedEmptyLines = 0;

    int leadingAddedEmptyLines = 0;
    int trailingAddedEmptyLines = 0;

    Vector<String> deletedLines = new Vector<String>();
    Vector<String> addedLines = new Vector<String>();
    for (String s : lines) {
      if (s.startsWith("-")) deletedLines.add(s);
      else if (s.startsWith("+")) addedLines.add(s);
    }

    for (int i = 0; i < deletedLines.size(); i++) {
      if (deletedLines.get(i).trim().length() == 1) leadingRemovedEmptyLines++;
      else break;
    }

    for (int i = deletedLines.size() - 1; i > 0; i--) {
      if (deletedLines.get(i).trim().length() == 1) trailingRemovedEmptyLines++;
      else break;
    }

    for (int i = 0; i < addedLines.size(); i++) {
      if (addedLines.get(i).trim().length() == 1) leadingAddedEmptyLines++;
      else break;
    }

    for (int i = addedLines.size() - 1; i > 0; i--) {
      if (addedLines.get(i).trim().length() == 1) trailingAddedEmptyLines++;
      else break;
    }

    ce.setAdd_idx(ce.getAdd_idx() + leadingAddedEmptyLines);
    ce.setAdd_size(ce.getAdd_size() - trailingAddedEmptyLines - leadingAddedEmptyLines);

    ce.setRem_idx(ce.getRem_idx() + leadingRemovedEmptyLines);
    ce.setRem_size(ce.getRem_size() - trailingRemovedEmptyLines - leadingRemovedEmptyLines);
  }