Fix LSP symbol lookup failing due to skipping a character #107865
+1
−1
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.
This bug occurs when resolving a completion item (
completionItem/resolve
) and the cursor position reported by the LSP client is at the start of the completed item.In that case
get_text_for_lookup_symbol()
will skip the character the cursor is placed on, thus never finds a string matching the given symbol name and causes the lookup to fail. This in turn prevents documentation for the completed symbol from showing up.This scenario may occur with clients that have completion auto-insertion enabled, i.e. selecting a completion inserts it immediately.
In that scenario, the cursor position is technically at the first character of the completed item until the user starts typing again, implicitly accepting the completion.
It seemed like only functions were affected by this bug. Constants and members seemed to work fine.
Example (cursor position is indicated by
|
):