This repository has been archived by the owner on Jun 15, 2023. It is now read-only.
Fix multiple string replacement when using TextEdit #158
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 pull-request is related the following issue: #152
Issue
The implementation of a completion is working fine when using the CompletionContributor to modify the document but when an InsertHandler is added to the LookupElement using a TextEdit, the affected text is replaced twice.
The CompletionContributor replaces the text in the range to an empty LookUpString. Afterwards, the InsertHandler is called, which replaces the affected Range again, which is no longer present.
Example
The completion starts with
hello : Intege; //Test
The CompletionContributor replaces
Intege
to blankhello : ; //Test
The InsertHandler replaces the range of the
Intege
that is now; //Te
toInteger64
hello : Integer64st
Server response:
Solution
I solved the issue by skipping the first step. The CompletionContributor replaces now from
Intege
toIntege
(No changes in the document). Maybe there is a better solution to solve this issue.