Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

notebook output scrollbar cannot be dragged if output continues to stream #177721

Closed
amunger opened this issue Mar 20, 2023 · 1 comment · Fixed by #183265
Closed

notebook output scrollbar cannot be dragged if output continues to stream #177721

amunger opened this issue Mar 20, 2023 · 1 comment · Fixed by #183265
Assignees
Labels
bug Issue identified by VS Code Team member as probable bug insiders-released Patch has been released in VS Code Insiders notebook-output verified Verification succeeded
Milestone

Comments

@amunger
Copy link
Contributor

amunger commented Mar 20, 2023

  1. create a notebook and run a cell that will continuously update over time
import time

for i in range(200):
    time.sleep(.3)
    print('string ' * 100)
    print(i)
  1. try to drag the scrollbar while output is still being written
    🐛 scrollbar is not held and returns to the bottom
@amunger
Copy link
Contributor Author

amunger commented May 19, 2023

Streaming output items are all compressed into a single item in notebookCommon.compressOutputItemStreams (?), so we would need to stop doing that unless needed (for editing previous lines)

Also, the current RenderApi method only allows passing a single output item, but the output renderer will need to be able to render the entire output as it currently does, or just append the new data.

Current:

renderOutputItem(outputItem: OutputItem, element: HTMLElement, signal: AbortSignal): void | Promise<void>;

Proposed method that would only be used for streaming outputs and if the chosen renderer contains the method:

renderOutputItems?(outputItems: OutputItem[], edit: { offset: number, lastOutputId: string },  element: HTMLElement, signal: AbortSignal): void | Promise<void>;

Another alternative would be adding info to the OutputItem itself, containing only the appended string if appending should happen.

@vscodenpa vscodenpa added the unreleased Patch has not yet been released in VS Code Insiders label May 23, 2023
@vscodenpa vscodenpa added this to the May 2023 milestone May 23, 2023
@vscodenpa vscodenpa added insiders-released Patch has been released in VS Code Insiders and removed unreleased Patch has not yet been released in VS Code Insiders labels May 25, 2023
@rzhao271 rzhao271 added the verified Verification succeeded label May 31, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Jul 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Issue identified by VS Code Team member as probable bug insiders-released Patch has been released in VS Code Insiders notebook-output verified Verification succeeded
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants