Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync mutliple settings profiles #92393

Closed
wolf99 opened this issue Mar 10, 2020 · 13 comments
Closed

Sync mutliple settings profiles #92393

wolf99 opened this issue Mar 10, 2020 · 13 comments
Assignees
Labels
*duplicate Issue identified as a duplicate of another issue(s) feature-request Request for new features or functionality settings-sync
Milestone

Comments

@wolf99
Copy link

wolf99 commented Mar 10, 2020

Settings sync is recently introduced in insiders.
(I don't run insiders, I just saw the announcement in the release notes so this may already be present)
To date I have used an extension for this that operates very well (mega props to the dev): https://github.com/shanalikhan/code-settings-sync

This extension uses private GitHub gists to sync settings, this means that there can be multiple gists for multiple settings "profiles". This is super handy for example where I have settings that I use across machines at work, and different settings that I use across personal machines.

Does, or can, the settings sync feature support similar?

Thanks!

@Tyriar
Copy link
Member

Tyriar commented Mar 11, 2020

@wolf99 can you give an example of what sort of profiles you use and how they differ (just settings, or extensions too)?

@Tyriar Tyriar added info-needed Issue requires more information from poster settings-sync labels Mar 11, 2020
@wolf99
Copy link
Author

wolf99 commented Mar 17, 2020

Sure, different settings are useful in cases where:

  • Work may have internal services instead of the generally available ones I use for my own work (e.g. SonarQube, PMD rule-sets, etc), so extensions and extension settings will be different
  • Common settings that differ, I need to use for work but that I don't want to use at home (e.g. eg layout may change due to different screen count, size and resolution).
  • Extensions that are useful in one setting but not in the other (e.g. I might use Java and Maven extension set at work, but at home it is just unused bloat; and vice-versa for the C set).
  • Or even down to the level of the version of or permissions for Windows (e.g. one environment may allow and have latest update for WSL, other environment does not allow WSL, or is held back version of windows meaning WSL is not of required version)

@filmgirl
Copy link
Member

I'll add my own use-cases here too as this is a feature that is very important to me (and it made the Settings Sync extension less useful until support for multiple gists was added).

As @wolf99 mentioned, there are scenarios where one machine (or one version of Code, say Insiders vs regular) needs to have different settings and extensions than another.

For instance, I have different extensions installed across my Macs and my PCs (similar to what Chris mentioned in #88625) and my work-around is to have a different sync profile/gist for Mac and PC.

  • In addition to workspace settings for a project, I sometimes find it better to have a separate "profile" with a set of included/configured extensions for a specific purpose. That way, I can avoid extension bloat (as @wolf99 mentioned) when it is only needed in certain scenarios.
  • I like to have work/personal profiles of specific settings and extensions. There are some extensions I only use at work, as an example.
  • I have a "blank" profile which is useful when doing in-person or online demos. Yes, I can just use a portable version of VS Code or delete my settings file altogether, but when I'm doing a training or workshop, I want to have the same experience as the class and go through the process of setup together. Having this "blank" profile is really useful in this context.
  • There are sometimes differences in extension settings based on the context of where it is being used.
  • I like to keep different extensions and settings for VS Code vs VS Code Insiders, as I often use Insiders to test more bleeding-edge things and know stuff can break.

@sandy081
Copy link
Member

We discussed about this partially (especially from insiders vs stable perspective) and decided not to separate them - #89066. Recommendation was to use different user accounts/profiles in such cases.

@sandy081 sandy081 added under-discussion Issue is under discussion for relevance, priority, approach and removed info-needed Issue requires more information from poster labels Mar 19, 2020
@Tyriar Tyriar removed their assignment Mar 20, 2020
@wolf99
Copy link
Author

wolf99 commented May 24, 2020

Hi @sandy081, @Tyriar as #89066 has been closed with a resolution that does not facilitate this aspect (nor does it seem to rule it out), can this issue be considered again?

@Tyriar Tyriar self-assigned this May 26, 2020
@Tyriar Tyriar added feature-request Request for new features or functionality and removed under-discussion Issue is under discussion for relevance, priority, approach labels May 26, 2020
@Tyriar Tyriar added this to the Backlog milestone May 26, 2020
@ArturoDent
Copy link

For similar, see Profile Switcher extension.

@theAkito
Copy link

We discussed about this partially (especially from insiders vs stable perspective) and decided not to separate them - #89066. Recommendation was to use different user accounts/profiles in such cases.

But:

By default, the VS Code Stable and Insiders builds use different Settings Sync services and so do not share settings. You can sync your Insiders with Stable using the Settings Sync: Select Service... command to select the Stable sync service. The Select Service command is only available in VS Code Insiders.

From https://code.visualstudio.com/docs/editor/settings-sync#_syncing-stable-versus-insiders

@Tyriar
Copy link
Member

Tyriar commented Aug 24, 2020

@theAkito we changed our mind so we have a completely separate service with a separate backing database to roll changes out to first. Switching to stable is available so you can still sync between stable and insiders as we know that's something people want to do.

@sandy081 sandy081 mentioned this issue Aug 25, 2020
@wolf99
Copy link
Author

wolf99 commented Sep 1, 2020

Two more data points on this:

  • Container image repositories. At work we, and I imagine most orgs that develop proprietary containerised s/w, use internal image repos rather than public ones. This means settings such as repo URL and credentials are different, specifying them all on the command line every time in either work or home reduces the usefulness of both settings sync and also extensions that would use such settings.
  • With the release of WSL 2, the gap between settings in vscode that work for for using WSL 2 vs WSL 1 (on held back installs of Windows) is now getting quite noticeable.

@lawweiliang
Copy link

Recently, I am having the same issues in VS Code extension as well. It was really troublesome if I switch javascript project to Java project or vice versa. I need to look around for the extension, enable and disabled it. So troublesome.

Currently, my solution is using vs code for javascript projects and IntelliJ IDEA for Java projects. Yeah, I know, it is an ugly solution but it saves my time.

Is there any update on multiple settings profiles? 😄

@Tyriar
Copy link
Member

Tyriar commented Oct 11, 2021

I think this request is captured entirely within #116740

/duplicate

@Tyriar Tyriar closed this as completed Oct 11, 2021
@wolf99
Copy link
Author

wolf99 commented Oct 11, 2021

If anything I would call that one a duplicate of this 😄

@Tyriar
Copy link
Member

Tyriar commented Oct 11, 2021

Yeah this was first but that one consolidates other related issues and has some ux explorations.

@github-actions github-actions bot locked and limited conversation to collaborators Nov 25, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
*duplicate Issue identified as a duplicate of another issue(s) feature-request Request for new features or functionality settings-sync
Projects
None yet
Development

No branches or pull requests

8 participants
@filmgirl @wolf99 @Tyriar @sandy081 @theAkito @ArturoDent @lawweiliang and others