Vscode: Add support for vertical tabs

Created on 7 Oct 2020  Β·  15Comments  Β·  Source: microsoft/vscode



Add a big boost in developer productivity by adding support for vertical tabs for files. This is a basic feature in most browsers and is requested by many users.

Tabs are one of the most used features in VSCode in my opinion and improving them has a direct and strong impact in productivity. It would allow for many more tabs to be opened at the same time, without having to scroll them all the time, and could open up possibilities like grouping or archiving in the future.

Duplicates of this issue (that were closed for some reason) have 57 upvotes combined:

25 upvotes: https://github.com/microsoft/vscode/issues/75749
28 upvotes: https://github.com/microsoft/vscode/issues/85527
4 upvotes: https://github.com/microsoft/vscode/issues/65193

The following extension has almost 10,000 installs, but it requires a hack to work (I couldn't do it):

https://marketplace.visualstudio.com/items?itemName=pzuraq.vertical-tab-bar

feature-request workbench-tabs

Most helpful comment


:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

All 15 comments


This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!


:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

While I'm working on this with my own, here's my idea how it should be implemented.

Honeycam 2020-10-23 23-20-21

If verticalTabs option is introduced, there're 6 combinations editor should consider.

1) Tabs (true) Breadcrumbs (true) Vertical Tabs (true)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Title + Breadcrumbs      β”‚        
β”œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Tabs  β”‚Editor space      β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2) Tabs (true) Breadcrumbs (true) Vertical Tabs (false)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Tabs                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Title + Breadcrumbs      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Editor space             β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3) Tabs (true) Breadcrumbs (false) Vertical Tabs (true)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Title                    β”‚        
β”œβ”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Tabs  β”‚Editor space      β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β”‚      β”‚                  β”‚
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

4) Tabs (true) Breadcrumbs (false) Vertical Tabs (false)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Tabs                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Title                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Editor space             β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

5) Tabs (false) Breadcrumbs (true) Vertical Tabs (false)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Title + Breadcrumbs      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Editor space             β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

6) Tabs (false) Breadcrumbs (false) Vertical Tabs (false)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Title                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Editor space             β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β”‚                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Discuss should be made how layout will be laid on these combinations.
Plus, referring to the source code, since Title (with breadcrumbs) and Tabs are tightly glued together, we need to detach them gently.

I think that looks great.

Two more ideas:

  1. To have the option to have the vertical tabs as a panel like the File Explorer and the Outline panels. That way we can have the files and the opened tabs in the same column and save a lot of space. The File Explorer and the tabs both represent a similar type of information if you think about it: the File Explorer shows files in general as they are in the hard drive and the tabs which files are opened, arranged by users' preference.

  2. When splitting the editor, to be able to configure vertical tabs or horizontal tabs in each section separately.

  1. To have the option to have the vertical tabs as a panel like the File Explorer and the Outline panels. That way we can have the files and the opened tabs in the same column and save a lot of space. The File Explorer and the tabs both represent a similar type of information if you think about it: the File Explorer shows files in general as they are in the hard drive and the tabs which files are opened, arranged by users' preference.

I think VSCode already has it although it's a global one, not a per-editor-group.

image

I don't have that option here. How do you activate it? I have Folders, Outline, Timeline, NPM Scripts in the Explorer panel.

Simply right click on any list header will show context menu for toggling it.

2020-10-23_114937

Maybe it's an extension you have?

Weird. It's a built-in functionality since many years ago.

@santiagopuentep maybe you have previously moved Open Editors onto the Output Panel. Does it appear as a tab there? Or in the context menu of any tab there?

@gjsjohnmurray I searched everywhere but it's nowhere to be found. Two of my colleagues do have it so it'll remain a mystery I suppose. Thanks for the help anyway.

Found it. "explorer.openEditors.visible": 1 solved the problem.

@orange4glace From what I can see the Open Editors panel work almost exactly like vertical tabs.

The only problem I see is that it's not visible when other panels are opened (like search). So maybe improving panels to to be able to place them on a new column (for example a column with all the panels and one with the Opened Editors panel) or to the other side of the screen (to have some to the right and some to the left) I think could be a great way to solve vertical tabs + adding new possibilities for the other panels too.

@orange4glace Also, moving the close button to the right and removing the full path would make them look exactly like tabs and would remove a lot of noise to the panel.

Found it. "explorer.openEditors.visible": 1 solved the problem.

You may want to set that larger than 1. Default value is 9.

Helptext for the section doesn't state that a value of zero disables the panel entirely. It probably ought to.

image

Was this page helpful?
0 / 5 - 0 ratings

Related issues

trstringer picture trstringer  Β·  3Comments

philipgiuliani picture philipgiuliani  Β·  3Comments

chrisdias picture chrisdias  Β·  3Comments

ryan-wong picture ryan-wong  Β·  3Comments

villiv picture villiv  Β·  3Comments