Vscode: No global setting to hide unwanted sidebar panels installed by extensions

Created on 1 Oct 2017  路  29Comments  路  Source: microsoft/vscode

  • VSCode Version: 1.16.1
  • OS Version: macOS 10.13

Here's what I get if I create a new window:

screen shot 2017-10-01 at 15 40 12

Those things screaming at me in all-caps at the bottom ("XML DOCUMENT", "PROJECTS", "COMPARE COMMITS", etc.) have no relevance to me and their functionality is unwanted. I want the functionality that the extensions provide, but not the panels. For example, I use the Project Manager extension to switch between projects, but its sidebar panel is completely pointless.

(As an aside, I don't know why they're not context-aware. Why is "XML DOCUMENT", which is a panel that shows an XML document's structure, visible when I don't have an XML document open? Why doesn't it automatically open when I view an XML document? Why isn't there a command palette command to show/hide it? Why is there a panel dedicated to XML instead of a generic "editor structure" panel, anyway? I have many questions.)

I can right-click and select "Remove from Sidebar", and they go away, until I open another window. I have to repeat this process for every new window I open. These annoying things should, at best, be opt-in, not opt-out.

The only extension which is sensible enough to have a global setting is the official Docker extension, which has docker.showExplorer.

explorer-custom extensions feature-request verification-needed verified

Most helpful comment

This is extremely annoying, not only there is now way to hide them permanently but by default they open expanded (even when there is no content to show!) which makes the explorer available area (what I'm actually using initially) super tiny and impractical to use, forcing me to always hide all sidebar panels before I can even begin to use the explorer.

All 29 comments

This is extremely annoying, not only there is now way to hide them permanently but by default they open expanded (even when there is no content to show!) which makes the explorer available area (what I'm actually using initially) super tiny and impractical to use, forcing me to always hide all sidebar panels before I can even begin to use the explorer.

vscode-docker (as you mentioned) and vscode-gitlens provide a setting to hide the explorers:

"docker.showExplorer": false,
"gitlens.gitExplorer.enabled": false,

so considering that some extensions do provide a mechanism, I'd advice to raise the issue/feature-request on their respective issue trackers as well or disable the extension while not using it, I did so for xmlTools.

If there are 100 extensions that adopt this API and create sidebar panels, the setting has to implemented 100 times. If it can be implemented in VSCode, it only needs to be implemented once.

yes, please. I find this to be annoying as well. A suggestion is to require extensions to standardize on a convention for adding to the sidebar and having a global whitelist of extension names in vscode settings to enable specific ones.

Maybe the context menu can have "Hide from sidebar (Workspace)" and "Hide from sidebar (Always)" just like the extension list. I think it's the most easy to reach way.

I also agree these panel status should be saved in setting files to be easily toggled.

Maybe each extension's panel can also be listed in its detail page, and we can toggle them there.

These unused & open sidebar-window tabs||sub-windows driving me nuts.

Every time I open up VSCode I have to click them multiple times to get them moved down to the bottom and out of sight.

This applies to extensions sidebar window with almost maximized recommended extensions but also even worse for the source control when opening a Go-Lang github.com/ root folder which contains dozen git projects and the debug sidebar.

The manual defined positions must be stored and reloaded.

That behavior changed with the last release, before it wasn't that aggressive.

@ITSecMedia

The manual defined positions must be stored and reloaded.

This should work. Are you having this issue? If so can you please file a separate issue for that?

@Bobeta This is covered in the text of the issue.

There are two issues here

  1. Those contributed views should not be expanded on a fresh new workspace. Here is the issue tracking that - #36134

  2. Ability to disable contribute views for all workspaces. One of the solutions, I am thinking for this is to provide actions to enable/disable extension contributions globally just like disabling / enabling extensions.

Suggestions are welcome.

Thanks.

any solution or workaround for this issue?

the user experience is so bad...

Can confirm. Extremely annoying...

@sandy081 Is there any temporary workaround for this?

Annoying me too, and seems vscode can not remember which panel has been hided.

@sandy081 I don't understand what you mean by 'disabling contribute views'. What functionality of the extension does that entail; all the views in the editor itself (GitLens for example) in addition to the ones in the side bar? Or more granular than that?

Ability to customise (enable/disable) each contributed view from the extension. If an extension has more than one contributed views, you could be able to enable/disable each one for a workspace or globally.

+1

+1

+1

@sandy081 maybe one idea would be to show 2 actions when you right click on a view, similar to how we do it for extensions, to disable a view per workspace or globally:

image

I think this setting worked for me:
"explorer.openEditors.visible": 0,

@nurp Your method works like a charm, but I prefer "explorer.openEditors.visible": 1 instead of 0, because I need the OPEN EDITORS section.

This is so annoying. Not only some sections can't be removed without removing the extensions adding them, but even if I collapse them the moment I open a new VSC window I have to collapse them again, and again, and again.

@atombender I don't know if Project Manager fixed this since your first post, but if it didn't you may consider switching to my Projects+ extension.

Any updates on this?

I am planning to handle this step by step.

As the first step, I am changing the behaviour to scope the visibility the view globally. It means, when a user hides the view, it will be hidden for all windows and enabling the view will show it all windows.

This will make it consistent with other UI state story like Side bar viewlets visibility, panels location.

Let me know if this is helpful?

I think globally scoped makes sense and will help somewhat, but I think something more involved in changing how you turn on/off views is needed. See more here: https://github.com/Microsoft/vscode/issues/31485#issuecomment-325175168

Also if there was some sort of ... menu that at the top that would show the view selection menu, maybe you could also get away with hiding contributed views by default (maybe only ones that would be shown at startup -- view triggered through actions should be visible) and have some kind of indicator dot or something on that ... item that signals there is something new there. Might be a bit too undiscoverable though.

I'm using vscode for several different projects, most of them are HTML and JS projects, but i also have an playground project to followup the development of Java Support development in VS Code.
It would be great to have Extension Sidebar settings for each workspace, so i do not need to reconfig it when i switched project from one to another

There are two parts to how a view can be shown or not.

  1. Contextual visibility: Extensions providing a view can determine when a view can be shown or not. Some nice examples are: Showing a debug explorer only when debug session in on. Show git related custom views only when the current workspace has git repo.

  2. User configurable visibility: From the UI, user can be able to show or hide a view. This will always takes the precedence to previous. Currently, we have a consistent gesture to show/hide/discover views. Please see the following video

kapture 2018-01-25 at 17 00 03

There is a new entry in the View menu Open View.. that will show all views.

screen shot 2018-01-25 at 17 00 14

User configured visibility state is preserved globally for all views and can open any view from there.

Closing this issue in favour of above improvements. Please open new issues for specific concerns.

Verify:

Visibility of a view is stored globally. When a user hides the view, it gets hidden in all windows and enabling the view, it gets shown in all windows.

Note: Visibility is not updated for opened windows.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

DovydasNavickas picture DovydasNavickas  路  3Comments

philipgiuliani picture philipgiuliani  路  3Comments

sirius1024 picture sirius1024  路  3Comments

lukehoban picture lukehoban  路  3Comments

biij5698 picture biij5698  路  3Comments