Very fast diffing algorithm when changes are across many lines.
(self, start, end, new_value)
| 142 | self.__setitem__(slice(key, key + 1), []) |
| 143 | |
| 144 | def _get_diff(self, start, end, new_value): |
| 145 | """ |
| 146 | Very fast diffing algorithm when changes are across many lines. |
| 147 | """ |
| 148 | for line_number in range(start, end): |
| 149 | if line_number < 0: |
| 150 | line_number = len(self._buffer) + line_number |
| 151 | yield ("D", line_number, 0, self._buffer[line_number], True) |
| 152 | |
| 153 | if start < 0: |
| 154 | start = len(self._buffer) + start |
| 155 | for line_number in range(len(new_value)): |
| 156 | yield ("I", start + line_number, 0, new_value[line_number], True) |
| 157 | |
| 158 | def _get_line_diff(self, line_number, before, after): |
| 159 | """ |
no outgoing calls
no test coverage detected