fix: Prevent block_locator from ignoring newlines #229
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.
Description
block_locator was trimming empty lines from the beginning and end of files. This is more impactful when trying to append to a file that ends in a newline, which would include any text file adhering to the POSIX standard (ending in a newline).
Sometimes LLMs include the trailing newline in the search block, which causes the bound check to short-circuit in SearchEngine:_evaluate_position().
If you want to try to reproduce the Issue, I would suggest creating a simple file such as:
then telling an LLM to append something to the end of the file. I had this action fail with Claude Sonnet.
make testto ensure all tests passmake formatto format the codemake docsto update the vimdoc pages