Fix debouncing not working on first search character; add extra delay instead #2348
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.
For some unknown reason, debouncing was specifically avoided for the first character. This is weird because it's where debouncing is needed most, especially for long files where a single-character search can hang the app for a long time.
I don't think this will fix everything about long-running searches, but debouncing all characters will at least match expectations, allowing people to attempt to type quickly to avoid them.
Since 50ms seemed very quick (a three-frame window at 60 fps), I decided to use a longer delay (200ms) for short searches three characters long or less. The original delay is retained for other lengths, where interactive incremental behavior is more useful and won't hang the app if it happens accidentally.
Should partially address #1729 and #769.