microsoft / vscode

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

Ability to open a workspace with the profile that the workspace contains #181123

Open philwilson opened 1 year ago

philwilson commented 1 year ago

When learning about profiles and their relationship with workspaces, I was excited to think that this meant that we could have everything we needed in a repository to set up a fully working environment but this doesn't seem to be so simple ( unless I'm missing something).

When working as a team it would be good if everyone is working within an environment that is identical. This would mean that someone could open a workspace and have all the settings, extensions, launch configurations etc ready.

It seems that profiles are associated with workspaces but only for the individual computer user.

Whereas the other configurable parts are stored in json that can be committed to version control, easily shared and automatically applied to a project ( workspace config, launch configs, linting configs etc) it seems that profile data is stored locally on the machine ( e.g. /Users/xxxx/Library/Application Support/Code/User/profiles/xxxx/settings.json ).

I have looked for how to store this in our repository, alongside our workspace configs, but can not seem to find this option.

I understand that I can export the configuration, in which case another developer could then manually import it, but this doesn't seem to be a sensible way of providing an isolated development environment configuration. This could get particularly frustrating when onboarding developers where we have multiple workspaces each with it's own profile configuration.

My use case is around a mono-repo config where we have groups of functionality ( FE, BE, APIs, libraries, etc ). We have different workspaces depending on which groups of projects we need access to. Workspaces works fine for this. We are able to set up our launch configs and most other things based on a per project or per workspace basis. We are missing the ability to have the extensions installed and enabled while switching between the workspaces, which I thought would be done through profiles.

Therefore, request for feature would be:

Of course if I have missed anything and this is already possible then I would appreciate a pointer in the right direction but until seems that it can only be handled by installing external extensions.

Thanks Phil

sandy081 commented 1 year ago

have profile configuration saved alongside workspace json ( or embedded inside workspace json ) and be a part of the project filesystem so it can be shared and version controlled

You can already do this by exporting the profile and saving that in your source control repository.

if a workspace has an associated profile present, then automatically apply that profile when loading the workspace.

This is missing right now and I will convert this feature request to provide this functionality.

sandy081 commented 1 year ago

CC @isidorn

benduran commented 1 year ago

A related profile feature would be the ability to save profiles to a distributed location. This would be immeasurably beneficial for enterprise organizations, especially those that may or may not be able to leverage cloud providers for various reasons. That being said, I understand this might be in conflict with VSCode and might be something more suited to the SLA for VSCodium. Either way, subscribed for updates 🙂

vsEcho567 commented 5 months ago

any update on this?