Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/skills/add-analyzer/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Verify:
cd tools && pwsh ./generate_code.ps1
cd src && dotnet build Roslynator.sln
cd src && dotnet test Roslynator.sln --no-build --filter "FullyQualifiedName~RCS####"
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity info
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity warn
```

## Common Mistakes
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/add-compiler-diagnostic-fix/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Verify:
cd tools && pwsh ./generate_code.ps1
cd src && dotnet build Roslynator.sln
cd src && dotnet test Tests/CodeFixes.Tests --no-build --filter "FullyQualifiedName~CS####"
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity info
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity warn
```

## Common Mistakes
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/add-refactoring/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Verify:
cd tools && pwsh ./generate_code.ps1
cd src && dotnet build Roslynator.sln
cd src && dotnet test Tests/Refactorings.Tests --no-build --filter "FullyQualifiedName~RR####"
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity info
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity warn
```

## Common Mistakes
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/fix-analyzer-bug/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Verify (adjust project and filter):
cd src && dotnet build Roslynator.sln
cd src && dotnet test Tests/Analyzers.Tests --no-build --filter "FullyQualifiedName~RCS####"
cd src && dotnet test Tests/CodeFixes.Tests --no-build --filter "FullyQualifiedName~CS####"
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity info
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity warn
```

Changelog examples: [references/changelog-examples.md](references/changelog-examples.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Both tags must point at real commits (often the same bump commit). Do not amend
```bash
cd src && dotnet restore Roslynator.sln
cd src && dotnet build Roslynator.sln --no-restore
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity info
cd src && dotnet format Roslynator.sln --no-restore --verify-no-changes --severity warn
cd src && dotnet test Roslynator.sln --no-build
```

Expand Down
287 changes: 199 additions & 88 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ csharp_preserve_single_line_blocks = true

dotnet_sort_system_directives_first = true

csharp_style_namespace_declarations = file_scoped:suggestion
csharp_style_namespace_declarations = file_scoped:warning

roslynator_accessibility_modifiers = explicit
roslynator_accessor_braces_style = single_line_when_expression_is_on_single_line
Expand Down Expand Up @@ -100,109 +100,220 @@ roslynator_use_collection_expression = true
roslynator_blank_line_between_switch_sections = omit
roslynator_use_var = when_type_is_obvious

dotnet_diagnostic.RCS0001.severity = suggestion
dotnet_diagnostic.RCS0003.severity = suggestion
dotnet_diagnostic.RCS0004.severity = suggestion
dotnet_diagnostic.RCS0006.severity = suggestion
dotnet_diagnostic.RCS0011.severity = suggestion
dotnet_diagnostic.RCS0013.severity = suggestion
dotnet_diagnostic.RCS0015.severity = suggestion
dotnet_diagnostic.RCS0016.severity = suggestion
dotnet_diagnostic.RCS0020.severity = suggestion
dotnet_diagnostic.RCS0021.severity = suggestion
dotnet_diagnostic.RCS0022.severity = suggestion
dotnet_diagnostic.RCS0023.severity = suggestion
dotnet_diagnostic.RCS0024.severity = suggestion
dotnet_diagnostic.RCS0025.severity = suggestion
dotnet_diagnostic.RCS0027.severity = suggestion
dotnet_diagnostic.RCS0028.severity = suggestion
dotnet_diagnostic.RCS0030.severity = suggestion
dotnet_diagnostic.RCS0031.severity = suggestion
dotnet_diagnostic.RCS0032.severity = suggestion
dotnet_diagnostic.RCS0033.severity = suggestion
dotnet_diagnostic.RCS0038.severity = suggestion
dotnet_diagnostic.RCS0039.severity = suggestion
dotnet_diagnostic.RCS0041.severity = suggestion
dotnet_diagnostic.RCS0042.severity = suggestion
dotnet_diagnostic.RCS0046.severity = suggestion
dotnet_diagnostic.RCS0001.severity = warning
dotnet_diagnostic.RCS0003.severity = warning
dotnet_diagnostic.RCS0004.severity = warning
dotnet_diagnostic.RCS0006.severity = warning
dotnet_diagnostic.RCS0011.severity = warning
dotnet_diagnostic.RCS0013.severity = warning
dotnet_diagnostic.RCS0015.severity = warning
dotnet_diagnostic.RCS0016.severity = warning
dotnet_diagnostic.RCS0020.severity = warning
dotnet_diagnostic.RCS0021.severity = warning
dotnet_diagnostic.RCS0022.severity = warning
dotnet_diagnostic.RCS0023.severity = warning
dotnet_diagnostic.RCS0024.severity = warning
dotnet_diagnostic.RCS0025.severity = warning
dotnet_diagnostic.RCS0027.severity = warning
dotnet_diagnostic.RCS0028.severity = warning
dotnet_diagnostic.RCS0030.severity = warning
dotnet_diagnostic.RCS0031.severity = warning
dotnet_diagnostic.RCS0032.severity = warning
dotnet_diagnostic.RCS0033.severity = warning
dotnet_diagnostic.RCS0038.severity = warning
dotnet_diagnostic.RCS0039.severity = warning
dotnet_diagnostic.RCS0041.severity = warning
dotnet_diagnostic.RCS0042.severity = warning
dotnet_diagnostic.RCS0046.severity = warning
dotnet_diagnostic.RCS0048.severity = silent
dotnet_diagnostic.RCS0049.severity = suggestion
dotnet_diagnostic.RCS0050.severity = suggestion
dotnet_diagnostic.RCS0051.severity = suggestion
dotnet_diagnostic.RCS0053.severity = suggestion
dotnet_diagnostic.RCS0054.severity = suggestion
dotnet_diagnostic.RCS0055.severity = suggestion
dotnet_diagnostic.RCS0049.severity = warning
dotnet_diagnostic.RCS0050.severity = warning
dotnet_diagnostic.RCS0051.severity = warning
dotnet_diagnostic.RCS0053.severity = warning
dotnet_diagnostic.RCS0054.severity = warning
dotnet_diagnostic.RCS0055.severity = warning
dotnet_diagnostic.RCS0056.severity = none
dotnet_diagnostic.RCS0057.severity = suggestion
dotnet_diagnostic.RCS0058.severity = suggestion
dotnet_diagnostic.RCS0059.severity = suggestion
dotnet_diagnostic.RCS0060.severity = suggestion
dotnet_diagnostic.RCS0061.severity = suggestion
dotnet_diagnostic.RCS0057.severity = warning
dotnet_diagnostic.RCS0058.severity = warning
dotnet_diagnostic.RCS0059.severity = warning
dotnet_diagnostic.RCS0060.severity = warning
dotnet_diagnostic.RCS0061.severity = warning
dotnet_diagnostic.RCS1002.severity = silent
dotnet_diagnostic.RCS1006.severity = suggestion
dotnet_diagnostic.RCS1006.severity = warning
dotnet_diagnostic.RCS1008.severity = none
dotnet_diagnostic.RCS1009.severity = none
dotnet_diagnostic.RCS1010.severity = none
dotnet_diagnostic.RCS1013.severity = suggestion
dotnet_diagnostic.RCS1014.severity = suggestion
dotnet_diagnostic.RCS1016.severity = suggestion
dotnet_diagnostic.RCS1017.severity = suggestion
dotnet_diagnostic.RCS1013.severity = warning
dotnet_diagnostic.RCS1014.severity = warning
dotnet_diagnostic.RCS1016.severity = warning
dotnet_diagnostic.RCS1017.severity = warning
dotnet_diagnostic.RCS1018.severity = warning
dotnet_diagnostic.RCS1019.severity = suggestion
dotnet_diagnostic.RCS1034.severity = suggestion
dotnet_diagnostic.RCS1019.severity = warning
dotnet_diagnostic.RCS1034.severity = warning
dotnet_diagnostic.RCS1037.severity = warning
dotnet_diagnostic.RCS1039.severity = suggestion
dotnet_diagnostic.RCS1040.severity = suggestion
dotnet_diagnostic.RCS1042.severity = suggestion
dotnet_diagnostic.RCS1043.severity = suggestion
dotnet_diagnostic.RCS1039.severity = warning
dotnet_diagnostic.RCS1040.severity = warning
dotnet_diagnostic.RCS1042.severity = warning
dotnet_diagnostic.RCS1043.severity = warning
dotnet_diagnostic.RCS1045.severity = warning
dotnet_diagnostic.RCS1050.severity = suggestion
dotnet_diagnostic.RCS1051.severity = suggestion
dotnet_diagnostic.RCS1060.severity = suggestion
dotnet_diagnostic.RCS1061.severity = suggestion
dotnet_diagnostic.RCS1062.severity = suggestion
dotnet_diagnostic.RCS1066.severity = suggestion
dotnet_diagnostic.RCS1069.severity = suggestion
dotnet_diagnostic.RCS1070.severity = suggestion
dotnet_diagnostic.RCS1071.severity = suggestion
dotnet_diagnostic.RCS1074.severity = suggestion
dotnet_diagnostic.RCS1050.severity = warning
dotnet_diagnostic.RCS1051.severity = warning
dotnet_diagnostic.RCS1060.severity = warning
dotnet_diagnostic.RCS1061.severity = warning
dotnet_diagnostic.RCS1062.severity = warning
dotnet_diagnostic.RCS1066.severity = warning
dotnet_diagnostic.RCS1069.severity = warning
dotnet_diagnostic.RCS1070.severity = warning
dotnet_diagnostic.RCS1071.severity = warning
dotnet_diagnostic.RCS1074.severity = warning
dotnet_diagnostic.RCS1076.severity = none
dotnet_diagnostic.RCS1078.severity = suggestion
dotnet_diagnostic.RCS1079.severity = suggestion
dotnet_diagnostic.RCS1081.severity = suggestion
dotnet_diagnostic.RCS1082.severity = suggestion
dotnet_diagnostic.RCS1083.severity = suggestion
dotnet_diagnostic.RCS1090.severity = suggestion
dotnet_diagnostic.RCS1091.severity = suggestion
dotnet_diagnostic.RCS1078.severity = warning
dotnet_diagnostic.RCS1079.severity = warning
dotnet_diagnostic.RCS1081.severity = warning
dotnet_diagnostic.RCS1082.severity = warning
dotnet_diagnostic.RCS1083.severity = warning
dotnet_diagnostic.RCS1090.severity = warning
dotnet_diagnostic.RCS1091.severity = warning
dotnet_diagnostic.RCS1096.severity = warning
dotnet_diagnostic.RCS1124.severity = suggestion
dotnet_diagnostic.RCS1124.severity = warning
dotnet_diagnostic.RCS1126.severity = warning
dotnet_diagnostic.RCS1129.severity = suggestion
dotnet_diagnostic.RCS1133.severity = suggestion
dotnet_diagnostic.RCS1134.severity = suggestion
dotnet_diagnostic.RCS1136.severity = suggestion
dotnet_diagnostic.RCS1138.severity = suggestion
dotnet_diagnostic.RCS1139.severity = suggestion
dotnet_diagnostic.RCS1143.severity = suggestion
dotnet_diagnostic.RCS1145.severity = suggestion
dotnet_diagnostic.RCS1151.severity = suggestion
dotnet_diagnostic.RCS1162.severity = suggestion
dotnet_diagnostic.RCS1188.severity = suggestion
dotnet_diagnostic.RCS1189.severity = suggestion
dotnet_diagnostic.RCS1207.severity = suggestion
dotnet_diagnostic.RCS1228.severity = suggestion
dotnet_diagnostic.RCS1129.severity = warning
dotnet_diagnostic.RCS1133.severity = warning
dotnet_diagnostic.RCS1134.severity = warning
dotnet_diagnostic.RCS1136.severity = warning
dotnet_diagnostic.RCS1138.severity = warning
dotnet_diagnostic.RCS1139.severity = warning
dotnet_diagnostic.RCS1143.severity = warning
dotnet_diagnostic.RCS1145.severity = warning
dotnet_diagnostic.RCS1151.severity = warning
dotnet_diagnostic.RCS1162.severity = warning
dotnet_diagnostic.RCS1188.severity = warning
dotnet_diagnostic.RCS1189.severity = warning
dotnet_diagnostic.RCS1207.severity = warning
dotnet_diagnostic.RCS1228.severity = warning
dotnet_diagnostic.RCS1237.severity = none
dotnet_diagnostic.RCS1244.severity = suggestion
dotnet_diagnostic.RCS1248.severity = suggestion
dotnet_diagnostic.RCS1250.severity = suggestion
dotnet_diagnostic.RCS1252.severity = suggestion
dotnet_diagnostic.RCS1253.severity = suggestion
dotnet_diagnostic.RCS1254.severity = suggestion
dotnet_diagnostic.RCS1244.severity = warning
dotnet_diagnostic.RCS1248.severity = warning
dotnet_diagnostic.RCS1250.severity = warning
dotnet_diagnostic.RCS1252.severity = warning
dotnet_diagnostic.RCS1253.severity = warning
dotnet_diagnostic.RCS1254.severity = warning
dotnet_diagnostic.RCS1255.severity = none
dotnet_diagnostic.RCS1260.severity = suggestion
dotnet_diagnostic.RCS1264.severity = suggestion
dotnet_diagnostic.RCS1260.severity = warning
dotnet_diagnostic.RCS1264.severity = warning
dotnet_diagnostic.RCS9001.severity = suggestion

# Enabled-by-default Info analyzers escalated to warning for repo builds / format --severity warn.
# Exceptions left at suggestion (multi-Roslyn TFM / #if debt): RCS1163, RCS1213, RCS9001.
dotnet_diagnostic.RCS1001.severity = warning
dotnet_diagnostic.RCS1003.severity = warning
dotnet_diagnostic.RCS1015.severity = warning
dotnet_diagnostic.RCS1020.severity = warning
dotnet_diagnostic.RCS1021.severity = warning
dotnet_diagnostic.RCS1032.severity = warning
dotnet_diagnostic.RCS1033.severity = warning
dotnet_diagnostic.RCS1047.severity = warning
dotnet_diagnostic.RCS1048.severity = warning
dotnet_diagnostic.RCS1049.severity = warning
dotnet_diagnostic.RCS1058.severity = warning
dotnet_diagnostic.RCS1068.severity = warning
dotnet_diagnostic.RCS1073.severity = warning
dotnet_diagnostic.RCS1077.severity = warning
dotnet_diagnostic.RCS1084.severity = warning
dotnet_diagnostic.RCS1085.severity = warning
dotnet_diagnostic.RCS1089.severity = warning
dotnet_diagnostic.RCS1093.severity = warning
dotnet_diagnostic.RCS1097.severity = warning
dotnet_diagnostic.RCS1098.severity = warning
dotnet_diagnostic.RCS1099.severity = warning
dotnet_diagnostic.RCS1103.severity = warning
dotnet_diagnostic.RCS1104.severity = warning
dotnet_diagnostic.RCS1105.severity = warning
dotnet_diagnostic.RCS1107.severity = warning
dotnet_diagnostic.RCS1108.severity = warning
dotnet_diagnostic.RCS1110.severity = warning
dotnet_diagnostic.RCS1112.severity = warning
dotnet_diagnostic.RCS1113.severity = warning
dotnet_diagnostic.RCS1114.severity = warning
dotnet_diagnostic.RCS1118.severity = warning
dotnet_diagnostic.RCS1123.severity = warning
dotnet_diagnostic.RCS1128.severity = warning
dotnet_diagnostic.RCS1130.severity = warning
dotnet_diagnostic.RCS1132.severity = warning
dotnet_diagnostic.RCS1135.severity = warning
dotnet_diagnostic.RCS1146.severity = warning
dotnet_diagnostic.RCS1154.severity = warning
dotnet_diagnostic.RCS1156.severity = warning
dotnet_diagnostic.RCS1157.severity = warning
dotnet_diagnostic.RCS1158.severity = warning
dotnet_diagnostic.RCS1159.severity = warning
dotnet_diagnostic.RCS1160.severity = warning
dotnet_diagnostic.RCS1163.severity = suggestion
dotnet_diagnostic.RCS1164.severity = warning
dotnet_diagnostic.RCS1166.severity = warning
dotnet_diagnostic.RCS1169.severity = warning
dotnet_diagnostic.RCS1170.severity = warning
dotnet_diagnostic.RCS1171.severity = warning
dotnet_diagnostic.RCS1173.severity = warning
dotnet_diagnostic.RCS1175.severity = warning
dotnet_diagnostic.RCS1179.severity = warning
dotnet_diagnostic.RCS1180.severity = warning
dotnet_diagnostic.RCS1187.severity = warning
dotnet_diagnostic.RCS1190.severity = warning
dotnet_diagnostic.RCS1191.severity = warning
dotnet_diagnostic.RCS1192.severity = warning
dotnet_diagnostic.RCS1195.severity = warning
dotnet_diagnostic.RCS1196.severity = warning
dotnet_diagnostic.RCS1197.severity = warning
dotnet_diagnostic.RCS1199.severity = warning
dotnet_diagnostic.RCS1200.severity = warning
dotnet_diagnostic.RCS1202.severity = warning
dotnet_diagnostic.RCS1204.severity = warning
dotnet_diagnostic.RCS1205.severity = warning
dotnet_diagnostic.RCS1206.severity = warning
dotnet_diagnostic.RCS1209.severity = warning
dotnet_diagnostic.RCS1212.severity = warning
dotnet_diagnostic.RCS1213.severity = suggestion
dotnet_diagnostic.RCS1214.severity = warning
dotnet_diagnostic.RCS1216.severity = warning
dotnet_diagnostic.RCS1218.severity = warning
dotnet_diagnostic.RCS1220.severity = warning
dotnet_diagnostic.RCS1221.severity = warning
dotnet_diagnostic.RCS1222.severity = warning
dotnet_diagnostic.RCS1224.severity = warning
dotnet_diagnostic.RCS1225.severity = warning
dotnet_diagnostic.RCS1226.severity = warning
dotnet_diagnostic.RCS1227.severity = warning
dotnet_diagnostic.RCS1229.severity = warning
dotnet_diagnostic.RCS1230.severity = warning
dotnet_diagnostic.RCS1232.severity = warning
dotnet_diagnostic.RCS1233.severity = warning
dotnet_diagnostic.RCS1234.severity = warning
dotnet_diagnostic.RCS1235.severity = warning
dotnet_diagnostic.RCS1236.severity = warning
dotnet_diagnostic.RCS1239.severity = warning
dotnet_diagnostic.RCS1240.severity = warning
dotnet_diagnostic.RCS1243.severity = warning
dotnet_diagnostic.RCS1246.severity = warning
dotnet_diagnostic.RCS1247.severity = warning
dotnet_diagnostic.RCS1249.severity = warning
dotnet_diagnostic.RCS1251.severity = warning
dotnet_diagnostic.RCS1256.severity = warning
dotnet_diagnostic.RCS1257.severity = warning
dotnet_diagnostic.RCS1258.severity = warning
dotnet_diagnostic.RCS1259.severity = warning
dotnet_diagnostic.RCS1261.severity = warning
dotnet_diagnostic.RCS1262.severity = warning
dotnet_diagnostic.RCS1265.severity = warning
dotnet_diagnostic.RCS1266.severity = warning
dotnet_diagnostic.RCS1267.severity = warning
dotnet_diagnostic.RCS1268.severity = warning
dotnet_diagnostic.RCS9002.severity = warning
dotnet_diagnostic.RCS9003.severity = warning
dotnet_diagnostic.RCS9004.severity = warning
dotnet_diagnostic.RCS9005.severity = warning
dotnet_diagnostic.RCS9006.severity = warning
dotnet_diagnostic.RCS9008.severity = warning
dotnet_diagnostic.IDE0007.severity = none
dotnet_diagnostic.IDE0007WithoutSuggestion.severity = none
dotnet_diagnostic.IDE0008.severity = none
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
- run: dotnet restore Roslynator.sln
- run: dotnet build Roslynator.sln --no-restore
- run: |
dotnet format Roslynator.sln --no-restore --verify-no-changes --severity info
dotnet format Roslynator.sln --no-restore --verify-no-changes --severity warn
- run: dotnet test Roslynator.sln --no-build
- uses: actions/checkout@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@ More context: [Contributing with agent skills](https://josefpihrt.github.io/docs
## Coding Style

* **DO** follow [.NET Runtime Coding Style](https://github.com/dotnet/runtime/blob/main/docs/coding-guidelines/coding-style.md) (except using `s_` and `t_` prefix for field names).
* **DO** install the Roslynator extension for Visual Studio or VS Code and follow its suggestions.
* **DO** install the Roslynator extension for Visual Studio or VS Code and follow its warnings (enforced by the build via `.editorconfig`).
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public override async Task RegisterCodeFixesAsync(CodeFixContext context)
}
}
#else
await Task.CompletedTask;
await Task.CompletedTask.ConfigureAwait(false);
#endif
}

Expand Down
2 changes: 1 addition & 1 deletion src/CommandLine/Json/DiagnosticGitLabJsonSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public static void Serialize(
byte[] source = Encoding.UTF8.GetBytes(issueFingerPrint);
byte[] hashBytes;
#if NETFRAMEWORK
using (var sha256 = SHA256.Create())
using (SHA256 sha256 = SHA256.Create())
hashBytes = sha256.ComputeHash(source);
#else
hashBytes = SHA256.HashData(source);
Expand Down
Loading