microsoft / vscode

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

Allow multiple views to show at the same time #26777

Closed whatyoubendoing closed 2 years ago

whatyoubendoing commented 7 years ago

Would be nice to be able to have both a left and right sidebar i,e file tree in left and VSC in right.

Kinda vibing off the multi panel layout of atom with github / git integration

Something like this

lol screen shot 2017-05-17 at 10 19 26 copy

leocaseiro commented 7 years ago

I was going to open an issue for that. It would be very handy multiple sidebars for the Code Outline extension.

Perhaps this is issue is related to #15038

tkgalk commented 7 years ago

Multi-sidebar setups would be awesome, especially now with the Code Outline and GitLens 5.0+ Extensions!

zaha commented 6 years ago

Was just wishing for the same :)

paco0x commented 6 years ago

+1

lig commented 6 years ago

While I'd like to see two sidebars, I would like much more a tiled window manager like in Eclipse IDE.

Hobart2967 commented 6 years ago

+1

b-fuze commented 6 years ago

I want this because I want some panes on a right sidebar and the rest on the left sidebar... image It's hard to see the code outline while also navigating my file tree.

dimitrieh commented 6 years ago

Going to post my mockup from https://github.com/Microsoft/vscode/issues/45283 as well:

group

parascent commented 6 years ago

+1

zoldia commented 6 years ago

+1

aliihsanmv commented 6 years ago

+1

nedo2020 commented 6 years ago

+1

ewan-sinclair commented 6 years ago

+1

lig commented 6 years ago

Everybody, who adds redundant +1 comments. Please don't.

This will lead only to other people will unsubscribe from this and/or this issue will be locked out from comments. Both things are bad for the further development of this issue.

Please, consider adding :+1: to the original description. Just click the icon.

Thank you!

dawid-s commented 6 years ago

Hi there, I was just wondering, are there any (distant) plans on implementing this?

michaeljota commented 6 years ago

Giving that extensions now can create its own buttons and explorer panel, this would be a big deal for us as users.

gulshan commented 6 years ago

I think 4+ viewlet icons on the left(or right if configured) is what gives vscode the "Iconic" look. Even if two viewlets are enabled, one on left another on right, I think only one side should have the icons. The other side can have text only vertical tabs. And then it can be configurable to enable icons on both side, or text on both side.

saluto commented 6 years ago

Any progress on that? Generalizing the great new grid layout to manage all components, including viewlets, is the one thing I am really missing on VSCode. File and code browsing, git, debugging - all would be much easier without having to switch the viewlets every time. I strongly suggest looking at Atom as inspiration. It's nearly perfect.

gersilex commented 6 years ago

As #49755 has been closed for being a duplicate, which isn't, we may need to discuss first if we should introduce a second activity bar.

The activity bar is the column of icons, shown at the left of the sidebar by default.

I suggest to introduce a second activity bar. Icons in the activity bar are already movable by the user. We can allow the user to move icons to the second activity bar on the right, which can become visible while holding an icon (keeping the mouse button pressed). Each clicked icon can show up in its respective sidebar. So clicking an icon in the left activity bar will open the element in the left sidebar; clicking an icon in the right activity bar will open the element in the right sidebar.

Both the right sidebar and activity bar could be hidden by default, only showing up while moving icons to not force the user to use it and reduce clutter.

What do you think?

smspivak commented 6 years ago

+1

ghost commented 6 years ago

I think the activity bar should only be on the left. That way you can select a context menu option to open the view on the right side.

gersilex commented 6 years ago

@nealot That is an interesting suggestion. Could work and would be flexible if you want to have the views on different sides often. But I can also imagine that users might not even try right-clicking the icons. Or me just clicking on it, without thinking about the mouse button I should press. Touch users might need another way to open it on the right side as well.

ghost commented 6 years ago

@gersilex

But I can also imagine that users might not even try right-clicking the icons. Or me just clicking on it, without thinking about the mouse button I should press.

Currently, to hide an activity bar icon you must use the context menu -- why would this action be any different? Although I do think this should be supplemented by a drag-and-drop functionality.

Touch users might need another way to open it on the right side as well.

As I mentioned above, I think drag-and-drop would be beneficial here. I use a touchscreen and while the context menus aren't unusable, they are difficult to work with.

Having two activity bars not only looks pretty uncomfortable, but it also wastes a lot of screen space; I'm completely against the idea of enabling it by default. If you meant for the second bar to be an option in the settings, however, then I would wonder why that path is any less cumbersome then using the context menu.

On another note, how would the keyboard commands for this look like?

gersilex commented 6 years ago

@nealot

this should be supplemented by a drag-and-drop functionality Completely agree here.

Currently, to hide an activity bar icon you must use the context menu I think I misunderstood your first comment. I thought you wanted the view to open instantly, without showing a context menu. The idea with the context menu sounds good, though.

So we would add another entry to the context menu of the icons. Should the entry be for toggling the location (like Pin to right activity bar)? That sounds good to me.

Talking about drag-and-drop. We could also just drag the view to the right and display the right sidebar. This would comply with the look-and-feel of the editor windows and the grid. Maybe we can do both.

I do not insist in using a second activity bar at all. You got a strong point there and I agree that we should not introduce a second activity bar.

ghost commented 6 years ago

@gersilex My bad, I should have worded my original comment better. I like your idea about toggling the position.

Maybe we could do something like this:

  1. User right clicks on an icon
  2. Selects context menu option Pin to right
  3. Clicking on the icon from that point on opens it
  4. Option changes to Pin to left

Also related (I think?): https://github.com/Microsoft/vscode/issues/50853

dawid-s commented 5 years ago

Hi there, is there any development going on in this area? Perhaps there is a similar feature already being worked on? If that is the case I would appreciate if someone could provided related tickets pleae. From the UI point of view this is the biggest issue for me right now.

eazrael commented 5 years ago

Code Outline really needs it's own window. Having Explorer and Outline open at the same time is really the best way to navigate Quick in the Code. I would even say, drop the minimap and put the outline there (or on the left side ;-) Since a few years, the most common screen format is 16:9 with more horizontal space than vertical space, but source code did not grow horizontal, so more screen space is wasted with a lot of whitespace on the right side of the editor.

zacharied commented 5 years ago

Curious what the status of this is. It seems really overly opinionated to force all of these elements into one pane. IntelliJ handles this much better, modularizing each component into its own pane that can be moved wherever.

burtek commented 5 years ago

@bpasero do you guys have any plans for this?

sloane-shark commented 5 years ago

Adding my desire for this feature, I'm trying to use vs-code in a vertical monitor setup, and it would be neat to have the freedom to stack the panel, activity bar, and view (sidebar?) on the bottom of the screen. This would give me all of the horizontal space for editing, and move all of the "extra" stuff above or below. Obviously not all of the views will behave as well/effectively in a short and wide widget, but that's my problem to deal with I think :P

dawid-s commented 5 years ago

@matthewess I wouldn't hold my breath. They have loads of other requests and bugs to fix and perhaps this one would require quite a lot of work. However, we don't know any of it for sure as there has been a dead silence from the devs about it. If I am not mistaken there isn't a single comment from any VSC developer since when the request was created, which is over 2 years ago. The best thing you can do is to upvote the request and perhaps ask other developers that would care about it, to do so as well.

PowerWeb5 commented 5 years ago

@RMacfarlane and other VSCode devs,

Any chance we might see support soon for dual sidebars and/or floating windows #10121? Can this be prioritized?

Dual sidebars already has 325 votes already and the related floating windows request has 2906 votes + 364 comments (and would have even more if hadn't been locked almost a year ago), demonstrating a major need for this.

This would make a huge difference in making VSCode a competitive alternative to Visual Studio in terms of usability. As it stands now, I either have to switch back and forth frequently (for bookmarks, code outline, files view, etc.) or end up with a very cramped and unusable sidebar with all the groups shown there at the same time, considering lack of support for moveable docked panels.

Also, without this, I can't even stretch the window across multiple monitors as a workaround to make use of multiple monitors. Would this be easier or more difficult to do than floating windows for #10121?

Is there any workaround now to at least undock panels to actually make use of multiple screens? Is it technically possible for extensions to implement their own hard-coded support for showing tools outside of the one docked sidebar, eg. in their own window, and if so, any extensions that make use of that?

Duplicating Workspace isn't really a feasible alternative, as tools fail to sync up with any unsaved edits, so clicking on bookmarks/members in tools like Code Outline, Bookmarks/Favorites, etc. would fail to open in the window used for code editing (vs. the window used just to display another tool panel, eg. on 2nd monitor) and wouldn't show outline that matches the currently edited file (unless you save before each secondary tool panel window use).

There are far too many views and tools needed to be limited to just one sidebar, and one tool/view at a time. With Visual Studio I often have a dozen different tool windows shown, across 3 monitors.

Whereas, with VSCode as it is now, I'm limited to one single tool window and essentially just 1 monitor (as there would be little benefit to stretching across multiple ones).

VSCode doesn't even support showing as many panels at the same time as is often needed even for basic VBA coding in VBE with its ancient version of Visual Studio.

RMacfarlane commented 5 years ago

Our roadmap for the year is here: https://github.com/microsoft/vscode/wiki/Roadmap

Workbench layout Support for detachable workbench parts is our most upvoted feature request which due to architectural issues is challenging to implement. We will explore how we can work around this limitation. This investigation will focus on detaching terminals (2nd most upvoted feature request) and editors.

dbechrd commented 4 years ago

Specifically regarding the sidebar, this is what I would like to achieve:

image

ghost commented 4 years ago

Specifically regarding the sidebar, this is what I would like to achieve:

image

YES! I'd like to be able to do that as well.

najamelan commented 4 years ago

I miss this for debugging. I have a very wide monitor, but not so high (5120x1440). However I can't double up the debug sidebar, needing constant scrolling and most of my screen space just being wasted. And I'm not even having to look at registers right now, which by itself fills the entire height of my screen. I easily would have the real estate for 10 sidebars, but I can't reorganize anything other than collapsing things.

JavierReyes945 commented 4 years ago

I would like to also point that users who use monitor in portrait mode (vertical), would also benefit from a "Sidebar" that is not on the side (as space to the side is limited), but instead being able to configure sidebar to open top or bottom (a.k.a., splitting the editor and the sidebar vertically). When I have to make a complex search or debug, I have to change vscode to a landscape monitor, and when done, move it back to the portrait monitor. I understand that detachable windows for sidebar is complex to implement, but perhaps this here would be easier in the short term.

tonank commented 4 years ago

I very happily using and loving Intellij's approach of preserving the core of your perspective whether you are writing, analyzing, or debugging. I cannot really achieve that without multiple sidebars at the moment. Having to switch between explorer, tools, and debugging info is a real pain.

michaeljota commented 4 years ago

Intellij is an IDE. This is a text editor. That's like comparing a Chevy and a Mustang because you can take a ride in both.

b-fuze commented 4 years ago

But Atom has the feature, and it's also just a text editor.


From: Michael De Abreu notifications@github.com Sent: Thursday, April 2, 2020 1:28:25 PM To: microsoft/vscode vscode@noreply.github.com Cc: b-fuze b-fuze.root@live.com; Comment comment@noreply.github.com Subject: Re: [microsoft/vscode] Allow multiple views to show at the same time (#26777)

Intellij is an IDE. This is a text editor. That's like comparing a Chevy and a Mustang because you can take a ride in both.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/26777#issuecomment-607985051, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACQEV7PY2T43BFI3KMSXYDDRKTDLTANCNFSM4DLUT4IA.

saluto commented 4 years ago

As I already mentioned in #92786 (comment), another good inspiration is Theia, which uses the same concept and extensions as VSC.

eazrael commented 4 years ago

Intellij is an IDE. This is a text editor. That's like comparing a Chevy and a Mustang because you can take a ride in both.

The same killer argument as always. Please draw the line between an IDE and an editor, especially when it comes to the UI. What is missing to make VSC a "real" grown up IDE? Maybe we should apply duck typing for the definition of IDEs and editors.

Thea looks interesting.

biter777 commented 4 years ago

@bpasero, @sbatten https://github.com/Microsoft/vscode/issues/10121#issuecomment-345497635

About "isolated context" and Electron... Just add a one new panel, "additional panel" (for example) and add item "move to Additional panel" to the "right-click" menu, such as already implemented "move to Panel" for "outline", "variables" and others (workbench.action.moveFocusedView and others, couldn't find a link to the function's implementation, but I hope you'll understand).

In this case, it doesn't require to share the same memory to the "main" window. It's lightweight.

p.s. Everyone will be happy, especially the users of the wide and two monitors.

And yes, thank you for your work!

ThaDaVos commented 4 years ago

Will this be added? If so, any eta?

clshortfuse commented 4 years ago

Perhaps we need a new widget/component/control to this. Visual Studio essentially uses the TableLayoutPanel from .NET. It might be worth the effort to port that over to Web.

If you need UI guidance, you can look at Visual Studio: collapsed

expanded

moon6969 commented 4 years ago

Funny. Just had an ear-bashing from a colleague about browser based apps being the way of the future. I'm slightly dubious since they seem unable to cope with bleeding edge UI features like dockable windows and toolbars?

dessant commented 4 years ago

I miss having everything in one view. In Atom you can open files, edit them, and commit changes, without switching to different views. That workflow is way more superior to what vscode offers when you need to make small changes that require frequent commits.

esDotDev commented 4 years ago

This is certainly the missing link to making VSCode feel less like a toy and more like a grown up editor.

VS Studio, Unity, ItelliJ all allow you do dock multiple panels, in any configuration you need, customizing your workspace and use the full size of your display.

Working on VSCode on an Ultra-wide feels a bit silly with one small 400px menu hiding 8 pages of data, and no way to view more than one at a time. Even with a simulator running, I have ample room for 2 more columns.

It's a shame, because other than this one major flaw, it's really an excellent IDE.

renegadevi commented 4 years ago

Yes I really want this... I really want to have the option to put say the debugger on the right side visible all the time rather than having to switch view.

MuellerSeb commented 4 years ago

At least, the sidebar is mentioned in the "Workbench-Roadmap" for 2020: https://github.com/microsoft/vscode/wiki/Roadmap#workbench

Support a more flexible workbench layout such as allow sidebars on the left and the right. For example, you could have your outline on the right and the file explorer on the left.