# https://editorconfig.org # https://www.jetbrains.com/help/resharper/Using_EditorConfig.html # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files # When opening a file, EditorConfig plugins look for a file named .editorconfig in the directory of the opened file and in every parent directory. A search for .editorconfig files will stop if the root filepath is reached or an EditorConfig file with `root=true` is found. # Remove the line below if you want to inherit .editorconfig settings from higher directories ################################################################################## ## https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ ## https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ ## Microsoft Rules ## root = true # EditorConfig is awesome: http://EditorConfig.org # top-most EditorConfig file # Global settings [*] charset = utf-8 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true # Xml project files [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] indent_style = space indent_size = 2 # Xml config files [*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] indent_style = space indent_size = 2 [*.{md,json}] indent_style = space indent_size = 4 [*.cs] indent_style = space indent_size = 4 max_line_length = 100 # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/csharp-formatting-options # New line preferences csharp_new_line_before_open_brace = all csharp_new_line_before_else = true csharp_new_line_before_catch = true csharp_new_line_before_finally = true csharp_new_line_before_members_in_object_initializers = true csharp_new_line_before_members_in_anonymous_types = true csharp_new_line_between_query_expression_clauses = true # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/csharp-formatting-options#indentation-options # Indentation preferences csharp_indent_block_contents = true csharp_indent_braces = false csharp_indent_case_contents = true csharp_indent_switch_labels = true csharp_indent_labels = one_less_than_current # avoid this. unless absolutely necessary dotnet_style_qualification_for_field = false:suggestion dotnet_style_qualification_for_property = false:suggestion dotnet_style_qualification_for_method = false:suggestion dotnet_style_qualification_for_event = false:suggestion # only use var when it's obvious what the variable type is # csharp_style_var_for_built_in_types = false:none # csharp_style_var_when_type_is_apparent = false:none # csharp_style_var_elsewhere = false:suggestion # use language keywords instead of BCL types dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion dotnet_style_predefined_type_for_member_access = true:suggestion # name all constant fields using PascalCase dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style dotnet_naming_symbols.constant_fields.applicable_kinds = field dotnet_naming_symbols.constant_fields.required_modifiers = const dotnet_naming_style.pascal_case_style.capitalization = pascal_case dotnet_naming_symbols.static_fields.applicable_kinds = field dotnet_naming_symbols.static_fields.required_modifiers = static dotnet_naming_style.static_prefix_style.required_prefix = s_ dotnet_naming_style.static_prefix_style.capitalization = camel_case # internal and private fields should be _camelCase dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style dotnet_naming_symbols.private_internal_fields.applicable_kinds = field dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal dotnet_naming_style.camel_case_underscore_style.required_prefix = _ dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case # Code style defaults dotnet_sort_system_directives_first = true csharp_preserve_single_line_blocks = true csharp_preserve_single_line_statements = false # Expression-level preferences dotnet_style_object_initializer = true:suggestion dotnet_style_collection_initializer = true:suggestion dotnet_style_explicit_tuple_names = true:suggestion dotnet_style_coalesce_expression = true:suggestion dotnet_style_null_propagation = true:suggestion # Expression-bodied members csharp_style_expression_bodied_methods = false:none csharp_style_expression_bodied_constructors = false:none csharp_style_expression_bodied_operators = false:none csharp_style_expression_bodied_properties = true:none csharp_style_expression_bodied_indexers = true:none csharp_style_expression_bodied_accessors = true:none # Pattern matching csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion csharp_style_pattern_matching_over_as_with_null_check = true:suggestion csharp_style_inlined_variable_declaration = true:suggestion # Null checking preferences csharp_style_throw_expression = true:suggestion csharp_style_conditional_delegate_call = true:suggestion # Space preferences csharp_space_after_cast = false csharp_space_after_colon_in_inheritance_clause = true csharp_space_after_comma = true csharp_space_after_dot = false csharp_space_after_keywords_in_control_flow_statements = true csharp_space_after_semicolon_in_for_statement = true csharp_space_around_binary_operators = before_and_after csharp_space_before_colon_in_inheritance_clause = true csharp_space_before_comma = false csharp_space_before_dot = false csharp_space_before_open_square_brackets = false csharp_space_before_semicolon_in_for_statement = false csharp_space_between_empty_square_brackets = false csharp_space_between_method_call_empty_parameter_list_parentheses = false csharp_space_between_method_call_name_and_opening_parenthesis = false csharp_space_between_method_call_parameter_list_parentheses = false csharp_space_between_method_declaration_empty_parameter_list_parentheses = false csharp_space_between_method_declaration_name_and_open_parenthesis = false csharp_space_between_method_declaration_parameter_list_parentheses = false csharp_space_between_parentheses = false csharp_space_between_square_brackets = false ################################################################################## # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ ################################################################################## ## Roslyn Code quality rules dotnet_diagnostic.CA1030.severity = none dotnet_diagnostic.CA1034.severity = none dotnet_diagnostic.CA1062.severity = suggestion dotnet_code_quality.CA1062.exclude_extension_method_this_parameter = true dotnet_code_quality.exclude_extension_method_this_parameter = true dotnet_code_quality.null_check_validation_methods = ThrowIfArgumentIsNull # CA1031: Do not catch general exception types dotnet_diagnostic.CA1031.severity = none # CA1303: Do not pass literals as localized parameters dotnet_diagnostic.CA1303.severity = none # CA1304: Specify CultureInfo dotnet_diagnostic.CA1304.severity = error # CA1307: Specify StringComparison for clarity dotnet_diagnostic.CA1307.severity = error # CA1308: Normalize strings to uppercase dotnet_diagnostic.CA1308.severity = error # CA1309: Use ordinal StringComparison dotnet_diagnostic.CA1309.severity = error # CA1724: Type names should not match namespaces dotnet_diagnostic.CA1724.severity = none # CA1819: Properties should not return arrays dotnet_diagnostic.CA1819.severity = none # CA1851: Possible multiple enumerations of IEnumerable collection. Related to GH-issue #2000 dotnet_diagnostic.CA1851.severity = suggestion # CA1859: Use concrete types when possible for improved performance dotnet_diagnostic.CA1859.severity = suggestion # CA1860: Avoid using 'Enumerable.Any()' extension method dotnet_diagnostic.CA1860.severity = warning # CA1861: Avoid constant arrays as arguments dotnet_diagnostic.CA1861.severity = none # CA2007: Do not directly await a Task dotnet_diagnostic.CA2007.severity = none # CA2225: Operator overloads have named alternates dotnet_diagnostic.CA2225.severity = none # CA3075: Insecure DTD Processing dotnet_diagnostic.CA3075.severity = none # CA5369: Use XmlReader for Deserialize dotnet_diagnostic.CA5369.severity = none # CA1305: Specify IFormatProvider dotnet_diagnostic.CA1305.severity = None # CA1063: Implement IDisposable correctly dotnet_diagnostic.CA1063.severity = None # CA2201: Do not raise reserved exception types dotnet_diagnostic.ca2201.severity = Suggestion # CA1848: Use the LoggerMessage delegates dotnet_diagnostic.ca1848.severity = Suggestion # CA1810: Initialize reference type static fields inline dotnet_diagnostic.ca1810.severity = Suggestion # CA1725: Parameter names should match base declaration dotnet_diagnostic.ca1725.severity = Suggestion # https://csharpier.com/docs/IntegratingWithLinters#code-analysis-rules ################################################################################## # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ ################################################################################## ## Roslyn Code-style rules dotnet_diagnostic.IDE0048.severity = Suggestion dotnet_diagnostic.IDE0028.severity = Suggestion dotnet_diagnostic.IDE0029.severity = Suggestion dotnet_diagnostic.IDE0030.severity = Suggestion dotnet_diagnostic.IDE0004.severity = error # IDE0005: Remove unnecessary usings/imports dotnet_diagnostic.IDE0005.severity = warning # IDE0051: Remove unused private members (no reads or writes) dotnet_diagnostic.IDE0051.severity = Suggestion # IDE0052: Remove unread private members (writes but no reads) dotnet_diagnostic.IDE0052.severity = error # IDE0055: Fix formatting # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/csharp-formatting-options # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/dotnet-formatting-options # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0055 dotnet_diagnostic.IDE0055.severity = suggestion # CS1574: XML comment on 'construct' has syntactically incorrect cref attribute 'name' dotnet_diagnostic.CS1574.severity = error # IDE0160, IDE0161: Report violations when block-scoped namespaces are used dotnet_diagnostic.IDE0160.severity = none dotnet_diagnostic.IDE0161.severity = none ################################################################################## # https://jetbrains.com.xy2401.com/help/resharper/EditorConfig_Index.html # https://jetbrains.com.xy2401.com/help/resharper/Reference__Code_Inspections_CSHARP.html ## Resharper # ReSharper properties resharper_align_linq_query = true resharper_align_multiline_array_and_object_initializer = true resharper_align_multiline_binary_patterns = true resharper_align_multiline_expression = true resharper_align_multiline_extends_list = true resharper_align_multiline_parameter = true resharper_align_multiline_property_pattern = true resharper_align_multiline_switch_expression = true resharper_align_multiple_declaration = true resharper_align_multline_type_parameter_constrains = true resharper_align_multline_type_parameter_list = true resharper_align_tuple_components = true resharper_braces_for_for = required_for_multiline resharper_braces_for_foreach = required_for_multiline resharper_braces_for_ifelse = required_for_multiline resharper_csharp_alignment_tab_fill_style = optimal_fill resharper_csharp_indent_type_constraints = false resharper_csharp_int_align_fix_in_adjacent = false resharper_csharp_outdent_commas = true resharper_csharp_stick_comment = false resharper_csharp_wrap_after_declaration_lpar = true resharper_csharp_wrap_after_invocation_lpar = true resharper_csharp_wrap_arguments_style = chop_if_long resharper_csharp_wrap_before_declaration_rpar = true resharper_csharp_wrap_before_first_type_parameter_constraint = true resharper_csharp_wrap_before_ternary_opsigns = false resharper_csharp_wrap_extends_list_style = chop_if_long resharper_csharp_wrap_multiple_declaration_style = wrap_if_long resharper_csharp_wrap_multiple_type_parameter_constraints_style = chop_always resharper_csharp_wrap_parameters_style = chop_if_long resharper_enforce_line_ending_style = true resharper_indent_anonymous_method_block = true resharper_indent_braces_inside_statement_conditions = false resharper_indent_nested_fixed_stmt = true resharper_indent_nested_foreach_stmt = true resharper_indent_nested_for_stmt = true resharper_indent_nested_lock_stmt = true resharper_indent_nested_usings_stmt = true resharper_indent_nested_while_stmt = true resharper_keep_existing_declaration_block_arrangement = true resharper_keep_existing_declaration_parens_arrangement = false resharper_keep_existing_embedded_arrangement = false resharper_keep_existing_embedded_block_arrangement = true resharper_keep_existing_enum_arrangement = true resharper_keep_existing_invocation_parens_arrangement = false resharper_keep_existing_property_patterns_arrangement = false resharper_keep_existing_switch_expression_arrangement = false resharper_max_array_initializer_elements_on_line = 700 resharper_max_formal_parameters_on_line = 500 resharper_max_invocation_arguments_on_line = 700 resharper_new_line_before_while = true resharper_place_attribute_on_same_line = false resharper_place_linq_into_on_new_line = false resharper_place_simple_case_statement_on_same_line = if_owner_is_single_line resharper_place_simple_property_pattern_on_single_line = false resharper_show_autodetect_configure_formatting_tip = false resharper_space_within_single_line_array_initializer_braces = false resharper_trailing_comma_in_multiline_lists = true resharper_trailing_comma_in_singleline_lists = true resharper_use_heuristics_for_body_style = false resharper_use_indent_from_vs = false resharper_use_roslyn_logic_for_evident_types = true resharper_wrap_array_initializer_style = chop_always resharper_wrap_chained_binary_expressions = chop_if_long resharper_wrap_chained_binary_patterns = chop_if_long resharper_wrap_chained_method_calls = chop_if_long resharper_wrap_for_stmt_header_style = wrap_if_long resharper_wrap_switch_expression = chop_if_long resharper_wrap_verbatim_interpolated_strings = chop_if_long # ReSharper inspection severities resharper_arrange_accessor_owner_body_highlighting = none resharper_arrange_redundant_parentheses_highlighting = hint resharper_arrange_type_member_modifiers_highlighting = hint resharper_arrange_type_modifiers_highlighting = hint resharper_check_namespace_highlighting = none resharper_enforce_if_statement_braces_highlighting = hint resharper_inconsistent_naming_highlighting = suggestion resharper_static_member_in_generic_type_highlighting = none resharper_suggest_var_or_type_built_in_types_highlighting = hint resharper_suggest_var_or_type_elsewhere_highlighting = hint resharper_suggest_var_or_type_simple_types_highlighting = hint resharper_web_config_module_not_resolved_highlighting = warning resharper_web_config_type_not_resolved_highlighting = warning resharper_web_config_wrong_module_highlighting = warning # https://www.jetbrains.com/help/rider/ClassNeverInstantiated.Global.html resharper_class_never_instantiated_global_highlighting = none # Convert lambda expression to method group resharper_convert_closure_to_method_group_highlighting = none # Start each element in a object or collection initializer on a new line resharper_wrap_object_and_collection_initializer_style = chop_always # Force an empty line resharper_blank_lines_after_multiline_statements = 1 # Don't remove existing line breaks resharper_keep_existing_initializer_arrangement = true resharper_keep_existing_arrangement = true # We care about that extra else after an else-if resharper_redundant_if_else_block_highlighting = none # Don't remove explicit default cases in switch statements resharper_redundant_empty_switch_section_highlighting = none resharper_align_multiline_binary_expressions_chain = false # Only use new() when the type is obvious resharper_object_creation_when_type_not_evident = explicitly_typed resharper_object_creation_when_type_evident = target_typed # Indent 4 spaces per necessary indention resharper_continuous_indent_multiplier = 1 # Avoid breaking a generic definition resharper_wrap_before_extends_colon = true resharper_blank_lines_before_multiline_statements = 1 resharper_parentheses_non_obvious_operations = arithmetic, multiplicative, equality, relational, additive resharper_parentheses_redundancy_style = remove_if_not_clarifies_precedence ################################################################################## ## https://github.com/bkoelman/CSharpGuidelinesAnalyzer ## CSharpGuidelines ################################################################################## dotnet_diagnostic.AV1561.max_parameter_count = 5 # AV1008: Class should be non-static or its name should be suffixed with Extensions dotnet_diagnostic.AV1008.severity = none # AV1010: Type hides inherited member dotnet_diagnostic.AV1010.severity = none # AV1115: Member or local function contains the word 'and', which suggests doing multiple things dotnet_diagnostic.AV1115.severity = suggestion # AV1130: Return type in signature for Type should be a collection interface instead of a concrete type dotnet_diagnostic.AV1130.severity = none # AV1135: null is returned from method which has return type of string, collection or task dotnet_diagnostic.AV1135.severity = none # re-enable if we can distinguish between string, collection and task # AV1210: Catch a specific exception instead of Exception, SystemException or ApplicationException dotnet_diagnostic.AV1210.severity = none # AV1250: Evaluate LINQ query before returning it dotnet_diagnostic.AV1250.severity = suggestion # AV1500: Method 'CallerIdentifier.DetermineCallerIdentity()' contains 10 statements, which exceeds the maximum of 7 statements dotnet_diagnostic.AV1500.severity = none # AV1532: Loop statement contains nested loop dotnet_diagnostic.AV1532.severity = suggestion # AV1535: Missing block in case or default clause of switch statement dotnet_diagnostic.AV1535.severity = none # re-enable if we can adjust the formatting to not indent the scope braces # AV1537: If-else-if construct should end with an unconditional else clause dotnet_diagnostic.AV1537.severity = suggestion # AV1551: Method overload with the most parameters should be virtual dotnet_diagnostic.AV1551.severity = none # AV1555: Avoid using non-(nullable-)boolean named arguments dotnet_diagnostic.AV1555.severity = suggestion # AV1561: Method contains 5 parameters, which exceeds the maximum of 3 parameters dotnet_diagnostic.AV1561.severity = suggestion # AV1564: Parameter in public or internal member is of type bool or bool? dotnet_diagnostic.AV1564.severity = suggestion # AV1554: Do not use optional parameters in interface methods or their concrete implementations dotnet_diagnostic.AV1554.severity = none # AV1580: Argument for parameter calls nested method dotnet_diagnostic.AV1580.severity = none # AV1706: Parameter 'p' should have a more descriptive name dotnet_diagnostic.AV1706.severity = warning # AV1708: Type name contains term that should be avoided dotnet_diagnostic.AV1708.severity = suggestion # AV1710: Field contains the name of its containing type dotnet_diagnostic.AV1710.severity = none # AV2202: Replace call to Nullable.HasValue with null check dotnet_diagnostic.AV2202.severity = none # AV2305: Missing XML comment for internally visible type or member dotnet_diagnostic.AV2305.severity = none # AV2407: Region should be removed dotnet_diagnostic.AV2407.severity = none ################################################################################## ## https://github.com/DotNetAnalyzers/StyleCopAnalyzers/tree/master/documentation ## https://documentation.help/StyleCop/StyleCop.html ## StyleCop.Analyzers ################################################################################## # Using directive should appear within a namespace declaration dotnet_diagnostic.sa1200.severity = None # Generic type parameter documentation should have text. dotnet_diagnostic.sa1622.severity = None # XML comment analysis is disabled due to project configuration dotnet_diagnostic.sa0001.severity = None # The file header is missing or not located at the top of the file dotnet_diagnostic.sa1633.severity = None # Use string.Empty for empty strings dotnet_diagnostic.sa1122.severity = None # Variable '_' should begin with lower-case letter dotnet_diagnostic.sa1312.severity = None # Parameter '_' should begin with lower-case letter dotnet_diagnostic.sa1313.severity = None # Elements should be documented dotnet_diagnostic.sa1600.severity = None # Prefix local calls with this dotnet_diagnostic.sa1101.severity = None # 'public' members should come before 'private' members dotnet_diagnostic.sa1202.severity = None # Comments should contain text dotnet_diagnostic.sa1120.severity = None # Constant fields should appear before non-constant fields dotnet_diagnostic.sa1203.severity = None # Field '_blah' should not begin with an underscore dotnet_diagnostic.sa1309.severity = None # Use trailing comma in multi-line initializers dotnet_diagnostic.sa1413.severity = None # A method should not follow a class dotnet_diagnostic.sa1201.severity = None # Elements should be separated by blank line dotnet_diagnostic.sa1516.severity = None # The parameter spans multiple lines dotnet_diagnostic.sa1118.severity = None # Static members should appear before non-static members dotnet_diagnostic.sa1204.severity = None # Put constructor initializers on their own line dotnet_diagnostic.sa1128.severity = None # Opening braces should not be preceded by blank line dotnet_diagnostic.sa1509.severity = None # The parameter should begin on the line after the previous parameter dotnet_diagnostic.sa1115.severity = None # File name should match first type name dotnet_diagnostic.sa1649.severity = None # File may only contain a single type dotnet_diagnostic.sa1402.severity = None # Enumeration items should be documented dotnet_diagnostic.sa1602.severity = None # Element should not be on a single line dotnet_diagnostic.sa1502.severity = None # Closing parenthesis should not be preceded by a space dotnet_diagnostic.sa1009.severity = None # Closing parenthesis should be on line of last parameter dotnet_diagnostic.sa1111.severity = None # Braces should not be ommitted dotnet_diagnostic.sa1503.severity = None dotnet_diagnostic.sa1401.severity = None # The parameters to a C# method or indexer call or declaration are not all on the same line or each on a separate line. # dotnet_diagnostic.SA1117.severity = Suggestion # The parameters to a C# method or indexer call or declaration span across multiple lines, but the first parameter does not start on the line after the opening bracket. # dotnet_diagnostic.SA1116.severity = Suggestion # A C# partial element is missing a documentation header. dotnet_diagnostic.sa1601.severity = None # A tag within a C# element’s documentation header is empty. dotnet_diagnostic.sa1614.severity = None # A C# element is missing documentation for its return value. dotnet_diagnostic.sa1615.severity = None # The tag within a C# element’s documentation header is empty. dotnet_diagnostic.sa1616.severity = None # An opening brace within a C# element is not spaced correctly. dotnet_diagnostic.sa1012.severity = Suggestion # A closing brace within a C# element is not spaced correctly. dotnet_diagnostic.sa1013.severity = Suggestion # A call to an instance member of the local class or a base class is not prefixed with 'this.', within a C# code file. dotnet_diagnostic.sa1101.severity = None # The keywords within the declaration of an element do not follow a standard ordering scheme. dotnet_diagnostic.SA1206.severity = None # A single-line comment within C# code is not preceded by a blank line. dotnet_diagnostic.SA1515.severity = Suggestion ################################################################################## ## https://github.com/meziantou/Meziantou.Analyzer/tree/main/docs ## Meziantou.Analyzer # MA0049: Type name should not match containing namespace dotnet_diagnostic.ma0049.severity = Suggestion # MA0048: File name must match type name dotnet_diagnostic.ma0048.severity = Suggestion # MA0051: Method is too long dotnet_diagnostic.ma0051.severity = Suggestion # https://www.meziantou.net/string-comparisons-are-harder-than-it-seems.htm # MA0006 - Use String.Equals instead of equality operator dotnet_diagnostic.ma0006.severity = Suggestion # MA0002 - IEqualityComparer or IComparer is missing dotnet_diagnostic.ma0002.severity = Suggestion # MA0001 - StringComparison is missing dotnet_diagnostic.ma0001.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#13-pass-cancellation-token # MA0040: Specify a cancellation token dotnet_diagnostic.ma0032.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#13-pass-cancellation-token # MA0040: Flow the cancellation token when available dotnet_diagnostic.ma0040.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#14-using-cancellation-token-with-iasyncenumerable # MA0079: Use a cancellation token using .WithCancellation() dotnet_diagnostic.ma0079.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#14-using-cancellation-token-with-iasyncenumerable # MA0080: Use a cancellation token using .WithCancellation() dotnet_diagnostic.ma0080.severity = Suggestion # Use Task.ConfigureAwait(false) as the current SynchronizationContext is not needed dotnet_diagnostic.MA0004.severity = none # Add regex evaluation timeout dotnet_diagnostic.MA0009.severity = none # Use an overload of 'ToString' that has a 'System.IFormatProvider' parameter. Already caught by CA1305. dotnet_diagnostic.MA0011.severity = none # Use an overload of 'System.ArgumentException' with the parameter name. Just a suggestion since we have a bunch of justified exceptions. dotnet_diagnostic.MA0015.severity = suggestion # Use an explicit StringComparer to compute hash codes dotnet_diagnostic.MA0021.severity = none # Declare types in namespaces. Already caught by CA1050 dotnet_diagnostic.MA0047.severity = none # Use an overload of 'GetHashCode' that has a StringComparison parameter dotnet_diagnostic.MA0074.severity = none ################################################################################## ## http://pihrt.net/Roslynator/Analyzers ## http://pihrt.net/Roslynator/Refactorings ## https://github.com/JosefPihrt/Roslynator/blob/main/docs/Configuration.md ## Roslynator # RCS1036 - Remove redundant empty line. dotnet_diagnostic.rcs1036.severity = None # RCS1037 - Remove trailing white-space. dotnet_diagnostic.rcs1037.severity = None # RCS1194: Implement exception constructors dotnet_diagnostic.rcs1194.severity = None # https://cezarypiatek.github.io/post/async-analyzers-p1/#1-redundant-asyncawait # RCS1174: Remove redundant async/await. dotnet_diagnostic.rcs1174.severity = error # https://cezarypiatek.github.io/post/async-analyzers-p2/#10-returning-null-from-a-task-returning-method # RCS1210: Return Task.FromResult instead of returning null. dotnet_diagnostic.rcs1210.severity = error # https://cezarypiatek.github.io/post/async-analyzers-p2/#9-missing-configureawaitbool # RCS1090: Call 'ConfigureAwait(false)'. dotnet_diagnostic.rcs1090.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#11-asynchronous-method-names-should-end-with-async #RCS1046: Asynchronous method name should end with 'Async'. dotnet_diagnostic.rcs1046.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#12-non-asynchronous-method-names-shouldnt-end-with-async # RCS1047: Non-asynchronous method name should not end with 'Async'. dotnet_diagnostic.rcs1047.severity = error # https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1174.md # RCS1174: Remove redundant async/await dotnet_diagnostic.rcs1174.severity = Suggestion # Combine 'Enumerable.Where' method chain. It doesn't make it more readable in all cases. dotnet_diagnostic.RCS1112.severity = suggestion # Inline local variable. dotnet_diagnostic.RCS1124.severity = suggestion # Add exception to documentation comment. Nice suggestion, but we don't want to document exceptions for internal code. dotnet_diagnostic.RCS1140.severity = suggestion # Missing documentation dotnet_diagnostic.RCS1141.severity = suggestion dotnet_diagnostic.RCS1142.severity = suggestion # Use conditional access. Suggestion because it doesn't always improve readability dotnet_diagnostic.RCS1146.severity = suggestion # Enum should declare explicit values. Disabled because we're not storing them. dotnet_diagnostic.RCS1161.severity = none # Static member in generic type should use a type parameter. Disabled because it's not always applicable. dotnet_diagnostic.RCS1158.severity = none # Add region name to #endregion. dotnet_diagnostic.RCS1189.severity = none # Convert comment to documentation comment. Disabled because it also complains about SMELL/REFACTOR comments dotnet_diagnostic.RCS1181.severity = none # Use Regex instance instead of static method. Disabled because it's not always worth it. dotnet_diagnostic.RCS1186.severity = none # Use bit shift operator. dotnet_diagnostic.RCS1237.severity = none # RCS1228: Unused element in documentation comment. (Equivalent to SA1614) dotnet_diagnostic.RCS1228.severity = suggestion ################################################################################## ## https://github.com/microsoft/vs-threading ## Microsoft.VisualStudio.Threading.Analyzers ################################################################################## # https://cezarypiatek.github.io/post/async-analyzers-p1/#2-calling-synchronous-method-inside-the-async-method # VSTHRD103: Call async methods when in an async method dotnet_diagnostic.vsthrd103.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p1/#3-async-void-method # VSTHRD100: Avoid async void methods dotnet_diagnostic.vsthrd100.severity = error # https://cezarypiatek.github.io/post/async-analyzers-p1/#4-unsupported-async-delegates # VSTHRD101: Avoid unsupported async delegates dotnet_diagnostic.vsthrd101.severity = error # https://cezarypiatek.github.io/post/async-analyzers-p1/#5-not-awaited-task-within-using-expression # VSTHRD107: Await Task within using expression dotnet_diagnostic.vsthrd107.severity = error # https://cezarypiatek.github.io/post/async-analyzers-p1/#7-unobserved-result-of-asynchronous-method # VSTHRD110: Observe result of async calls dotnet_diagnostic.vsthrd110.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#8-synchronous-waits # VSTHRD002: Avoid problematic synchronous waits dotnet_diagnostic.vsthrd002.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#9-missing-configureawaitbool # VSTHRD111: Use ConfigureAwait(bool) dotnet_diagnostic.vsthrd111.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#10-returning-null-from-a-task-returning-method # VSTHRD114: Avoid returning a null Task dotnet_diagnostic.vsthrd114.severity = error # https://cezarypiatek.github.io/post/async-analyzers-p2/#11-asynchronous-method-names-should-end-with-async # VSTHRD200: Use "Async" suffix for async methods dotnet_diagnostic.vsthrd200.severity = Suggestion # https://cezarypiatek.github.io/post/async-analyzers-p2/#12-non-asynchronous-method-names-shouldnt-end-with-async # VSTHRD200: Use "Async" suffix for async methods dotnet_diagnostic.vsthrd200.severity = Suggestion