In the Rider settings dialog (Ctrl+Alt+S), you can look at page icons to see which setting-management mechanism is used for specific pages:
Pages that are not marked with any icon host environment settings which are saved in your user profile.
Preferences for Rider's front-end features, which are based on IntelliJ Platform, are saved in a directory-based format — in XML files in two specific places:
- Your environment settings — such as IDE layout, preferred keymap, editor settings — are saved in your user profile (%USERPROFILE%\.RiderXX\config on Windows, ~/.RiderXX/config on Linux, and ~/Library/Preferences/RiderXX on macOS).
- Your solution-specific settings — for example, Version Control integration, code style preferences — are saved under .idea\.idea.[Solution_Name]\.idea (hidden on macOS) in the solution directory.
If your solution is under a version control, it is recommended to store XML files with solution-specific settings (the .idea folder inside the solution folder) under version control, the exception being workspace.xml and tasks.xml, which store user-specific settings.
Sharing directory-based settings
JetBrains Rider lets you share your IDE settings between different instances of JetBrains Rider (or other IntelliJ-platform-based IDEs). This helps you recreate a comfy working environment if you are working from different computers and spare the annoyance of things looking or behaving differently from what you are used to.
You can share your settings by configuring a settings repository. This allows you to sync any configurable components (except for the list of enabled and disabled plugins), but requires setting up a Git repository with the settings you want to share.
Share settings through a settings repository
- Create a Git repository on any hosting service, such as Bitbucket or GitHub.
- On the computer where the JetBrains Rider instance whose settings you want to share is installed, select File | Settings Repository from the main menu. Specify the URL of the repository you've created and click Overwrite Remote.
- On each computer where you want your settings to be applied, In the Settings/Preferences dialog (Ctrl+Alt+S) (Ctrl+Alt+S), expand the Tools node and choose Settings Repository. Specify the URL of the repository you've created, and click Overwrite Local.
You can click Merge if you want the repository to keep a combination of the remote settings and your local settings. If any conflicts are detected, a dialog will be displayed where you can resolve these conflicts.
If you want to overwrite the remote settings with your local settings, click Overwrite Remote.
Your local settings will be automatically synchronized with the settings stored in the repository each time you perform an Update Project or a Push operation, or when you close your project or exit JetBrains Rider.
On the first sync, you will be prompted to specify a username and password. It is recommended to use an access token for GitHub authentication. If, for some reason, you want to use a username and password instead of an access token, or your Git hosting provider doesn't support it, it is recommended to configure the Git credentials helper.
If you want to disable automatic settings synchronization, from the main menu select File | Settings | Tools | Settings Repository and disable the Auto Sync option. You will be able to update your settings manually by choosing VCS | Sync Settings from the main menu.
Share more settings through additional read-only repositories
Apart from the Settings Repository, you can configure any number of additional repositories containing any types of settings you want to share, including live templates, file templates, schemes, deployment options, etc.
These repositories are referred to as read-only sources, as they cannot be overwritten or merged, just used as a source of settings as is.
To configure such repositories:
- In the Settings/Preferences dialog (Ctrl+Alt+S), click Settings Repository under Tools.
- Click and add the URL of the GitHub repository that contains the settings you want to share.
Synchronization with the settings from read-only sources is performed in the same way as for the Settings Repository.