
Hello,
We are experiencing performance issues with some of our users' applications.
When they edit the code, there are slowdowns.
After investigating, it seems to be caused by the filtering of items in an IntelliPrompt completion session.
We have a completion session with a high number of symbols (>2000), and the following options are enabled:
CompletionSession session = new()
{
CanCommitWithoutPopup = canCommitWithoutPopup,
CanFilterUnmatchedItems = true,
MatchOptions =
CompletionMatchOptions.IsCaseInsensitive |
CompletionMatchOptions.TargetsDisplayText |
CompletionMatchOptions.UseAcronyms |
CompletionMatchOptions.UseShorthand
};
This is reproducible with the above configuration, with example 10 from the syntax editor sample browser, inserting over 2000 completion items in SimpleCompletionProvider.cs.
If you open the completion session and edit (for example, by holding down a key on the keyboard), you can see that text entry is slowed down when filtering completion items; however, when there are no more items to filter, the slowdown disappears.
https://ibb.co/6cjxHmXF
Here is the code of SimpleCompletionProvider.cs I've used to reproduce it:
https://pastebin.com/Y4j10f5a
Is it due to the filter? If so, is it possible to not block the UI thread while the filter is being applied?