@@ -15,17 +15,41 @@ indent_size = 4
1515indent_style = space
1616
1717# New line preferences
18- end_of_line = unset
18+ end_of_line = crlf
1919insert_final_newline = false
20+ dotnet_style_coalesce_expression = true :suggestion
21+ dotnet_style_null_propagation = true :suggestion
22+ dotnet_style_prefer_is_null_check_over_reference_equality_method = true :warning
23+ dotnet_style_prefer_auto_properties = true :silent
24+ dotnet_style_object_initializer = true :suggestion
25+ dotnet_style_collection_initializer = true :suggestion
26+ dotnet_style_prefer_simplified_boolean_expressions = true :suggestion
27+ dotnet_style_prefer_conditional_expression_over_assignment = true :silent
28+ dotnet_style_prefer_conditional_expression_over_return = true :silent
29+ dotnet_style_explicit_tuple_names = true :suggestion
30+ dotnet_style_prefer_inferred_tuple_names = true :suggestion
31+ dotnet_style_prefer_inferred_anonymous_type_member_names = true :suggestion
32+ dotnet_style_prefer_compound_assignment = true :suggestion
33+ dotnet_style_prefer_simplified_interpolation = true :suggestion
34+ dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
35+ dotnet_style_namespace_match_folder = true :suggestion
36+ dotnet_style_operator_placement_when_wrapping = beginning_of_line
37+ dotnet_diagnostic.CA1304.severity = warning
38+ dotnet_diagnostic.CA1707.severity = none
39+ dotnet_diagnostic.CA1829.severity = warning
2040
2141# ### Build files ####
2242
2343# Solution files
24- [* .{sln,slnx } ]
44+ [* .{sln} ]
2545tab_width = 4
2646indent_size = 4
2747indent_style = tab
2848
49+ # Modern solution files
50+ [* .{slnx} ]
51+ indent_size = 2
52+
2953# Configuration files
3054[* .{json,xml,yml,config,runsettings} ]
3155indent_size = 2
@@ -123,7 +147,7 @@ csharp_prefer_braces = true:suggestion
123147csharp_using_directive_placement = outside_namespace:warning
124148csharp_style_namespace_declarations = file_scoped:warning
125149csharp_style_unused_value_assignment_preference = discard_variable:warning
126- csharp_style_unused_value_expression_statement_preference = discard_variable:warning
150+ csharp_style_unused_value_expression_statement_preference = discard_variable:silent
127151csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false :warning
128152
129153# Expression-level preferences
@@ -225,9 +249,9 @@ dotnet_naming_style.prefix_interface_interface_with_i.required_prefix
225249# Naming Rules
226250
227251# Async
228- dotnet_naming_rule.async_methods_end_in_async.severity = silent
252+ dotnet_naming_rule.async_methods_end_in_async.severity = silent
229253dotnet_naming_rule.async_methods_end_in_async.symbols = any_async_methods
230- dotnet_naming_rule.async_methods_end_in_async.style = end_in_async
254+ dotnet_naming_rule.async_methods_end_in_async.style = end_in_async
231255
232256dotnet_naming_symbols.any_async_methods.applicable_kinds = method
233257dotnet_naming_symbols.any_async_methods.applicable_accessibilities = *
@@ -237,45 +261,45 @@ dotnet_naming_style.end_in_async.required_suffix
237261dotnet_naming_style.end_in_async.capitalization = pascal_case
238262
239263# Constant fields must be PascalCase
240- dotnet_naming_rule.constant_fields_must_be_pascal_case.severity = silent
264+ dotnet_naming_rule.constant_fields_must_be_pascal_case.severity = silent
241265dotnet_naming_rule.constant_fields_must_be_pascal_case.symbols = constant_fields
242- dotnet_naming_rule.constant_fields_must_be_pascal_case.style = pascal_case
266+ dotnet_naming_rule.constant_fields_must_be_pascal_case.style = pascal_case
243267# Public, internal and protected readonly fields must be PascalCase
244- dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.severity = silent
268+ dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.severity = silent
245269dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.symbols = non_private_readonly_fields
246- dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.style = pascal_case
270+ dotnet_naming_rule.non_private_readonly_fields_must_be_pascal_case.style = pascal_case
247271# Static readonly fields must be PascalCase
248- dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.severity = silent
272+ dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.severity = silent
249273dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.symbols = static_readonly_fields
250- dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.style = pascal_case
274+ dotnet_naming_rule.static_readonly_fields_must_be_pascal_case.style = pascal_case
251275# Private readonly fields must be camelCase
252- dotnet_naming_rule.private_readonly_fields_must_be_camel_case.severity = silent
276+ dotnet_naming_rule.private_readonly_fields_must_be_camel_case.severity = silent
253277dotnet_naming_rule.private_readonly_fields_must_be_camel_case.symbols = private_readonly_fields
254- dotnet_naming_rule.private_readonly_fields_must_be_camel_case.style = camel_case
278+ dotnet_naming_rule.private_readonly_fields_must_be_camel_case.style = camel_case
255279# Public and internal fields must be PascalCase
256- dotnet_naming_rule.public_internal_protected_fields_must_be_pascal_case.severity = silent
280+ dotnet_naming_rule.public_internal_protected_fields_must_be_pascal_case.severity = silent
257281dotnet_naming_rule.public_internal_protected_fields_must_be_pascal_case.symbols = public_internal_protected_fields
258- dotnet_naming_rule.public_internal_protected_fields_must_be_pascal_case.style = pascal_case
282+ dotnet_naming_rule.public_internal_protected_fields_must_be_pascal_case.style = pascal_case
259283# Private and protected fields must be camelCase
260- dotnet_naming_rule.private_fields_must_be_camel_case.severity = silent
284+ dotnet_naming_rule.private_fields_must_be_camel_case.severity = silent
261285dotnet_naming_rule.private_fields_must_be_camel_case.symbols = private_protected_fields
262- dotnet_naming_rule.private_fields_must_be_camel_case.style = prefix_private_field_with_underscore
286+ dotnet_naming_rule.private_fields_must_be_camel_case.style = prefix_private_field_with_underscore
263287# Public members must be capitalized
264- dotnet_naming_rule.public_members_must_be_capitalized.severity = silent
288+ dotnet_naming_rule.public_members_must_be_capitalized.severity = silent
265289dotnet_naming_rule.public_members_must_be_capitalized.symbols = public_symbols
266- dotnet_naming_rule.public_members_must_be_capitalized.style = first_upper
290+ dotnet_naming_rule.public_members_must_be_capitalized.style = first_upper
267291# Parameters must be camelCase
268- dotnet_naming_rule.parameters_must_be_camel_case.severity = silent
292+ dotnet_naming_rule.parameters_must_be_camel_case.severity = silent
269293dotnet_naming_rule.parameters_must_be_camel_case.symbols = parameters
270- dotnet_naming_rule.parameters_must_be_camel_case.style = camel_case
294+ dotnet_naming_rule.parameters_must_be_camel_case.style = camel_case
271295# Class, struct, enum and delegates must be PascalCase
272- dotnet_naming_rule.non_interface_types_must_be_pascal_case.severity = silent
296+ dotnet_naming_rule.non_interface_types_must_be_pascal_case.severity = silent
273297dotnet_naming_rule.non_interface_types_must_be_pascal_case.symbols = non_interface_types
274- dotnet_naming_rule.non_interface_types_must_be_pascal_case.style = pascal_case
298+ dotnet_naming_rule.non_interface_types_must_be_pascal_case.style = pascal_case
275299# Interfaces must be PascalCase and start with an 'I'
276- dotnet_naming_rule.interface_types_must_be_prefixed_with_i.severity = silent
300+ dotnet_naming_rule.interface_types_must_be_prefixed_with_i.severity = silent
277301dotnet_naming_rule.interface_types_must_be_prefixed_with_i.symbols = interface_types
278- dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style = prefix_interface_interface_with_i
302+ dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style = prefix_interface_interface_with_i
279303# prefix_private_field_with_underscore - Private fields must be prefixed with _
280304dotnet_naming_style.prefix_private_field_with_underscore.capitalization = camel_case
281305dotnet_naming_style.prefix_private_field_with_underscore.required_prefix = _
@@ -344,18 +368,36 @@ dotnet_diagnostic.CA2238.severity = warning
344368dotnet_diagnostic.CA2240.severity = warning
345369dotnet_diagnostic.CA2241.severity = warning
346370dotnet_diagnostic.CA2242.severity = warning
371+ dotnet_diagnostic.CS9107.severity = suggestion
372+ dotnet_diagnostic.CS0612.severity = suggestion
373+
374+ # Async Fixer
375+
376+ dotnet_diagnostic.AsyncFixer01.severity = silent
377+
378+ # ErrorProne
379+
380+ dotnet_diagnostic.EPC12.severity = suggestion
381+ dotnet_diagnostic.EPS05.severity = suggestion
382+
383+ # IDispossable
384+
385+ dotnet_diagnostic.IDISP001.severity = warning
386+ dotnet_diagnostic.IDISP017.severity = none
387+ dotnet_diagnostic.IDISP013.severity = suggestion
388+ dotnet_diagnostic.IDISP004.severity = warning
389+ dotnet_diagnostic.IDISP001.severity = warning
390+ dotnet_diagnostic.IDISP026.severity = suggestion
347391
348392# Require file header OR A source file contains a header that does not match the required text
349393dotnet_diagnostic.IDE0073.severity = error
350394
351395# StyleCop Code Analysis
352396
353- # Closing parenthesis should be spaced correctly: "foo()!"
354- dotnet_diagnostic.SA1009.severity = none
355-
356- # Hide warnings when using the new() expression from C# 9.
357- dotnet_diagnostic.SA1000.severity = none
358-
397+ dotnet_diagnostic.SA1005.severity = suggestion # Single line comments should begin with a space
398+ dotnet_diagnostic.SA0001.severity = none
399+ dotnet_diagnostic.SA1009.severity = none # Closing parenthesis should be spaced correctly: " foo()!"
400+ dotnet_diagnostic.SA1000.severity = none # Hide warnings when using the new() expression from C # 9 .
359401dotnet_diagnostic.SA1011.severity = none
360402dotnet_diagnostic.SA1101.severity = none
361403
@@ -382,7 +424,7 @@ dotnet_diagnostic.SA1602.severity = none
382424dotnet_diagnostic.SA1611.severity = none
383425
384426# DocumentationTextMustEndWithAPeriod: Let's enable this rule back when we shift to WinUI3 (v8.x). If we do it now, it would mean more than 400 file changes.
385- dotnet_diagnostic.SA1629.severity = none
427+ dotnet_diagnostic.SA1629.severity = warning
386428
387429dotnet_diagnostic.SA1633.severity = none
388430dotnet_diagnostic.SA1634.severity = none
@@ -409,7 +451,33 @@ dotnet_diagnostic.WPF0070.severity = none # Add default field to converter
409451# Suppress some IDE warnings
410452dotnet_diagnostic.IDE0290.severity = none # Use primary constructor
411453dotnet_diagnostic.CS1591.severity = none # Missing XML comment for publicly visible type or member
412- # 15000+ warnings in the solution
454+
413455dotnet_diagnostic.CA1510.severity = none # Use ArgumentNullException throw helper
414- # doesn't work with older versions of .NET
415-
456+ csharp_prefer_simple_using_statement = true :suggestion
457+ csharp_style_prefer_method_group_conversion = true :silent
458+ csharp_style_prefer_top_level_statements = true :silent
459+ csharp_style_prefer_primary_constructors = true :suggestion
460+ csharp_style_expression_bodied_local_functions = false :silent
461+
462+ dotnet_diagnostic.ASPIREPROXYENDPOINTS001.severity = none
463+ csharp_prefer_system_threading_lock = true :suggestion
464+ csharp_style_prefer_null_check_over_type_check = true :suggestion
465+ csharp_style_prefer_local_over_anonymous_function = true :suggestion
466+ dotnet_diagnostic.CA1311.severity = warning
467+
468+ # unreachable code
469+ dotnet_diagnostic.CS0162.severity = error
470+
471+ # non-nullable property uninitialized
472+ dotnet_diagnostic.CS8618.severity = error
473+
474+ # nullability of type argument doesn't match 'notnull' constraint
475+ dotnet_diagnostic.CS8714.severity = error
476+
477+ # nullability mismatch in return type of lambda
478+ dotnet_diagnostic.CS8621.severity = error
479+ dotnet_diagnostic.CS8766.severity = error
480+
481+ # switch expression not exhaustive
482+ dotnet_diagnostic.CS8524.severity = warning
483+ dotnet_diagnostic.CS8509.severity = error
0 commit comments