镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

💬 Identify Design Path For Bottom Drawer Tabs and Panels #419

Description

@austincondiff

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

Activity

  1. austincondiff commented on Apr 11, 2022

    @austincondiff
    CollaboratorAuthor

    My initial impression is to do something like this
    https://github.com/proxy/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.

  2. 0xWDG commented on Apr 11, 2022

    @0xWDG
    Collaborator

    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 👀
  3. StefKors commented on Apr 11, 2022

    @StefKors
    Member

    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

  4. austincondiff commented on Apr 11, 2022

    @austincondiff
    CollaboratorAuthor

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

  5. austincondiff commented on Apr 11, 2022

    @austincondiff
    CollaboratorAuthor

    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

  6. austincondiff commented on Apr 11, 2022

    @austincondiff
    CollaboratorAuthor

    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.

  7. jasonplatts commented on Apr 12, 2022

    @jasonplatts
    Collaborator

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

  8. austincondiff commented on Apr 12, 2022

    @austincondiff
    CollaboratorAuthor

    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.

  9. StefKors commented on Apr 12, 2022

    @StefKors
    Member

    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

  10. Angelk90 commented on Apr 12, 2022

    @Angelk90
    Contributor

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

  11. Angelk90 commented on Apr 12, 2022

    @Angelk90
    Contributor

    What do you think of a style like this?

    image

  12. austincondiff commented on Apr 14, 2022

    @austincondiff
    CollaboratorAuthor

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

  13. avdept commented on Apr 19, 2022

    @avdept
    Contributor

    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.

  14. moved this from 🆕 New to 🏁 Complete in CodeEdit Projecton Feb 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions