Files
UA-.NETStandard/.editorconfig
2026-07-16 06:26:05 +02:00

1145 lines
70 KiB
INI

###############################
# Core EditorConfig Options #
###############################
root = true
# All files
[*]
indent_style = space
tab_width = 4
# Code files
[*.{cs,csx,vb,vbx}]
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
end_of_line = crlf
insert_final_newline = true
max_line_length = 120
# Xml project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
indent_size = 2
# Xml config files
[*.{xml,props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
indent_size = 2
# JSON files
[*.json]
indent_size = 2
# YAML files
[*.{yml,yaml}]
indent_size = 2
###############################
# .NET Coding Conventions #
###############################
#### C# Formatting Rules ####
[*.cs]
# Null-checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion
# Modifier preferences
# require braces to be on a new line for control_blocks, types, and methods (also known as "Allman" style)
csharp_new_line_before_open_brace = all
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
csharp_new_line_before_catch = true
csharp_new_line_before_else = true:suggestion
csharp_new_line_before_finally = true:suggestion
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_between_query_expression_clauses = true
# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = false
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
# Space preferences
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
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_declaration_name_and_open_parenthesis = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
# Formatting - organize using options
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_using_directive_placement = outside_namespace:suggestion
# Formatting - spacing options
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_before_colon_in_inheritance_clause = true
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_parameter_list_parentheses = false
csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:silent
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
# Formatting - wrapping options
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = false
dotnet_style_allow_trailing_commas = false:suggestion
# Pattern - matching preferences
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
# Style - expression bodied member options
csharp_style_expression_bodied_operators = false:suggestion
csharp_style_expression_bodied_indexers = true:suggestion
csharp_style_expression_bodied_accessors = true:suggestion
csharp_style_expression_bodied_constructors = false:suggestion
csharp_style_expression_bodied_methods = false:suggestion
csharp_style_expression_bodied_properties = true:suggestion
csharp_style_expression_bodied_lambdas = true:suggestion
csharp_style_expression_bodied_local_functions = when_on_single_line:suggestion
# Style - expression level options
csharp_prefer_braces = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_prefer_simple_using_statement = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion
csharp_prefer_static_local_function = true:warning
csharp_prefer_static_anonymous_function = true:suggestion
# Style - implicit and explicit types
csharp_style_var_for_built_in_types = false:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = false:suggestion
# Style - misc
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_prefer_implicitly_typed_lambda_expression = true:suggestion
csharp_style_prefer_unbound_generic_type_in_nameof = true:suggestion
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_prefer_readonly_struct_member = true:suggestion
# Style - pattern matching
csharp_style_prefer_switch_expression = false:silent
csharp_style_prefer_pattern_matching = true:silent
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_extended_property_pattern = true:suggestion
# Never
dotnet_style_namespace_match_folder = false:none
# Enable eventually
dotnet_code_quality_unused_parameters = all:silent
# Style - language keyword and framework type options
# prefer the language keyword for local variables, method parameters, and class members,
# instead of the type name, for types that have a keyword to represent them
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
dotnet_style_allow_multiple_blank_lines_experimental = false:suggestion
dotnet_style_allow_statement_immediately_after_block_experimental = true:suggestion
# Style - Qualification options
dotnet_style_qualification_for_event = false:suggestion
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
# Style - Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
dotnet_style_operator_placement_when_wrapping = beginning_of_line
# Style - Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
dotnet_style_readonly_field = true:suggestion
# Style - Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_auto_properties = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion
dotnet_style_prefer_conditional_expression_over_return = false:silent
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
csharp_style_unused_value_expression_statement_preference = unused_local_variable:suggestion
# 'using' directive preferences
csharp_using_directive_placement = outside_namespace:suggestion
csharp_style_namespace_declarations = block_scoped:suggestion
# We have a polyfill for this
csharp_prefer_system_threading_lock = true:suggestion
# Naming rules
# Async methods should have "Async" suffix
dotnet_naming_rule.async_methods_end_in_async.severity = warning
dotnet_naming_rule.async_methods_end_in_async.symbols = any_async_methods
dotnet_naming_rule.async_methods_end_in_async.style = end_in_async
dotnet_naming_symbols.any_async_methods.applicable_kinds = method, interface
dotnet_naming_symbols.any_async_methods.applicable_accessibilities = *
dotnet_naming_symbols.any_async_methods.required_modifiers = async
dotnet_naming_style.end_in_async.required_suffix = Async
dotnet_naming_style.end_in_async.capitalization = pascal_case
# Private Constants are PascalCase and start with k
dotnet_naming_rule.constants_private_should_start_with_k.severity = warning
dotnet_naming_rule.constants_private_should_start_with_k.symbols = constants_with_k
dotnet_naming_rule.constants_private_should_start_with_k.style = constants_with_k_style
dotnet_naming_symbols.constants_with_k.applicable_kinds = field, local
dotnet_naming_symbols.constants_with_k.applicable_accessibilities = private, protected, private_protected, protected_friend
dotnet_naming_symbols.constants_with_k.required_modifiers = const
dotnet_naming_style.constants_with_k_style.capitalization = pascal_case
dotnet_naming_style.constants_with_k_style.required_prefix = k
# Constants are PascalCase
dotnet_naming_rule.constants_should_be_pascal_case.severity = warning
dotnet_naming_rule.constants_should_be_pascal_case.symbols = constants
dotnet_naming_rule.constants_should_be_pascal_case.style = non_private_static_field_style
dotnet_naming_symbols.constants.applicable_kinds = field, local
dotnet_naming_symbols.constants.applicable_accessibilities = public, internal, protected_internal
dotnet_naming_symbols.constants.required_modifiers = const
dotnet_naming_style.constant_style.capitalization = pascal_case
# Non-private readonly fields are PascalCase
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.severity = warning
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.symbols = non_private_readonly_fields
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.style = non_private_static_field_style
dotnet_naming_symbols.non_private_readonly_fields.applicable_kinds = field
dotnet_naming_symbols.non_private_readonly_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
dotnet_naming_symbols.non_private_readonly_fields.required_modifiers = readonly
dotnet_naming_style.non_private_readonly_field_style.capitalization = pascal_case
# Non-private static fields are PascalCase
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = warning
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non_private_static_fields
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = non_private_static_field_style
dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field
dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
dotnet_naming_symbols.non_private_static_fields.required_modifiers = static
dotnet_naming_style.non_private_static_field_style.capitalization = pascal_case
# Private static fields are camelCase and start with s_
dotnet_naming_rule.static_fields_should_be_camel_case.severity = warning
dotnet_naming_rule.static_fields_should_be_camel_case.symbols = static_fields
dotnet_naming_rule.static_fields_should_be_camel_case.style = static_field_style
dotnet_naming_symbols.static_fields.applicable_kinds = field
dotnet_naming_symbols.static_fields.applicable_accessibilities = private, protected, private_protected, protected_friend
dotnet_naming_symbols.static_fields.required_modifiers = static
dotnet_naming_style.static_field_style.capitalization = camel_case
dotnet_naming_style.static_field_style.required_prefix = s_
# Private instance fields are camelCase and start with m_
dotnet_naming_rule.instance_fields_should_be_camel_case.severity = warning
dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields
dotnet_naming_rule.instance_fields_should_be_camel_case.style = instance_field_style
dotnet_naming_symbols.instance_fields.applicable_kinds = field
dotnet_naming_symbols.instance_fields.applicable_accessibilities = private, protected, private_protected, protected_friend
dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = m_
# Private event fields are PascalCase and start with m_
dotnet_naming_rule.instance_events_should_be_pascal_case.severity = warning
dotnet_naming_rule.instance_events_should_be_pascal_case.symbols = instance_events
dotnet_naming_rule.instance_events_should_be_pascal_case.style = instance_events_style
dotnet_naming_symbols.instance_events.applicable_kinds = event
dotnet_naming_symbols.instance_events.applicable_accessibilities = private, protected, private_protected, protected_friend
dotnet_naming_style.instance_events_style.capitalization = pascal_case
dotnet_naming_style.instance_events_style.required_prefix = m_
# Locals and parameters are camelCase
dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion
dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters
dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style
dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local
dotnet_naming_style.camel_case_style.capitalization = camel_case
# Local functions are PascalCase
dotnet_naming_rule.local_functions_should_be_pascal_case.severity = warning
dotnet_naming_rule.local_functions_should_be_pascal_case.symbols = local_functions
dotnet_naming_rule.local_functions_should_be_pascal_case.style = non_private_static_field_style
dotnet_naming_symbols.local_functions.applicable_kinds = local_function
dotnet_naming_style.local_function_style.capitalization = pascal_case
# By default, name items with PascalCase
dotnet_naming_rule.members_should_be_pascal_case.severity = warning
dotnet_naming_rule.members_should_be_pascal_case.symbols = all_members
dotnet_naming_rule.members_should_be_pascal_case.style = non_private_static_field_style
dotnet_naming_symbols.all_members.applicable_kinds = *
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
# Diagnostic settings (windows only)
dotnet_analyzer_diagnostic.category-style.severity = suggestion
dotnet_analyzer_diagnostic.category-globalization.severity = silent
dotnet_analyzer_diagnostic.category-design.severity = suggestion
dotnet_analyzer_diagnostic.category-reliability.severity = warning
dotnet_analyzer_diagnostic.category-performance.severity = warning
dotnet_analyzer_diagnostic.category-security.severity = warning
#
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/categories
#
# CA1805: Do not initialize unnecessarily.
dotnet_diagnostic.CA1805.severity = suggestion
dotnet_code_quality.CA1805.api_surface = private, internal
# CA1822: Mark members as static.
dotnet_diagnostic.CA1822.severity = suggestion
dotnet_code_quality.CA1822.api_surface = private, internal
# CA3075: Insecure DTD processing in XML
dotnet_diagnostic.CA3075.severity = error
dotnet_diagnostic.CA3077.severity = error
# CA2007: Do not directly await a Task (promoted to error after PR #3780 cleanup)
dotnet_diagnostic.CA2007.severity = error
# CA1507: Use nameof in place of string
dotnet_diagnostic.CA1507.severity = error
# CA1711: Identifiers should not have incorrect suffix
dotnet_diagnostic.CA1711.severity = none
# CA1305: Specify IFormatProvider (promoted to error after PR #3780 cleanup)
dotnet_diagnostic.CA1305.severity = error
# CA1819: Properties should not return arrays
dotnet_diagnostic.CA1819.severity = silent
# CA1721: The property name is confusing given the existence of another method with the same name.
dotnet_diagnostic.CA1721.severity = silent
# CA2014: Do not use stackalloc in loops
dotnet_diagnostic.CA2014.severity = error
# CA1510: Use throw helpers - enable when we have a polyfill via C# 14
dotnet_diagnostic.CA1510.severity = none
dotnet_diagnostic.CA1511.severity = none
dotnet_diagnostic.CA1512.severity = none
dotnet_diagnostic.CA1513.severity = none
# CA2213: Disposable fields should be disposed
dotnet_diagnostic.CA2213.severity = error
# CA2000: Dispose objects before losing scope
dotnet_diagnostic.CA2000.severity = error
# CA1001: Types that own disposable fields should be disposable
dotnet_diagnostic.CA1001.severity = error
# CA1849: Call async methods when in an async method
dotnet_diagnostic.CA1849.severity = suggestion
# CA2225: Operator overloads have named alternates
dotnet_diagnostic.CA2225.severity = suggestion
# Rules promoted to error after PR #3780 cleanup brought UA.slnx to 0 hits.
# These catch real correctness defects; keeping them as errors prevents regression.
# CA1014: Mark assemblies with CLSCompliant
dotnet_diagnostic.CA1014.severity = error
# CA1307: Specify StringComparison for clarity (locale-dependent string ops)
dotnet_diagnostic.CA1307.severity = error
# CA2016: Forward CancellationToken to invoked methods
dotnet_diagnostic.CA2016.severity = error
# RCS1166: Value type object is never null (catches dead null-checks on structs)
dotnet_diagnostic.RCS1166.severity = error
# CA1859: Use concrete types when possible for improved performance — verified 0 hits at promotion time
dotnet_diagnostic.CA1859.severity = error
# CA1068: CancellationToken parameters must come last — verified 0 hits at promotion time
dotnet_diagnostic.CA1068.severity = error
# CA1825: Avoid zero-length array allocations — verified 0 hits at promotion time
dotnet_diagnostic.CA1825.severity = error
#
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/language-rules
#
# IDE0058: Expression value is never used
dotnet_diagnostic.IDE0058.severity = silent
# IDE0290: Use primary constructor
csharp_style_prefer_primary_constructors = false:silent
# IDE0045: Convert to conditional expression
dotnet_diagnostic.IDE0045.severity = none
# IDE0065: Using directives must be placed inside a namespace declaration
dotnet_diagnostic.IDE0065.severity = none
# IDE0072: Add missing cases to switch statement
dotnet_diagnostic.IDE0072.severity = silent
# IDE0072: Add missing cases to switch expression
dotnet_diagnostic.IDE0010.severity = silent
# IDE0049: Simplify Names
dotnet_diagnostic.IDE0049.severity = warning
# IDE1005: Simplify delegate invocation
dotnet_diagnostic.IDE1005.severity = error
# IDE0046: Convert to conditional expression
dotnet_diagnostic.IDE0046.severity = warning
# IDE0130: Namespace does not match folder structure
dotnet_diagnostic.IDE0130.severity = none
# IDE0032: Use auto property — explicit backing fields are intentional in many sites
# (state-machine wrappers, NodeState subclasses); auto-fixer cannot tell the difference.
dotnet_diagnostic.IDE0032.severity = silent
# IDE0360: Use primary constructor — explicitly disabled (project policy: no primary constructors)
dotnet_diagnostic.IDE0360.severity = none
# IDE0060: Remove unused parameter — most sites are OPC UA framework / NodeManager
# callbacks where the parameter is required by the contract. Per-site fixes are
# not practical at the current volume.
dotnet_diagnostic.IDE0060.severity = silent
# IDE1006: Naming rule violation — repo convention is 'm_' prefix for private/internal
# fields (long-standing). Public-API symbols also follow OPC UA spec terms that the
# rule flags as violations; renaming the public surface would break consumers.
dotnet_diagnostic.IDE1006.severity = silent
# IDE0370: 'Suppression is unnecessary' — auto-fixer cannot safely apply (some analyzer
# configurations make these suppressions necessary on TFMs the fixer cannot evaluate).
dotnet_diagnostic.IDE0370.severity = silent
#
# Introduced in .net 10 as part of all analysis configuration
#
# Fix never - would break API without good workaround
# CA1030: Use events where appropriate
dotnet_diagnostic.CA1030.severity = none
# CA1024: Use properties where appropriate
dotnet_diagnostic.CA1024.severity = none
# CA1003: Use generic event handler instances
dotnet_diagnostic.CA1003.severity = none
# CA1515: Consider making public types internal
dotnet_diagnostic.CA1515.severity = none
# CA1720: Identifier contains type name
dotnet_diagnostic.CA1720.severity = none
# CA1814: Prefer jagged arrays over multidimensional
dotnet_diagnostic.CA1814.severity = none
# CA1716: Identifiers should not match keywords
dotnet_diagnostic.CA1716.severity = none
# CA1724: The type conflicts in whole or in part with a namespace name
dotnet_diagnostic.CA1724.severity = none
# TODO: Fix as P2:
# CA1848: Use the LoggerMessage delegates
dotnet_diagnostic.CA1848.severity = none
# CA1873: Avoid potentially expensive logging. Enabled solution-wide (issue
# #3908) now that the entire code base uses source-generated [LoggerMessage]
# logging; any regression back to direct ILogger.Log* calls with expensive
# arguments is flagged.
dotnet_diagnostic.CA1873.severity = warning
# CA1000: Do not declare static members on generic types
dotnet_diagnostic.CA1000.severity = none
# CA1031: Do not catch general exception types
dotnet_diagnostic.CA1031.severity = none
# CA1034: Nested types should not be visible
dotnet_diagnostic.CA1034.severity = none
# CA1008: Enums should have zero value
dotnet_diagnostic.CA1008.severity = none
# CA1308: Normalize strings to uppercase
dotnet_diagnostic.CA1308.severity = none
# CA2214: Do not call overridable methods in constructors
dotnet_diagnostic.CA2214.severity = none
# TODO: Fix as P3
# CA1062: Validate arguments of public methods
dotnet_diagnostic.CA1062.severity = none
# CA1056: URI-like properties should not be strings
dotnet_diagnostic.CA1056.severity = none
# CA1002: Do not expose generic lists
dotnet_diagnostic.CA1002.severity = none
# CA1051: Do not declare visible instance fields
dotnet_diagnostic.CA1051.severity = none
# CA1028: Enum Storage should be Int32
dotnet_diagnostic.CA1028.severity = none
# CA1054: URI-like parameters should not be strings
dotnet_diagnostic.CA1054.severity = none
# CA1055: URI-like return values should not be strings
dotnet_diagnostic.CA1055.severity = none
# CA1707: Identifiers should not contain underscores
dotnet_diagnostic.CA1707.severity = none
# CA1033: Interface methods should be callable by child types
dotnet_diagnostic.CA1033.severity = none
# CA1065: Do not raise exceptions in unexpected locations
dotnet_diagnostic.CA1065.severity = none
# CA5362: Field participates in a potential reference cycle
dotnet_diagnostic.CA5362.severity = none
# CA1303: Do not pass literals as localized parameters
dotnet_diagnostic.CA1303.severity = none
# CA2227: Collection properties should be read only
dotnet_diagnostic.CA2227.severity = none
#
# Roslynator settings (https://josefpihrt.github.io/docs/roslynator/analyzers)
#
dotnet_analyzer_diagnostic.category-roslynator.severity = suggestion
roslynator_refactorings.enabled = true
roslynator_compiler_diagnostic_fixes.enabled = true
roslynator_tab_length = 4
roslynator_max_line_length = 160
roslynator_blank_line_between_using_directives = never
roslynator_blank_line_between_single_line_accessors = false
roslynator_block_braces_style = multi_line
roslynator_binary_operator_new_line = after
roslynator_null_conditional_operator_new_line = after
roslynator_trailing_comma_style = omit
roslynator_blank_line_between_switch_sections = omit
roslynator_object_creation_parentheses_style = omit
roslynator_conditional_operator_condition_parentheses_style = omit
roslynator_empty_string_style = field
roslynator_configure_await = true
roslynator_infinite_loop_style = while
roslynator_doc_comment_summary_style = multi_line
#roslynator_enum_flag_value_style = decimal_number
#roslynator_null_check_style = pattern_matching
# Roslynator diagnostics (ordered by id)
# RCS0001 Add blank line after embedded statement
#dotnet_diagnostic.RCS0001.severity = suggestion
# RCS0002 Add blank line after #region
#dotnet_diagnostic.RCS0002.severity = suggestion
# RCS0003 Add blank line after using directive list
dotnet_diagnostic.RCS0003.severity = warning
# RCS0005 Add blank line before #endregion
#dotnet_diagnostic.RCS0005.severity = suggestion
# RCS0006 Add blank line before using directive list
dotnet_diagnostic.RCS0006.severity = warning
# RCS0007 Add blank line between accessors
#dotnet_diagnostic.RCS0007.severity = suggestion
# RCS0008 Add blank line between closing brace and next statement
#dotnet_diagnostic.RCS0008.severity = suggestion
# RCS0009 Add blank line between declaration and documentation comment
dotnet_diagnostic.RCS0009.severity = warning
# RCS0010 Add blank line between declarations
dotnet_diagnostic.RCS0010.severity = suggestion
# RCS0011 Add/remove blank line between single-line accessors
dotnet_diagnostic.RCS0011.severity = warning
# RCS0012 Add blank line between single-line declarations
#dotnet_diagnostic.RCS0012.severity = suggestion
# RCS0013 Add blank line between single-line declarations of different kind
#dotnet_diagnostic.RCS0013.severity = suggestion
# RCS0015 Add/remove blank line between using directives
dotnet_diagnostic.RCS0015.severity = suggestion
# RCS0016 Put attribute list on its own line
#dotnet_diagnostic.RCS0016.severity = suggestion
# RCS0020 Format accessor's braces on a single line or multiple lines
#dotnet_diagnostic.RCS0020.severity = suggestion
# RCS0021 Format block's braces on a single line or multiple lines
dotnet_diagnostic.RCS0021.severity = suggestion
# RCS0023 Format type declaration's braces
dotnet_diagnostic.RCS0023.severity = warning
# RCS0024 Add new line after switch label
#dotnet_diagnostic.RCS0024.severity = suggestion
# RCS0025 Put full accessor on its own line
dotnet_diagnostic.RCS0025.severity = suggestion
# RCS0027 Place new line after/before binary operator
dotnet_diagnostic.RCS0027.severity = suggestion
# RCS0028 Place new line after/before '?:' operator
#dotnet_diagnostic.RCS0028.severity = suggestion
# RCS0029 Put constructor initializer on its own line
dotnet_diagnostic.RCS0029.severity = suggestion
# RCS0030 Put embedded statement on its own line
#dotnet_diagnostic.RCS0030.severity = suggestion
# RCS0031 Put enum member on its own line
dotnet_diagnostic.RCS0031.severity = warning
# RCS0032 Place new line after/before arrow token
#dotnet_diagnostic.RCS0032.severity = suggestion
# RCS0033 Put statement on its own line
dotnet_diagnostic.RCS0033.severity = suggestion
# RCS0034 Put type parameter constraint on its own line
dotnet_diagnostic.RCS0034.severity = warning
# RCS0036 Remove blank line between single-line declarations of same kind
#dotnet_diagnostic.RCS0036.severity = suggestion
# RCS0039 Remove new line before base list
#dotnet_diagnostic.RCS0039.severity = suggestion
# RCS0041 Remove new line between 'if' keyword and 'else' keyword
dotnet_diagnostic.RCS0041.severity = warning
# RCS0042 Put auto-accessors on a single line
dotnet_diagnostic.RCS0042.severity = warning
# RCS0044 Use carriage return + linefeed as new line
#dotnet_diagnostic.RCS0044.severity = suggestion
# RCS0045 Use linefeed as new line
#dotnet_diagnostic.RCS0045.severity = suggestion
# RCS0046 Use spaces instead of tab
dotnet_diagnostic.RCS0046.severity = warning
# RCS0048 Put initializer on a single line
#dotnet_diagnostic.RCS0048.severity = suggestion
# RCS0049 Add blank line after top comment
dotnet_diagnostic.RCS0049.severity = warning
# RCS0050 Add blank line before top declaration
dotnet_diagnostic.RCS0050.severity = warning
# RCS0051 Add/remove new line before 'while' in 'do' statement
dotnet_diagnostic.RCS0051.severity = warning
# RCS0052 Place new line after/before equals token
#dotnet_diagnostic.RCS0052.severity = suggestion
# RCS0053 Fix formatting of a list
#dotnet_diagnostic.RCS0053.severity = suggestion
# RCS0054 Fix formatting of a call chain
#dotnet_diagnostic.RCS0054.severity = suggestion
# RCS0055 Fix formatting of a binary expression chain
dotnet_diagnostic.RCS0055.severity = suggestion
# RCS0056 A line is too long
dotnet_diagnostic.RCS0056.severity = warning
# RCS0057 Normalize whitespace at the beginning of a file
#dotnet_diagnostic.RCS0057.severity = suggestion
# RCS0058 Normalize whitespace at the end of a file
#dotnet_diagnostic.RCS0058.severity = suggestion
# RCS0059 Place new line after/before null-conditional operator
dotnet_diagnostic.RCS0059.severity = suggestion
# RCS0060 Add/remove line after file scoped namespace declaration
#dotnet_diagnostic.RCS0060.severity = suggestion
# RCS0061 Add/remove blank line between switch sections
dotnet_diagnostic.RCS0061.severity = warning
# RCS0062 Put expression body on its own line
#dotnet_diagnostic.RCS0062.severity = suggestion
# RCS0063 Remove unnecessary blank line
dotnet_diagnostic.RCS0063.severity = suggestion
# RCS1001 Add braces (when expression spans over multiple lines)
#dotnet_diagnostic.RCS1001.severity = suggestion
# RCS1002 Remove braces
dotnet_diagnostic.RCS1002.severity = none
# RCS1003 Add braces to if-else (when expression spans over multiple lines)
#dotnet_diagnostic.RCS1003.severity = suggestion
# RCS1004 Remove braces from if-else
dotnet_diagnostic.RCS1004.severity = none
# RCS1005 Simplify nested using statement
dotnet_diagnostic.RCS1005.severity = warning
# RCS1006 Merge 'else' with nested 'if'
dotnet_diagnostic.RCS1006.severity = warning
# RCS1007 Add braces
dotnet_diagnostic.RCS1007.severity = error
# RCS1013 Use predefined type
dotnet_diagnostic.RCS1013.severity = warning
# RCS1014 Use explicitly/implicitly typed array
#dotnet_diagnostic.RCS1014.severity = suggestion
# RCS1015 Use nameof operator
dotnet_diagnostic.RCS1015.severity = warning
# RCS1016 Use block body or expression body
#dotnet_diagnostic.RCS1016.severity = suggestion
# RCS1018 Add/remove accessibility modifiers
#dotnet_diagnostic.RCS1018.severity = suggestion
# RCS1019 Order modifiers
dotnet_diagnostic.RCS1019.severity = none
# RCS1020 Simplify NullableT to T?
dotnet_diagnostic.RCS1020.severity = warning
# RCS1021 Convert lambda expression body to expression body
#dotnet_diagnostic.RCS1021.severity = suggestion
# RCS1031 Remove unnecessary braces in switch section
dotnet_diagnostic.RCS1031.severity = warning
# RCS1032 Remove redundant parentheses
dotnet_diagnostic.RCS1032.severity = warning
# RCS1033 Remove redundant boolean literal
dotnet_diagnostic.RCS1033.severity = warning
# RCS1034 Remove redundant 'sealed' modifier
dotnet_diagnostic.RCS1034.severity = warning
# RCS1037 Remove trailing white-space
dotnet_diagnostic.RCS1037.severity = warning
# RCS1039 Remove argument list from attribute
dotnet_diagnostic.RCS1039.severity = warning
# RCS1042 Remove enum default underlying type
dotnet_diagnostic.RCS1042.severity = warning
# RCS1043 Remove 'partial' modifier from type with a single part
dotnet_diagnostic.RCS1043.severity = suggestion
# RCS1044 Remove original exception from throw statement
dotnet_diagnostic.RCS1044.severity = warning
# RCS1046 Asynchronous method name should end with 'Async'
#dotnet_diagnostic.RCS1046.severity = warning
# RCS1047 Non-asynchronous method name should not end with 'Async'
dotnet_diagnostic.RCS1047.severity = error
# RCS1048 Use lambda expression instead of anonymous method
#dotnet_diagnostic.RCS1048.severity = suggestion
# RCS1049 Simplify boolean comparison
dotnet_diagnostic.RCS1049.severity = warning
# RCS1050 Include/omit parentheses when creating new object
dotnet_diagnostic.RCS1050.severity = warning
# RCS1051 Add/remove parentheses from condition in conditional operator
dotnet_diagnostic.RCS1051.severity = warning
# RCS1052 Declare each attribute separately
dotnet_diagnostic.RCS1052.severity = suggestion
# RCS1055 Unnecessary semicolon at the end of declaration
dotnet_diagnostic.RCS1055.severity = warning
# RCS1056 Avoid usage of using alias directive
#dotnet_diagnostic.RCS1056.severity = suggestion
# RCS1058 Use compound assignment
dotnet_diagnostic.RCS1058.severity = warning
# RCS1059 Avoid locking on publicly accessible instance
#dotnet_diagnostic.RCS1059.severity = warning
# RCS1060 Declare each type in separate file
#dotnet_diagnostic.RCS1060.severity = suggestion
# RCS1061 Merge 'if' with nested 'if'
dotnet_diagnostic.RCS1061.severity = warning
# RCS1068 Simplify logical negation
dotnet_diagnostic.RCS1068.severity = warning
# RCS1069 Remove unnecessary case label
dotnet_diagnostic.RCS1069.severity = suggestion
# RCS1070 Remove redundant default switch section
dotnet_diagnostic.RCS1070.severity = suggestion
# RCS1071 Remove redundant base constructor call
dotnet_diagnostic.RCS1071.severity = warning
# RCS1073 Convert 'if' to 'return' statement
#dotnet_diagnostic.RCS1073.severity = suggestion
# RCS1074 Remove redundant constructor
dotnet_diagnostic.RCS1074.severity = warning
# RCS1075 Avoid empty catch clause that catches System.Exception
#dotnet_diagnostic.RCS1075.severity = warning
# RCS1077 Optimize LINQ method call
dotnet_diagnostic.RCS1077.severity = warning
# RCS1078 Use "" or 'string.Empty'
dotnet_diagnostic.RCS1078.severity = warning
# RCS1079 Throwing of new NotImplementedException
#dotnet_diagnostic.RCS1079.severity = suggestion
# RCS1080 Use 'Count/Length' property instead of 'Any' method
dotnet_diagnostic.RCS1080.severity = warning
# RCS1081 Split variable declaration
dotnet_diagnostic.RCS1081.severity = suggestion
# RCS1084 Use coalesce expression instead of conditional expression
dotnet_diagnostic.RCS1084.severity = warning
# RCS1085 Use auto-implemented property
dotnet_diagnostic.RCS1085.severity = suggestion
# RCS1089 Use --/++ operator instead of assignment
dotnet_diagnostic.RCS1089.severity = warning
# RCS1090 Add/remove 'ConfigureAwait(false)' call
dotnet_diagnostic.RCS1090.severity = suggestion
# RCS1091 (title not provided)
dotnet_diagnostic.RCS1091.severity = warning
# RCS1093 File contains no code
#dotnet_diagnostic.RCS1093.severity = suggestion
# RCS1094 Declare using directive on top level
dotnet_diagnostic.RCS1094.severity = warning
# RCS1096 Use 'HasFlag' method or bitwise operator
#dotnet_diagnostic.RCS1096.severity = suggestion
# RCS1097 Remove redundant 'ToString' call
dotnet_diagnostic.RCS1097.severity = warning
# RCS1098 Constant values should be placed on right side of comparisons
dotnet_diagnostic.RCS1098.severity = warning
# RCS1099 Default label should be the last label in a switch section
dotnet_diagnostic.RCS1099.severity = warning
# RCS1102 Make class static
#dotnet_diagnostic.RCS1102.severity = warning
# RCS1103 Convert 'if' to assignment
#dotnet_diagnostic.RCS1103.severity = suggestion
# RCS1104 Simplify conditional expression
#dotnet_diagnostic.RCS1104.severity = suggestion
# RCS1105 Unnecessary interpolation
#dotnet_diagnostic.RCS1105.severity = suggestion
# RCS1107 Remove redundant 'ToCharArray' call
#dotnet_diagnostic.RCS1107.severity = suggestion
# RCS1108 Add 'static' modifier to all partial class declarations
#dotnet_diagnostic.RCS1108.severity = suggestion
# RCS1110 Declare type inside namespace
#dotnet_diagnostic.RCS1110.severity = suggestion
# RCS1111 Add braces to switch section with multiple statements
#dotnet_diagnostic.RCS1111.severity = suggestion
# RCS1112 Combine 'Enumerable.Where' method chain
dotnet_diagnostic.RCS1112.severity = warning
# RCS1113 Use 'string.IsNullOrEmpty' method
#dotnet_diagnostic.RCS1113.severity = suggestion
# RCS1114 Remove redundant delegate creation
#dotnet_diagnostic.RCS1114.severity = suggestion
# RCS1118 Mark local variable as const
#dotnet_diagnostic.RCS1118.severity = suggestion
# RCS1123 Add parentheses when necessary
#dotnet_diagnostic.RCS1123.severity = suggestion
# RCS1124 Inline local variable
dotnet_diagnostic.RCS1124.severity = suggestion
# RCS1126 Add braces to if-else
dotnet_diagnostic.RCS1126.severity = warning
# RCS1128 Use coalesce expression
#dotnet_diagnostic.RCS1128.severity = suggestion
# RCS1129 Remove redundant field initialization
dotnet_diagnostic.RCS1129.severity = warning
# RCS1130 Bitwise operation on enum without Flags attribute
#dotnet_diagnostic.RCS1130.severity = suggestion
# RCS1132 Remove redundant overriding member
dotnet_diagnostic.RCS1132.severity = warning
# RCS1133 Remove redundant Dispose/Close call
dotnet_diagnostic.RCS1133.severity = suggestion
# RCS1134 Remove redundant statement
dotnet_diagnostic.RCS1134.severity = suggestion
# RCS1135 Declare enum member with zero value (when enum has FlagsAttribute)
#dotnet_diagnostic.RCS1135.severity = suggestion
# RCS1136 Merge switch sections with equivalent content
dotnet_diagnostic.RCS1136.severity = suggestion
# RCS1138 Add summary to documentation comment
#dotnet_diagnostic.RCS1138.severity = warning
# RCS1139 Add summary element to documentation comment
dotnet_diagnostic.RCS1139.severity = warning
# RCS1140 Add exception to documentation comment
dotnet_diagnostic.RCS1140.severity = suggestion
# RCS1141 Add 'param' element to documentation comment
dotnet_diagnostic.RCS1141.severity = silent
# RCS1142 Add 'typeparam' element to documentation comment
# Promoted after Phase 4 cleanup verified 0 hits across UA.slnx
dotnet_diagnostic.RCS1142.severity = error
# RCS1143 Simplify coalesce expression
dotnet_diagnostic.RCS1143.severity = warning
# RCS1145 Remove redundant 'as' operator
dotnet_diagnostic.RCS1145.severity = warning
# RCS1146 Use conditional access
dotnet_diagnostic.RCS1146.severity = none
# RCS1151 Remove redundant cast
dotnet_diagnostic.RCS1151.severity = suggestion
# RCS1154 Sort enum members
dotnet_diagnostic.RCS1154.severity = warning
# RCS1155 Use StringComparison when comparing strings
#dotnet_diagnostic.RCS1155.severity = warning
# RCS1156 Use string.Length instead of comparison with empty string
dotnet_diagnostic.RCS1156.severity = error
# RCS1157 Composite enum value contains undefined flag
#dotnet_diagnostic.RCS1157.severity = suggestion
# RCS1158 Static member in generic type should use a type parameter
#dotnet_diagnostic.RCS1158.severity = suggestion
# RCS1159 Use EventHandlerT
#dotnet_diagnostic.RCS1159.severity = suggestion
# RCS1160 Abstract type should not have public constructors
dotnet_diagnostic.RCS1160.severity = error
# RCS1161 Enum should declare explicit values
dotnet_diagnostic.RCS1161.severity = none
# RCS1163 Unused parameter
dotnet_diagnostic.RCS1163.severity = none
# RCS1166 Value type object is never equal to null
dotnet_diagnostic.RCS1166.severity = warning
# RCS1168 Parameter name differs from base name
dotnet_diagnostic.RCS1168.severity = none
# RCS1169 Make field read-only
dotnet_diagnostic.RCS1169.severity = suggestion
# RCS1170 Use read-only auto-implemented property
dotnet_diagnostic.RCS1170.severity = warning
# RCS1171 Simplify lazy initialization
#dotnet_diagnostic.RCS1171.severity = suggestion
# RCS1172 Use 'is' operator instead of 'as' operator
#dotnet_diagnostic.RCS1172.severity = warning
# RCS1173 Use coalesce expression instead of 'if'
#dotnet_diagnostic.RCS1173.severity = suggestion
# RCS1174 Remove redundant async/await
dotnet_diagnostic.RCS1174.severity = warning
# RCS1175 Unused 'this' parameter
#dotnet_diagnostic.RCS1175.severity = suggestion
# RCS1179 Unnecessary assignment
#dotnet_diagnostic.RCS1179.severity = suggestion
# RCS1180 Inline lazy initialization
#dotnet_diagnostic.RCS1180.severity = suggestion
# RCS1181 Convert comment to documentation comment
dotnet_diagnostic.RCS1181.severity = suggestion
# RCS1182 Remove redundant base interface
dotnet_diagnostic.RCS1182.severity = suggestion
# RCS1186 Use Regex instance instead of static method
#dotnet_diagnostic.RCS1186.severity = suggestion
# RCS1187 Use constant instead of field
dotnet_diagnostic.RCS1187.severity = warning
# RCS1188 Remove redundant auto-property initialization
dotnet_diagnostic.RCS1188.severity = warning
# RCS1189 Add or remove region name
dotnet_diagnostic.RCS1189.severity = warning
# RCS1190 Join string expressions
dotnet_diagnostic.RCS1190.severity = warning
# RCS1191 Declare enum value as combination of names
#dotnet_diagnostic.RCS1191.severity = suggestion
# RCS1192 Unnecessary usage of verbatim string literal
#dotnet_diagnostic.RCS1192.severity = suggestion
# RCS1193 Overriding member should not change 'params' modifier
#dotnet_diagnostic.RCS1193.severity = warning
# RCS1194 Implement exception constructors
#dotnet_diagnostic.RCS1194.severity = warning
# RCS1195 Use ^ operator
#dotnet_diagnostic.RCS1195.severity = suggestion
# RCS1196 Call extension method as instance method
#dotnet_diagnostic.RCS1196.severity = suggestion
# RCS1197 Optimize StringBuilder.Append/AppendLine call
#dotnet_diagnostic.RCS1197.severity = suggestion
# RCS1198 Avoid unnecessary boxing of value type
#dotnet_diagnostic.RCS1198.severity = suggestion
# RCS1199 Unnecessary null check
#dotnet_diagnostic.RCS1199.severity = suggestion
# RCS1200 Call 'Enumerable.ThenBy' instead of 'Enumerable.OrderBy'
#dotnet_diagnostic.RCS1200.severity = suggestion
# RCS1201 Use method chaining
dotnet_diagnostic.RCS1201.severity = suggestion
# RCS1202 Avoid NullReferenceException
dotnet_diagnostic.RCS1202.severity = error
# RCS1203 Use AttributeUsageAttribute
#dotnet_diagnostic.RCS1203.severity = warning
# RCS1204 Use EventArgs.Empty
#dotnet_diagnostic.RCS1204.severity = suggestion
# RCS1205 Order named arguments according to the order of parameters
#dotnet_diagnostic.RCS1205.severity = suggestion
# RCS1206 Use conditional access instead of conditional expression
#dotnet_diagnostic.RCS1206.severity = suggestion
# RCS1207 Use anonymous function or method group
dotnet_diagnostic.RCS1207.severity = warning
# RCS1208 Reduce 'if' nesting
#dotnet_diagnostic.RCS1208.severity = suggestion
# RCS1209 Order type parameter constraints
#dotnet_diagnostic.RCS1209.severity = suggestion
# RCS1210 Return completed task instead of returning null
#dotnet_diagnostic.RCS1210.severity = warning
# RCS1211 Remove unnecessary 'else'
dotnet_diagnostic.RCS1211.severity = suggestion
# RCS1212 Remove redundant assignment
#dotnet_diagnostic.RCS1212.severity = suggestion
# RCS1213 Remove unused member declaration
#dotnet_diagnostic.RCS1213.severity = suggestion
# RCS1214 Unnecessary interpolated string
dotnet_diagnostic.RCS1214.severity = suggestion
# RCS1215 Expression is always equal to true/false
#dotnet_diagnostic.RCS1215.severity = warning
# RCS1216 Unnecessary unsafe context
#dotnet_diagnostic.RCS1216.severity = suggestion
# RCS1217 Convert interpolated string to concatenation
#dotnet_diagnostic.RCS1217.severity = suggestion
# RCS1218 Simplify code branching
#dotnet_diagnostic.RCS1218.severity = suggestion
# RCS1220 Use pattern matching instead of combination of 'is' operator and cast operator
#dotnet_diagnostic.RCS1220.severity = suggestion
# RCS1221 Use pattern matching instead of combination of 'as' operator and null check
#dotnet_diagnostic.RCS1221.severity = suggestion
# RCS1222 Merge preprocessor directives
#dotnet_diagnostic.RCS1222.severity = suggestion
# RCS1223 Mark publicly visible type with DebuggerDisplay attribute
#dotnet_diagnostic.RCS1223.severity = suggestion
# RCS1224 Make method an extension method
#dotnet_diagnostic.RCS1224.severity = suggestion
# RCS1225 Make class sealed
dotnet_diagnostic.RCS1225.severity = warning
# RCS1226 Add paragraph to documentation comment
dotnet_diagnostic.RCS1226.severity = suggestion
# RCS1227 Validate arguments correctly
dotnet_diagnostic.RCS1227.severity = error
# RCS1228 Unused element in a documentation comment
dotnet_diagnostic.RCS1228.severity = none
# RCS1229 Use async/await when necessary
dotnet_diagnostic.RCS1229.severity = warning
# RCS1230 Unnecessary explicit use of enumerator
#dotnet_diagnostic.RCS1230.severity = suggestion
# RCS1231 Make parameter ref read-only
#dotnet_diagnostic.RCS1231.severity = suggestion
# RCS1232 Order elements in documentation comment
#dotnet_diagnostic.RCS1232.severity = suggestion
# RCS1233 Use short-circuiting operator
#dotnet_diagnostic.RCS1233.severity = suggestion
# RCS1234 Duplicate enum value
#dotnet_diagnostic.RCS1234.severity = suggestion
# RCS1235 Optimize method call
#dotnet_diagnostic.RCS1235.severity = suggestion
# RCS1236 Use exception filter
#dotnet_diagnostic.RCS1236.severity = suggestion
# RCS1237 (title not provided)
dotnet_diagnostic.RCS1237.severity = none
# RCS1238 Avoid nested ?: operators
dotnet_diagnostic.RCS1238.severity = none
# RCS1239 Use 'for' statement instead of 'while' statement
#dotnet_diagnostic.RCS1239.severity = suggestion
# RCS1240 Operator is unnecessary
dotnet_diagnostic.RCS1240.severity = warning
# RCS1241 Implement non-generic counterpart
dotnet_diagnostic.RCS1241.severity = none
# RCS1242 Do not pass non-read-only struct by read-only reference
#dotnet_diagnostic.RCS1242.severity = warning
# RCS1243 Duplicate word in a comment
#dotnet_diagnostic.RCS1243.severity = suggestion
# RCS1244 Simplify 'default' expression
dotnet_diagnostic.RCS1244.severity = warning
# RCS1245 Fix documentation comment tag
#dotnet_diagnostic.RCS1245.severity = suggestion
# RCS1246 Use element access
dotnet_diagnostic.RCS1246.severity = warning
# RCS1247 Fix documentation comment tag
#dotnet_diagnostic.RCS1247.severity = suggestion
# RCS1248 Normalize null check
#dotnet_diagnostic.RCS1248.severity = suggestion
# RCS1249 Unnecessary null-forgiving operator
dotnet_diagnostic.RCS1249.severity = suggestion
# RCS1250 Use implicit/explicit object creation
#dotnet_diagnostic.RCS1250.severity = suggestion
# RCS1251 Remove unnecessary braces from record declaration
#dotnet_diagnostic.RCS1251.severity = suggestion
# RCS1252 Normalize usage of infinite loop
dotnet_diagnostic.RCS1252.severity = warning
# RCS1253 Format documentation comment summary
#dotnet_diagnostic.RCS1253.severity = suggestion
# RCS1254 Normalize format of enum flag value
#dotnet_diagnostic.RCS1254.severity = suggestion
# RCS1255 Simplify argument null check
#dotnet_diagnostic.RCS1255.severity = suggestion
# RCS1256 Invalid argument null check
dotnet_diagnostic.RCS1256.severity = error
# RCS1257 Use enum field explicitly
dotnet_diagnostic.RCS1257.severity = warning
# RCS1258 Unnecessary enum flag
dotnet_diagnostic.RCS1258.severity = warning
# RCS1259 Remove empty syntax
dotnet_diagnostic.RCS1259.severity = warning
# RCS1260 Add/remove trailing comma
dotnet_diagnostic.RCS1260.severity = suggestion
# RCS1261 Resource can be disposed asynchronously
dotnet_diagnostic.RCS1261.severity = none
# RCS1262 Unnecessary raw string literal
dotnet_diagnostic.RCS1262.severity = warning
# RCS1263 Invalid reference in a documentation comment
#dotnet_diagnostic.RCS1263.severity = warning
# RCS1264 Use 'var' or explicit type
#dotnet_diagnostic.RCS1264.severity = suggestion
# RCS1265 Remove redundant catch block
#dotnet_diagnostic.RCS1265.severity = suggestion
# RCS1266 Use raw string literal
dotnet_diagnostic.RCS1266.severity = warning
# RCS1267 Use string interpolation instead of 'string.Concat'
#dotnet_diagnostic.RCS1267.severity = suggestion
# RCS1268 Simplify numeric comparison
#dotnet_diagnostic.RCS1268.severity = suggestion
# RCS9001 Use pattern matching
#dotnet_diagnostic.RCS9001.severity = suggestion
# RCS9002 Use property SyntaxNode.SpanStart
#dotnet_diagnostic.RCS9002.severity = suggestion
# RCS9003 Unnecessary conditional access
#dotnet_diagnostic.RCS9003.severity = suggestion
# RCS9004 Call 'Any' instead of accessing 'Count'
#dotnet_diagnostic.RCS9004.severity = suggestion
# RCS9005 Unnecessary null check
#dotnet_diagnostic.RCS9005.severity = suggestion
# RCS9006 Use element access
#dotnet_diagnostic.RCS9006.severity = suggestion
# RCS9007 Use return value
#dotnet_diagnostic.RCS9007.severity = warning
# RCS9008 Call 'Last' instead of using []
#dotnet_diagnostic.RCS9008.severity = suggestion
# RCS9009 Unknown language name
#dotnet_diagnostic.RCS9009.severity = warning
# RCS9010 Specify ExportCodeRefactoringProviderAttribute.Name
#dotnet_diagnostic.RCS9010.severity = silent
# RCS9011 Specify ExportCodeFixProviderAttribute.Name
#dotnet_diagnostic.RCS9011.severity = silent
#
# UA_NETStandard_1: Type is for evaluation purposes only and is subject to change or removal
# in future updates. Suppress this diagnostic to proceed.
#
dotnet_diagnostic.UA_NETStandard_1.severity = none
# Allow public members in fixtures
dotnet_diagnostic.NUnit1028.severity = none
# Use new assert style
dotnet_diagnostic.NUnit2001.severity = warning
dotnet_diagnostic.NUnit2002.severity = warning
dotnet_diagnostic.NUnit2003.severity = warning
dotnet_diagnostic.NUnit2004.severity = warning
dotnet_diagnostic.NUnit2005.severity = warning
dotnet_diagnostic.NUnit2006.severity = warning
dotnet_diagnostic.NUnit2010.severity = warning
dotnet_diagnostic.NUnit2015.severity = warning
dotnet_diagnostic.NUnit2016.severity = warning
dotnet_diagnostic.NUnit2017.severity = warning
dotnet_diagnostic.NUnit2018.severity = warning
dotnet_diagnostic.NUnit2019.severity = warning
dotnet_diagnostic.NUnit2027.severity = warning
dotnet_diagnostic.NUnit2028.severity = warning
dotnet_diagnostic.NUnit2029.severity = warning
dotnet_diagnostic.NUnit2030.severity = warning
dotnet_diagnostic.NUnit2031.severity = warning
dotnet_diagnostic.NUnit2032.severity = warning
dotnet_diagnostic.NUnit2033.severity = warning
dotnet_diagnostic.NUnit2034.severity = warning
dotnet_diagnostic.NUnit2035.severity = warning
dotnet_diagnostic.NUnit2036.severity = warning
dotnet_diagnostic.NUnit2037.severity = warning
dotnet_diagnostic.NUnit2038.severity = warning
dotnet_diagnostic.NUnit2039.severity = warning
dotnet_diagnostic.NUnit2045.severity = silent
dotnet_diagnostic.NUnit2048.severity = warning
dotnet_diagnostic.NUnit2049.severity = warning
dotnet_diagnostic.NUnit2051.severity = warning
dotnet_diagnostic.NUnit2052.severity = warning
dotnet_diagnostic.NUnit2053.severity = warning
dotnet_diagnostic.NUnit2054.severity = warning
dotnet_diagnostic.NUnit2055.severity = warning
dotnet_diagnostic.NUnit2056.severity = silent
dotnet_diagnostic.NUnit2057.severity = warning
dotnet_diagnostic.NUnit2046.severity = error
dotnet_diagnostic.NUnit4002.severity = error
dotnet_diagnostic.TUnit0057.severity = error
# exclude generated code
[**/OPCBinarySchema.cs]
generated_code = true
dotnet_diagnostic.severity = none
dotnet_analyzer.severity = none
#dotnet_analyzer_diagnostic.category-roslynator.severity = none
# Test projects: CA2007 (ConfigureAwait) is a library-only concern — the test
# frameworks (NUnit/TUnit) run on the default TaskScheduler with no
# SynchronizationContext, so ConfigureAwait(false) is unnecessary. CA2000
# disposable lifetimes in tests are managed by fixture setup/teardown. This
# matches the <NoWarn>CA2007;CA2000</NoWarn> convention already used by
# Opc.Ua.Di.Tests and Opc.Ua.MigrationAnalyzer.Tests.
[tests/**/*.cs]
dotnet_diagnostic.CA2007.severity = none
dotnet_diagnostic.CA2000.severity = none
# Fuzzing test projects (Opc.Ua.*.Fuzz.Tests) are test projects; same rationale.
[fuzzing/**/*.Fuzz.Tests/**/*.cs]
dotnet_diagnostic.CA2007.severity = none
dotnet_diagnostic.CA2000.severity = none