#2149 - Intelligence with StringReplace* ops

Identifier #2149
Issue type Feature request or suggestion
Title Intelligence with StringReplace* ops
Status Open
Handling member Deleted
Addon Diff Engine
Description If complete coverage in a StringReplace op can't be found, the engine will have to use individual StringReplaceAfter/StringReplaceBefore/StringReplaceBetween ops to get the necessary specificity.

However, there may be a middle ground in some cases.

For example:

a
b
a
b
a
-->
ax
b
ax
b
a

In this case, StringReplace of a to ax is not going to work, because there is one non-compliant case. So we may use StringReplaceBefore instead.

It wouldn't work automatically to cover these in a single case (I think) because we'd normally look for the StringReplaceBefore that captures a single diff line and only that line, i.e. over-specifying it, and then we'd follow on to find the remaining case with the second opcode.

However, obviously a single StringReplaceBefore op would work (replace any "a" line before a "b" line line with an "ax" line).
Steps to reproduce

Additional information Make sure unit tests exist to capture this.

Don't take my above wording or example as gospel. The key issue here is ensuring that our engine is smart enough to have both correctness and conciseness in its choice of ops.
Funded? No
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".

Rating

Unrated