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.
Issue
Wrapped lines are not being considered correctly in search. Because of that, findPrevious and findNext are skipping entries that match the searched pattern.
Proposed solution
I changed a bit how the findInLine works to use a SearchPosition object instead of param values.
That way we can update the startRow/startCol in the function and make sure the caller function will also consider them.
For reverse search:
The searchStart was being calculated incorrectly. Instead of using terminal.cols as the max value, we should consider that wrapped lines can have a startCol higher than this. (Ln. 163)
For regular search:
In case we have multiple entries of the search term in a single wrapped line, findNext was finding only the first entry. In case we find a wrapped line, we need to iterate back until we find the line start, while increasing the startCol. This will make us start the search in the correct line/col, and make sure we go through the whole wrapped line before going back to the start.