fix: enforce autoscroll in chattextarea #4117
Open
+118
−2
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.
Context
Autoscroll in
ChatTextAreastopped keeping the caret visible once the conversation got tall, so typing at the end of a long reply would push new lines off-screen. This change ensures the textarea tracks the caret while the user is appending text at the end, but avoids snapping the viewport when they’re editing in the middle of the message.Implementation
requestAnimationFramepass that forces the textarea to scroll to its fullscrollHeight.requestAnimationFrame/cancelAnimationFrameto assert when the autoscroll kicks in (and when it shouldn’t).How to Test
pnpm webview dev(or launch the VS Code extension) and open any long-running chat.pnpm test webview-ui --filterChatTextAreato execute the new specs.Get in Touch
Discord: @shirley