improve id matching during findBestMatch #94
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've added back the original idiomorph id set matching code. This code counts up the number of id's in the current new node and then as it scans though the content for the match it counts up the number of id's that will be displaced and if this ever goes over the number we will preserve in place with the match then we break and return our nothing (or our last valid saved softmatch) so that the current id nodes will instead be inserted in place instead of searching to the bottom to find the id in lower down old content. If we dont do this then sometimes it will instead remove multiple nodes with id's to make the lower down match and put them in pantry instead and discard any non id'ed content that could have been morphed possibly.
There is also an optimization added back in to return softmatch early if there are no id's in the current node so it can be softmatched quickly as it is not valid to keep searching for a id set match when there are no id's to match on!