microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.75k stars 28.73k forks source link

Notebook UX/usability issues #142455

Closed eamodio closed 1 year ago

eamodio commented 2 years ago

I've been using notebooks more lately because of @joyceerhl's GitHub GraphQL notebook. And I find myself fighting with the UX of the notebook more and more.

Here are some of the issues I've been experiencing

Another alternative to resizing the output, a suggestion from @TylerLeonhardt is to have an option (per-cell imo) to show the output side-by-side with the cell. I think having an orientation option would be a great addition.

roblourens commented 2 years ago

Thanks for using notebooks @eamodio!

roblourens commented 2 years ago

I ended up just implementing the sticky run button, it's in Insiders, let me know if it helps. We're going to try it with the cell toolbar too.

eamodio commented 2 years ago

@roblourens Sweet!

The sticky run button definitely helps, but it can still be a great distance from the output:

image

Do you ever collapse the code cell input?

I didn't even know that was possible :) But in my case recent use case, I wouldn't want the whole cell input hidden, just collapsed to be much smaller. Because while I don't need to tweak the large query a lot, I do constantly tweak the data at the end. In the image above, I am usually tweaking the variables at the end there.

I assume that people will mainly use the buttons or keybindings for execution. Are you going to use the context menu for executing cells because the buttons are scrolled out of view? Would you still use that if the run button was sticky?

I don't think I'd use the run action from there much, but it was the first place I went to look for the action -- so I would definitely expect it to be there.

Also from the image, you can see it looks like theming is broken on outputs in today's insiders.

eamodio commented 2 years ago

I'd also suggest adding the Collapse Output action into this context menu: image

joyceerhl commented 2 years ago

theming is broken on outputs in today's insiders.

@rebornix is this maybe a side effect of moving the renderer into an extension?

rebornix commented 2 years ago

@joyceerhl right, the current one doesn't load textmate engine and grammars so it's using monarch for tokenization. If this is highly wanted I can look into making it work.

rebornix commented 2 years ago

I'd also suggest adding the Collapse Output action into this context menu:

@eamodio 👍 I think we should.

rebornix commented 2 years ago

👍 for the sticky run button, it at least ensures that you don't have to scroll the view to run the cell again.

We once explored ideas of showing a sticky output toolbar (though the challenge is where to put it) where we can show multiple renderers/mimetypes and a few actions, re-run can be one of them. Maybe as a first start:

@eamodio would that help?

eamodio commented 2 years ago

Maybe there can be a run button on the side of the output just like the input?

roblourens commented 2 years ago

I will move the "Collapse output" action in March: https://github.com/microsoft/vscode/issues/143760

I'm not not sure about having a second run button just to be closer to the output. I guess I am not clear on the scenario, is this about tweaking the code at the end of the code cell and mousing from there to the run button, or mousing from the output to the run button?

register run cell in ... action bar for the output

Also am not sure about that, I would feel confused seeing it there.

I guess I don't have an issue with adding execute actions to the context menu, except that it feels a little crowded already, and execution already has its own dedicated screen space

roblourens commented 1 year ago

I know that Notebook UX could still see improvements, but I think we've done everything here that I want to do (or it's tracked elsewhere). Thanks for the feedback