Skip to content

Instantly share code, notes, and snippets.

@ManuelRauber
Created May 23, 2022 07:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ManuelRauber/79bea6a93f82bc8d7c02614421cb6a6f to your computer and use it in GitHub Desktop.
Save ManuelRauber/79bea6a93f82bc8d7c02614421cb6a6f to your computer and use it in GitHub Desktop.

Rider layered configuration system

Rider has for certain options, like code formatting, a layered configuration system. By default it has three layers:

  1. Project Personal Settings
  2. Project Team Settings
  3. This computer

From bottom to top, each layer will overwrite the settings from the lower layers. You're able to save layers to disk. But this will only save a changed delta and not the whole settings.

Now, there can be a situation where you still have a strange mix-up of configuration.

For example, if person A changes settings in the "This computer" layer, and no layer on top will change this setting, it will be applied to the project.

This makes it hard, to have fully shared team settings.

Concrete example in this case:

Person A changed the setting Editor -> Code Style -> C# -> Spaces -> Within Parantheses in Statements -> "if" parantheses and saved it to his "This computer" layer. Person A did this, because that's the standard he wants to use for all his projects.

Now, we've created a project together and I've saved my personal settings as a team setting. Since I did not change the setting person A has changed for his projects, this setting is not included in the team layer.

The issue is now, that we've ended up with mixed configuration, because his instance of Rider uses "This computer" (with the "if" parantheses setting turned ON) in addition with the team settings, where there is NO setting present. Thus, it's not overriding Person A's settings.

What I basically want to have, is to save all the settings, even default ones, to the team layer, so we have one fully shared configuration.

Otherwise, my friend would need to export his "This computer" settings and reset everything to default. But that seems like a bad solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment