Skip to content

fix: eliminate UI freezes in LSPTextHover via async updates#1375

Merged
sebthom merged 1 commit intoeclipse-lsp4e:mainfrom
sebthom:async-hovers
Nov 11, 2025
Merged

fix: eliminate UI freezes in LSPTextHover via async updates#1375
sebthom merged 1 commit intoeclipse-lsp4e:mainfrom
sebthom:async-hovers

Conversation

@sebthom
Copy link
Copy Markdown
Member

@sebthom sebthom commented Nov 10, 2025

LSPTextHover now implements ITextHoverExtension2 and returns an async input that shows a placeholder immediately and updates when the language server responds.

The UI no longer waits for LS replies; getHoverRegion avoids blocking and falls back to a heuristic word-like region when data isn't ready.

FocusableBrowserInformationControl swaps in the final HTML and hides/disposes the hover when the server returns no content, errors, or stalls, preventing lingering "Loading..." popups.

Addresses #1270 #972

image
image

@sebthom sebthom requested a review from rubenporras November 10, 2025 12:52
Comment thread org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/hover/LSPTextHover.java Outdated
@rubenporras
Copy link
Copy Markdown
Contributor

@sebthom , amazing PR, thanks a lot. This has been in my mind for a long time, but I never had time for it.

Comment thread org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/hover/LSPTextHover.java Outdated
Comment thread org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/hover/LSPTextHover.java Outdated
Comment thread org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/hover/LSPTextHover.java Outdated
@sebthom sebthom force-pushed the async-hovers branch 2 times, most recently from 9bb4427 to f78f75e Compare November 10, 2025 15:04
@sebthom sebthom requested a review from rubenporras November 10, 2025 15:13
@rubenporras
Copy link
Copy Markdown
Contributor

@sebthom , I am finish with the review now. I am sorry that I did not have time to do the review all at once.

LSPTextHover now implements ITextHoverExtension2 and returns an async
input that shows a placeholder immediately and updates when the language
server responds. The UI no longer waits for LS replies; getHoverRegion
avoids blocking and falls back to a heuristic word-like region when data
isn't ready. FocusableBrowserInformationControl swaps in the final HTML
and hides/disposes the hover when the server returns no content, errors,
or stalls, preventing lingering "Loading..." popups.
@sebthom sebthom merged commit 8784548 into eclipse-lsp4e:main Nov 11, 2025
11 checks passed
@sebthom sebthom deleted the async-hovers branch November 11, 2025 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants