Cannot enable all disabled analyzers rules by default with `AllEnabledByDefault` setting
Product and Version Used: Roslynator.Analyzers Version="3.2.0" Roslynator.Formatting.Analyzers Version="1.2.0"
Steps to Reproduce:
- Edit .csproj file and add
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
Actual Behavior: Disabled rules are not enabled by default. (It works for other .NET analyzers).
Expected Behavior: Enable all disabled rules by default
@JosefPihrt : Is there a way that I can enable all the disabled rules at once using .editorConfig or sth? I don't want to have to specify one by one coz it's very time-consuming and if we update the package, we have to manually add these rules in. I want to enable all of them by default and then specifically disable some if I don't want them. Thanks.
Hi,
my recommendation is to clone the repo and then run script tools/generate_default_ruleset.cmd. This will generate file default.editorconfig which contains all available analyzers and options in their default configuration. You can then edit the file according to your needs. If you want to enable all analyzers you can just apply some basic "find and replace" to set severities.
@JosefPihrt : Thanks for your reply. Looks like that's the only option we have for now coz the <AnalysisMode>AllEnabledByDefault</AnalysisMode> setting does not work with Roslynator analysers for some reason. Please investigate this. Thanks.
<AnalysisMode>AllEnabledByDefault</AnalysisMode> setting does not work with Roslynator analysers for some reason
In .NET 6+ AllEnabledByDefault should be All instead. But even with the change, this won't work because how <AnalysisMode> is implemented: <AnalysisMode> is read byMicrosoft.CodeAnalysis.NetAnalyzers.targets and it will include a pre-generated .globalconfig file to <EditorConfigFiles> that has all .NET's analyzer rules' severity set to warning.
Since Microsoft.CodeAnalysis.NetAnalyzers.targets obviously won't know about Roslynator rules, the globalconfig file added won't have roslynator rules. Thus all roslynator rules will remain in its default setting.
I think it would be possible for roslynator to maintain its own globalconfig that has all rules enabled, and update roslynator's .target file to add the globalconfig file to <EditorConfigFiles> when <AnalysisMode> is All.
You could also go one step further and support <AnalysisModeRoslynator> (the per-category variable) so that we can enable all roslynator rules without enabling all .NET CA rules.