-
-
Notifications
You must be signed in to change notification settings - Fork 138
Save Rider plugin settings globally #1766
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
base: main
Are you sure you want to change the base?
Conversation
|
I don't agree with changing this to be global. Anyone that wants format on save in one solution but not another is going to have to flip the setting back and forth every time they switch solutions. As is, you set it once the first time you clone a repo, and only if there isn't already a team shared setting. |
|
Is it possible to make this use settings layers so the user can choose what they want (local vs team-shared vs global)? Respectfully belav what you're saying is your opinion and all the more reason for user choice here. Rider has layers to support this flexibility, I'm just not sure if plugins can utilize it. |
@rcdailey that is my hope. My googling has indicated that it should be possible to implement this to use the global layer.
I don't think it is just an opinion and may have not expressed it well. If this setting is only global then anyone who works in two solutions and wants format on save in one and not the other will be switching that global setting back and forth every time they switch solutions. If the setting stays as is (with local/team shared) then anyone who always wants it on (or off) will have to set that setting once per solution. The global only setting will be a major inconvenience for some users. The current setting is a minor inconvenience for some users. |
I understand where you are coming from. That is 100% valid and I'm sure it applies to a percentage of users. The point I was trying to make by calling it an opinion is that there is also a percentage of users that prefer not to have to configure this once per solution, and instead have it enabled by default everywhere. I think the author of this PR falls into the latter group. Either way the ultimate solution IMO is to use Rider's settings layers, and it sounds like that's the approach you'd favor as well. Hopefully the OP is open to the work for this. |
|
I have some bad news unfortunately. Given that this is a major inconvenience for teams in our company, I tried to give it another shot to get true layered config working. As @TimothyMakkison pointed out in #1762 (comment), the documentation for Plugin configuration is atrocious, so I attempted to coax various LLMs into coming up with a solution. They always ended up with what I would call "user space layered config", meaning a layered config implemented on the plugin-level, for example with a dropdown in the plugin settings where a user can choose where to save settings (global or solution), or entirely duplicating the plugin settings into "CSharpier global" and "CSharpier local". All of these are unergonomic, subpar solutions and lead me to believe that maybe plugins really can't use layered config (only the IDE itself), or that it is entirely undocumented to a degree where nobody can find it. I also haven't seen another Rider plugin so far using true layered config where we could copy from. I understand the hesitation to make this a global setting, given we have no data on what percentage of users would prefer which solution. |
|
I believe that documentation is for a resharper rider plugin written in C#. TMK the csharpier rider plugin is an intellij platform plugin written in Java. |
|
Sadly not really, because as I understand it, this example is specific to Resharper and written in C#, while CSharpier is a "regular" Java plugin. But then again, I have zero expertise, maybe somebody else knows better. |
|
My understanding is that this is not a language specific concern. This documentation shows Application and Project level settings, which I assume maps to the respective settings layers in Rider: https://plugins.jetbrains.com/docs/intellij/settings-guide.html#declaring-application-settings I lack actual experience with this though. Maybe someone ought to just attempt an implementation and test to verify? |
|
I've updated #1762 to use a dropdown box for project level settings, giving a fine grained control for users at the project level. I'd appreciate feedback on the naming.
|
|
It isn't clear to me what the difference between
I'd also call it |

This changes settings storage from the project level to the global settings, allowing users to configure CSharpier once, and not for each solution they open.
I was able to test it locally and it works, but I'm not an expert on IntelliJ plugins and can't entirely rule out that this breaks something somewhere. So far the only observed effect should be that people will have their settings reset to defaults with the update and will have to reconfigure the plugin once.
Closes #1739.