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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

馃挰 Identify Design Path For Bottom Drawer Tabs and Panels #419

Closed
Tracked by #346
austincondiff opened this issue Apr 11, 2022 · 13 comments
Closed
Tracked by #346

馃挰 Identify Design Path For Bottom Drawer Tabs and Panels #419

austincondiff opened this issue Apr 11, 2022 · 13 comments

Comments

@austincondiff
Copy link
Collaborator

austincondiff commented Apr 11, 2022

I'd like to discuss the bottom drawer and how we want to handle tabs and navigation therein.

In my concept we have a tab set identical to editor tabs like so

image

In VS Code, the have a different style of tab that represent different things (terminal, problems, output, debug console, etc. - some of those live elsewhere in CodeEdit), and terminal tabs are handled inside the terminal tab content like so...

image

In Nova, terminal can be tabs and live among editor tabs in the main content (no real concept of a bottom drawer)

image

In Webstorm this is how they handle this

image

And of course in Xcode, they don't have a concept of tabs in the bottom drawer but have two set left and right panels that each have a select at the bottom that act as pseudo tabs

Screen_Recording_2022-03-24_at_5.07.41_PM.mov

For what it's worth, in my current workflow in VS Code, I can have three panes of terminals at the bottom

image

So the big question is, how will we best handle this? What besides an integrated terminal will go down there?

I am a fan of how VS Code's terminal implementation but I am not sure I want to straight up copy it, and as I remember that the overall usability wasn't incredibly apparent regarding how it handled tabs and panes to begin with.

For those not familiar, here is a quick demo of how they work.

Screen_Recording_2022-03-24_at_5.21.35_PM.mov

And the above tabs...

Screen_Recording_2022-03-24_at_5.22.50_PM.mov

But I think we should stay close to Xcode's design. In VSCode I have so many tabs because I am running tasks which we will support in our task runner feature. We may however display output for each of those tasks being run.

Any thoughts around this?

Related Issues

@austincondiff
Copy link
Collaborator Author

austincondiff commented Apr 11, 2022

My initial impression is to do something like this
https://user-images.githubusercontent.com/806104/162756506-122f7eb8-e656-4cef-9385-5104739ee8d6.mov

The menu in each panel could contain a list of "tabs" associated with that panel, a divider, an add new terminal item, and an add new task output for every task being run.

@0xWDG
Copy link
Collaborator

0xWDG commented Apr 11, 2022

i like the top most image (0). second PHPStorm's.

Is it a good idea to add emoji's for the voting process?
image

Picture
option
Emoji
1 馃憤
2 馃憥
3 馃槃
4 馃帀
5 馃槙
6 鉂わ笍
7 馃殌
8 馃憖

@StefKors
Copy link
Collaborator

StefKors commented Apr 11, 2022

The menu in each panel could contain a list of "tabs" associated with that panel,

Using dropdown list for switching the terminals is not great. I would rather have real tabs. The look of the tabs in the Nova debugger is very clean for example.
Screenshot 2022-04-11 at 16 46 42

For a tabside bar here is screenshot of iTerm:
Screenshot 2022-04-11 at 16 48 30

instead of solving the problem of the side bar having Teminal, Debugger, Output ect... tabs then inside those multiple terminal tabs. We could also mix them. If you have Teminal, Debugger, Output and create 2 new terminal tabs it could result in: Teminal, Debugger, Output, Teminal, Teminal

@austincondiff
Copy link
Collaborator Author

austincondiff commented Apr 11, 2022

@StefKors What do you mean by "mix them"? Would you mind expounding?

@austincondiff
Copy link
Collaborator Author

austincondiff commented Apr 11, 2022

Which do you prefer? Vote via emoji.

馃帀 Option 1: Xcode's design pattern (followed loosely)

01-macOS-code-edit-alternate-ui

01-macOS-code-edit-alternate-ui-drawer-menu

馃殌 Option 2: Design pattern proposed by @StefKors

01-macOS-code-edit-alternate-ui-drawer-tabs-terminal

@austincondiff
Copy link
Collaborator Author

austincondiff commented Apr 11, 2022

Now that I think about it, option 2 might be more scalable because we can allow extension developers to add more tabs in this debug area. You can also drag and drop terminal tabs in the tab sidebar to reorder the split panels or put a terminal in a different group. But maybe this is possible in the first option somehow.

@jasonplatts
Copy link
Collaborator

jasonplatts commented Apr 12, 2022

How would a terminal "tab" or "group" be closed? Maybe a right-click context menu?

@austincondiff
Copy link
Collaborator Author

austincondiff commented Apr 12, 2022

I thought about this, it could be like the eject icon on a drive in Finder, or it could be a context menu item, or the Delete key.

@StefKors
Copy link
Collaborator

StefKors commented Apr 12, 2022

I would also go with option 2, simple and flexible. It would be nice to have a spot for the "split terminal" button, this one:

Screenshot 2022-04-12 at 10 46 56

@Angelk90
Copy link
Contributor

Angelk90 commented Apr 12, 2022

@StefKors : But not only vertically, sometimes it would be useful to have two horizontally.

@Angelk90
Copy link
Contributor

Angelk90 commented Apr 12, 2022

What do you think of a style like this?

image

@austincondiff
Copy link
Collaborator Author

austincondiff commented Apr 14, 2022

It seems like we have landed on option 2. Closing.

@avdept
Copy link
Contributor

avdept commented Apr 19, 2022

Sorry for commenting to already decided - but instead of taking space on right side, can we have 2nd top bar for tabs(right below Terminal/Debugger/Output row), just like in regular terminal? This would save some space for terminal content, which would be useful on narrow screens.

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

No branches or pull requests

6 participants