diff --git a/Penumbra.GameData/.editorconfig b/Penumbra.GameData/.editorconfig
new file mode 100644
index 00000000..0bbaa114
--- /dev/null
+++ b/Penumbra.GameData/.editorconfig
@@ -0,0 +1,3623 @@
+
+[*.proto]
+indent_style=tab
+indent_size=tab
+tab_width=4
+
+[*.{asax,ascx,aspx,axaml,cs,cshtml,css,htm,html,js,jsx,master,paml,razor,skin,ts,tsx,vb,xaml,xamlx,xoml}]
+indent_style=space
+indent_size=4
+tab_width=4
+
+[*.{appxmanifest,axml,build,config,csproj,dbml,discomap,dtd,json,jsproj,lsproj,njsproj,nuspec,proj,props,resjson,resw,resx,StyleCop,targets,tasks,vbproj,xml,xsd}]
+indent_style=space
+indent_size=2
+tab_width=2
+
+[*]
+
+# Microsoft .NET properties
+csharp_indent_braces=false
+csharp_indent_switch_labels=true
+csharp_new_line_before_catch=true
+csharp_new_line_before_else=true
+csharp_new_line_before_finally=true
+csharp_new_line_before_members_in_object_initializers=true
+csharp_new_line_before_open_brace=all
+csharp_new_line_between_query_expression_clauses=true
+csharp_preferred_modifier_order=public, private, protected, internal, new, abstract, virtual, sealed, override, static, readonly, extern, unsafe, volatile, async:suggestion
+csharp_preserve_single_line_blocks=true
+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
+csharp_style_namespace_declarations= file_scoped:suggestion
+csharp_style_var_elsewhere=true:suggestion
+csharp_style_var_for_built_in_types=true:suggestion
+csharp_style_var_when_type_is_apparent=true:suggestion
+csharp_using_directive_placement= outside_namespace:silent
+dotnet_diagnostic.bc40000.severity=warning
+dotnet_diagnostic.bc400005.severity=warning
+dotnet_diagnostic.bc40008.severity=warning
+dotnet_diagnostic.bc40056.severity=warning
+dotnet_diagnostic.bc42016.severity=warning
+dotnet_diagnostic.bc42024.severity=warning
+dotnet_diagnostic.bc42025.severity=warning
+dotnet_diagnostic.bc42104.severity=warning
+dotnet_diagnostic.bc42105.severity=warning
+dotnet_diagnostic.bc42106.severity=warning
+dotnet_diagnostic.bc42107.severity=warning
+dotnet_diagnostic.bc42304.severity=warning
+dotnet_diagnostic.bc42309.severity=warning
+dotnet_diagnostic.bc42322.severity=warning
+dotnet_diagnostic.bc42349.severity=warning
+dotnet_diagnostic.bc42353.severity=warning
+dotnet_diagnostic.bc42354.severity=warning
+dotnet_diagnostic.bc42355.severity=warning
+dotnet_diagnostic.bc42356.severity=warning
+dotnet_diagnostic.bc42358.severity=warning
+dotnet_diagnostic.bc42504.severity=warning
+dotnet_diagnostic.bc42505.severity=warning
+dotnet_diagnostic.cs0067.severity=warning
+dotnet_diagnostic.cs0078.severity=warning
+dotnet_diagnostic.cs0108.severity=warning
+dotnet_diagnostic.cs0109.severity=warning
+dotnet_diagnostic.cs0114.severity=warning
+dotnet_diagnostic.cs0162.severity=warning
+dotnet_diagnostic.cs0164.severity=warning
+dotnet_diagnostic.cs0168.severity=warning
+dotnet_diagnostic.cs0169.severity=warning
+dotnet_diagnostic.cs0183.severity=warning
+dotnet_diagnostic.cs0184.severity=warning
+dotnet_diagnostic.cs0197.severity=warning
+dotnet_diagnostic.cs0219.severity=warning
+dotnet_diagnostic.cs0252.severity=warning
+dotnet_diagnostic.cs0253.severity=warning
+dotnet_diagnostic.cs0414.severity=warning
+dotnet_diagnostic.cs0420.severity=warning
+dotnet_diagnostic.cs0465.severity=warning
+dotnet_diagnostic.cs0469.severity=warning
+dotnet_diagnostic.cs0612.severity=warning
+dotnet_diagnostic.cs0618.severity=warning
+dotnet_diagnostic.cs0628.severity=warning
+dotnet_diagnostic.cs0642.severity=warning
+dotnet_diagnostic.cs0649.severity=warning
+dotnet_diagnostic.cs0652.severity=warning
+dotnet_diagnostic.cs0657.severity=warning
+dotnet_diagnostic.cs0658.severity=warning
+dotnet_diagnostic.cs0659.severity=warning
+dotnet_diagnostic.cs0660.severity=warning
+dotnet_diagnostic.cs0661.severity=warning
+dotnet_diagnostic.cs0665.severity=warning
+dotnet_diagnostic.cs0672.severity=warning
+dotnet_diagnostic.cs0675.severity=warning
+dotnet_diagnostic.cs0693.severity=warning
+dotnet_diagnostic.cs1030.severity=warning
+dotnet_diagnostic.cs1058.severity=warning
+dotnet_diagnostic.cs1066.severity=warning
+dotnet_diagnostic.cs1522.severity=warning
+dotnet_diagnostic.cs1570.severity=warning
+dotnet_diagnostic.cs1571.severity=warning
+dotnet_diagnostic.cs1572.severity=warning
+dotnet_diagnostic.cs1573.severity=warning
+dotnet_diagnostic.cs1574.severity=warning
+dotnet_diagnostic.cs1580.severity=warning
+dotnet_diagnostic.cs1581.severity=warning
+dotnet_diagnostic.cs1584.severity=warning
+dotnet_diagnostic.cs1587.severity=warning
+dotnet_diagnostic.cs1589.severity=warning
+dotnet_diagnostic.cs1590.severity=warning
+dotnet_diagnostic.cs1591.severity=warning
+dotnet_diagnostic.cs1592.severity=warning
+dotnet_diagnostic.cs1710.severity=warning
+dotnet_diagnostic.cs1711.severity=warning
+dotnet_diagnostic.cs1712.severity=warning
+dotnet_diagnostic.cs1717.severity=warning
+dotnet_diagnostic.cs1723.severity=warning
+dotnet_diagnostic.cs1911.severity=warning
+dotnet_diagnostic.cs1957.severity=warning
+dotnet_diagnostic.cs1981.severity=warning
+dotnet_diagnostic.cs1998.severity=warning
+dotnet_diagnostic.cs4014.severity=warning
+dotnet_diagnostic.cs7022.severity=warning
+dotnet_diagnostic.cs7023.severity=warning
+dotnet_diagnostic.cs7095.severity=warning
+dotnet_diagnostic.cs8094.severity=warning
+dotnet_diagnostic.cs8123.severity=warning
+dotnet_diagnostic.cs8321.severity=warning
+dotnet_diagnostic.cs8383.severity=warning
+dotnet_diagnostic.cs8416.severity=warning
+dotnet_diagnostic.cs8417.severity=warning
+dotnet_diagnostic.cs8424.severity=warning
+dotnet_diagnostic.cs8425.severity=warning
+dotnet_diagnostic.cs8509.severity=warning
+dotnet_diagnostic.cs8524.severity=warning
+dotnet_diagnostic.cs8597.severity=warning
+dotnet_diagnostic.cs8600.severity=warning
+dotnet_diagnostic.cs8601.severity=warning
+dotnet_diagnostic.cs8602.severity=warning
+dotnet_diagnostic.cs8603.severity=warning
+dotnet_diagnostic.cs8604.severity=warning
+dotnet_diagnostic.cs8605.severity=warning
+dotnet_diagnostic.cs8607.severity=warning
+dotnet_diagnostic.cs8608.severity=warning
+dotnet_diagnostic.cs8609.severity=warning
+dotnet_diagnostic.cs8610.severity=warning
+dotnet_diagnostic.cs8611.severity=warning
+dotnet_diagnostic.cs8612.severity=warning
+dotnet_diagnostic.cs8613.severity=warning
+dotnet_diagnostic.cs8614.severity=warning
+dotnet_diagnostic.cs8615.severity=warning
+dotnet_diagnostic.cs8616.severity=warning
+dotnet_diagnostic.cs8617.severity=warning
+dotnet_diagnostic.cs8618.severity=warning
+dotnet_diagnostic.cs8619.severity=warning
+dotnet_diagnostic.cs8620.severity=warning
+dotnet_diagnostic.cs8621.severity=warning
+dotnet_diagnostic.cs8622.severity=warning
+dotnet_diagnostic.cs8624.severity=warning
+dotnet_diagnostic.cs8625.severity=warning
+dotnet_diagnostic.cs8629.severity=warning
+dotnet_diagnostic.cs8631.severity=warning
+dotnet_diagnostic.cs8632.severity=none
+dotnet_diagnostic.cs8633.severity=warning
+dotnet_diagnostic.cs8634.severity=warning
+dotnet_diagnostic.cs8643.severity=warning
+dotnet_diagnostic.cs8644.severity=warning
+dotnet_diagnostic.cs8645.severity=warning
+dotnet_diagnostic.cs8655.severity=warning
+dotnet_diagnostic.cs8656.severity=warning
+dotnet_diagnostic.cs8667.severity=warning
+dotnet_diagnostic.cs8669.severity=none
+dotnet_diagnostic.cs8670.severity=warning
+dotnet_diagnostic.cs8714.severity=warning
+dotnet_diagnostic.cs8762.severity=warning
+dotnet_diagnostic.cs8763.severity=warning
+dotnet_diagnostic.cs8764.severity=warning
+dotnet_diagnostic.cs8765.severity=warning
+dotnet_diagnostic.cs8766.severity=warning
+dotnet_diagnostic.cs8767.severity=warning
+dotnet_diagnostic.cs8768.severity=warning
+dotnet_diagnostic.cs8769.severity=warning
+dotnet_diagnostic.cs8770.severity=warning
+dotnet_diagnostic.cs8774.severity=warning
+dotnet_diagnostic.cs8775.severity=warning
+dotnet_diagnostic.cs8776.severity=warning
+dotnet_diagnostic.cs8777.severity=warning
+dotnet_diagnostic.cs8794.severity=warning
+dotnet_diagnostic.cs8819.severity=warning
+dotnet_diagnostic.cs8824.severity=warning
+dotnet_diagnostic.cs8825.severity=warning
+dotnet_diagnostic.cs8846.severity=warning
+dotnet_diagnostic.cs8847.severity=warning
+dotnet_diagnostic.cs8851.severity=warning
+dotnet_diagnostic.cs8860.severity=warning
+dotnet_diagnostic.cs8892.severity=warning
+dotnet_diagnostic.cs8907.severity=warning
+dotnet_diagnostic.cs8947.severity=warning
+dotnet_diagnostic.cs8960.severity=warning
+dotnet_diagnostic.cs8961.severity=warning
+dotnet_diagnostic.cs8962.severity=warning
+dotnet_diagnostic.cs8963.severity=warning
+dotnet_diagnostic.cs8965.severity=warning
+dotnet_diagnostic.cs8966.severity=warning
+dotnet_diagnostic.cs8971.severity=warning
+dotnet_diagnostic.wme006.severity=warning
+dotnet_naming_rule.constants_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.constants_rule.severity = warning
+dotnet_naming_rule.constants_rule.style = upper_camel_case_style
+dotnet_naming_rule.constants_rule.symbols=constants_symbols
+dotnet_naming_rule.event_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.event_rule.severity = warning
+dotnet_naming_rule.event_rule.style = upper_camel_case_style
+dotnet_naming_rule.event_rule.symbols=event_symbols
+dotnet_naming_rule.interfaces_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.interfaces_rule.severity = warning
+dotnet_naming_rule.interfaces_rule.style = i_upper_camel_case_style
+dotnet_naming_rule.interfaces_rule.symbols=interfaces_symbols
+dotnet_naming_rule.locals_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.locals_rule.severity = warning
+dotnet_naming_rule.locals_rule.style = lower_camel_case_style_1
+dotnet_naming_rule.locals_rule.symbols=locals_symbols
+dotnet_naming_rule.local_constants_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.local_constants_rule.severity = warning
+dotnet_naming_rule.local_constants_rule.style = lower_camel_case_style_1
+dotnet_naming_rule.local_constants_rule.symbols=local_constants_symbols
+dotnet_naming_rule.local_functions_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.local_functions_rule.severity = warning
+dotnet_naming_rule.local_functions_rule.style = upper_camel_case_style
+dotnet_naming_rule.local_functions_rule.symbols=local_functions_symbols
+dotnet_naming_rule.method_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.method_rule.severity = warning
+dotnet_naming_rule.method_rule.style = upper_camel_case_style
+dotnet_naming_rule.method_rule.symbols=method_symbols
+dotnet_naming_rule.parameters_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.parameters_rule.severity = warning
+dotnet_naming_rule.parameters_rule.style = lower_camel_case_style_1
+dotnet_naming_rule.parameters_rule.symbols=parameters_symbols
+dotnet_naming_rule.private_constants_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.private_constants_rule.severity = warning
+dotnet_naming_rule.private_constants_rule.style = upper_camel_case_style
+dotnet_naming_rule.private_constants_rule.symbols=private_constants_symbols
+dotnet_naming_rule.private_instance_fields_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.private_instance_fields_rule.severity = warning
+dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style
+dotnet_naming_rule.private_instance_fields_rule.symbols=private_instance_fields_symbols
+dotnet_naming_rule.private_static_fields_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.private_static_fields_rule.severity = warning
+dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style
+dotnet_naming_rule.private_static_fields_rule.symbols=private_static_fields_symbols
+dotnet_naming_rule.private_static_readonly_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.private_static_readonly_rule.severity = warning
+dotnet_naming_rule.private_static_readonly_rule.style = upper_camel_case_style
+dotnet_naming_rule.private_static_readonly_rule.symbols=private_static_readonly_symbols
+dotnet_naming_rule.property_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.property_rule.severity = warning
+dotnet_naming_rule.property_rule.style = upper_camel_case_style
+dotnet_naming_rule.property_rule.symbols=property_symbols
+dotnet_naming_rule.public_fields_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.public_fields_rule.severity = warning
+dotnet_naming_rule.public_fields_rule.style = upper_camel_case_style
+dotnet_naming_rule.public_fields_rule.symbols=public_fields_symbols
+dotnet_naming_rule.static_readonly_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.static_readonly_rule.severity = warning
+dotnet_naming_rule.static_readonly_rule.style = upper_camel_case_style
+dotnet_naming_rule.static_readonly_rule.symbols=static_readonly_symbols
+dotnet_naming_rule.types_and_namespaces_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.types_and_namespaces_rule.severity = warning
+dotnet_naming_rule.types_and_namespaces_rule.style = upper_camel_case_style
+dotnet_naming_rule.types_and_namespaces_rule.symbols=types_and_namespaces_symbols
+dotnet_naming_rule.type_parameters_rule.import_to_resharper=as_predefined
+dotnet_naming_rule.type_parameters_rule.severity = warning
+dotnet_naming_rule.type_parameters_rule.style = t_upper_camel_case_style
+dotnet_naming_rule.type_parameters_rule.symbols=type_parameters_symbols
+dotnet_naming_style.i_upper_camel_case_style.capitalization=pascal_case
+dotnet_naming_style.i_upper_camel_case_style.required_prefix=I
+dotnet_naming_style.lower_camel_case_style.capitalization=camel_case
+dotnet_naming_style.lower_camel_case_style.required_prefix=_
+dotnet_naming_style.lower_camel_case_style_1.capitalization=camel_case
+dotnet_naming_style.t_upper_camel_case_style.capitalization=pascal_case
+dotnet_naming_style.t_upper_camel_case_style.required_prefix=T
+dotnet_naming_style.upper_camel_case_style.capitalization=pascal_case
+dotnet_naming_symbols.constants_symbols.applicable_accessibilities=public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.constants_symbols.applicable_kinds=field
+dotnet_naming_symbols.constants_symbols.required_modifiers=const
+dotnet_naming_symbols.event_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.event_symbols.applicable_kinds=event
+dotnet_naming_symbols.interfaces_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.interfaces_symbols.applicable_kinds=interface
+dotnet_naming_symbols.locals_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.locals_symbols.applicable_kinds=local
+dotnet_naming_symbols.local_constants_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.local_constants_symbols.applicable_kinds=local
+dotnet_naming_symbols.local_constants_symbols.required_modifiers=const
+dotnet_naming_symbols.local_functions_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.local_functions_symbols.applicable_kinds=local_function
+dotnet_naming_symbols.method_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.method_symbols.applicable_kinds=method
+dotnet_naming_symbols.parameters_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.parameters_symbols.applicable_kinds=parameter
+dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_constants_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_constants_symbols.required_modifiers=const
+dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_static_fields_symbols.required_modifiers=static
+dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers=static,readonly
+dotnet_naming_symbols.property_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.property_symbols.applicable_kinds=property
+dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities=public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.public_fields_symbols.applicable_kinds=field
+dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities=public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.static_readonly_symbols.applicable_kinds=field
+dotnet_naming_symbols.static_readonly_symbols.required_modifiers=static,readonly
+dotnet_naming_symbols.types_and_namespaces_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds=namespace,class,struct,enum,delegate
+dotnet_naming_symbols.type_parameters_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.type_parameters_symbols.applicable_kinds=type_parameter
+dotnet_separate_import_directive_groups=false
+dotnet_sort_system_directives_first=true
+dotnet_style_parentheses_in_arithmetic_binary_operators=never_if_unnecessary:suggestion
+dotnet_style_parentheses_in_other_binary_operators=never_if_unnecessary:suggestion
+dotnet_style_parentheses_in_relational_binary_operators=never_if_unnecessary:suggestion
+dotnet_style_predefined_type_for_locals_parameters_members=true:suggestion
+dotnet_style_predefined_type_for_member_access=true:suggestion
+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
+dotnet_style_require_accessibility_modifiers=for_non_interface_members:suggestion
+file_header_template=
+
+# ReSharper properties
+resharper_accessor_owner_body=expression_body
+resharper_alignment_tab_fill_style=use_spaces
+resharper_align_first_arg_by_paren=false
+resharper_align_linq_query=false
+resharper_align_multiline_argument=true
+resharper_align_multiline_array_and_object_initializer=false
+resharper_align_multiline_array_initializer=true
+resharper_align_multiline_binary_expressions_chain=false
+resharper_align_multiline_binary_patterns=false
+resharper_align_multiline_ctor_init=true
+resharper_align_multiline_expression_braces=false
+resharper_align_multiline_implements_list=true
+resharper_align_multiline_property_pattern=false
+resharper_align_multiline_statement_conditions=true
+resharper_align_multiline_switch_expression=false
+resharper_align_multiline_type_argument=true
+resharper_align_multiline_type_parameter=true
+resharper_align_multline_type_parameter_constrains=true
+resharper_align_multline_type_parameter_list=false
+resharper_align_tuple_components=false
+resharper_align_union_type_usage=true
+resharper_allow_alias=true
+resharper_allow_comment_after_lbrace=false
+resharper_allow_far_alignment=false
+resharper_always_use_end_of_line_brace_style=false
+resharper_apply_auto_detected_rules=false
+resharper_apply_on_completion=false
+resharper_arguments_anonymous_function=positional
+resharper_arguments_literal=positional
+resharper_arguments_named=positional
+resharper_arguments_other=positional
+resharper_arguments_skip_single=false
+resharper_arguments_string_literal=positional
+resharper_attribute_style=do_not_touch
+resharper_autodetect_indent_settings=false
+resharper_blank_lines_after_block_statements=1
+resharper_blank_lines_after_case=0
+resharper_blank_lines_after_control_transfer_statements=1
+resharper_blank_lines_after_file_scoped_namespace_directive=1
+resharper_blank_lines_after_imports=1
+resharper_blank_lines_after_multiline_statements=0
+resharper_blank_lines_after_options=1
+resharper_blank_lines_after_start_comment=1
+resharper_blank_lines_after_using_list=1
+resharper_blank_lines_around_accessor=0
+resharper_blank_lines_around_auto_property=1
+resharper_blank_lines_around_block_case_section=0
+resharper_blank_lines_around_class_definition=1
+resharper_blank_lines_around_field=1
+resharper_blank_lines_around_function_declaration=0
+resharper_blank_lines_around_function_definition=1
+resharper_blank_lines_around_global_attribute=0
+resharper_blank_lines_around_invocable=1
+resharper_blank_lines_around_local_method=1
+resharper_blank_lines_around_multiline_case_section=0
+resharper_blank_lines_around_namespace=1
+resharper_blank_lines_around_other_declaration=0
+resharper_blank_lines_around_property=1
+resharper_blank_lines_around_razor_functions=1
+resharper_blank_lines_around_razor_helpers=1
+resharper_blank_lines_around_razor_sections=1
+resharper_blank_lines_around_region=1
+resharper_blank_lines_around_single_line_accessor=0
+resharper_blank_lines_around_single_line_auto_property=0
+resharper_blank_lines_around_single_line_field=0
+resharper_blank_lines_around_single_line_function_definition=0
+resharper_blank_lines_around_single_line_invocable=0
+resharper_blank_lines_around_single_line_local_method=0
+resharper_blank_lines_around_single_line_property=0
+resharper_blank_lines_around_single_line_type=0
+resharper_blank_lines_around_type=1
+resharper_blank_lines_before_block_statements=0
+resharper_blank_lines_before_case=0
+resharper_blank_lines_before_control_transfer_statements=0
+resharper_blank_lines_before_multiline_statements=0
+resharper_blank_lines_before_single_line_comment=0
+resharper_blank_lines_inside_namespace=0
+resharper_blank_lines_inside_region=1
+resharper_blank_lines_inside_type=0
+resharper_blank_line_after_pi=true
+resharper_braces_for_dowhile=required
+resharper_braces_for_fixed=required
+resharper_braces_for_for=required_for_multiline
+resharper_braces_for_foreach=required_for_multiline
+resharper_braces_for_ifelse=not_required_for_both
+resharper_braces_for_lock=required
+resharper_braces_for_using=required
+resharper_braces_for_while=required_for_multiline
+resharper_braces_redundant=true
+resharper_break_template_declaration=line_break
+resharper_can_use_global_alias=true
+resharper_configure_await_analysis_mode=disabled
+resharper_constructor_or_destructor_body=expression_body
+resharper_continuous_indent_multiplier=1
+resharper_continuous_line_indent=single
+resharper_cpp_align_multiline_argument=true
+resharper_cpp_align_multiline_calls_chain=true
+resharper_cpp_align_multiline_extends_list=true
+resharper_cpp_align_multiline_for_stmt=true
+resharper_cpp_align_multiline_parameter=true
+resharper_cpp_align_multiple_declaration=true
+resharper_cpp_align_ternary=align_not_nested
+resharper_cpp_anonymous_method_declaration_braces=next_line
+resharper_cpp_case_block_braces=next_line_shifted_2
+resharper_cpp_empty_block_style=multiline
+resharper_cpp_indent_switch_labels=false
+resharper_cpp_insert_final_newline=false
+resharper_cpp_int_align_comments=false
+resharper_cpp_invocable_declaration_braces=next_line
+resharper_cpp_max_line_length=120
+resharper_cpp_new_line_before_catch=true
+resharper_cpp_new_line_before_else=true
+resharper_cpp_new_line_before_while=true
+resharper_cpp_other_braces=next_line
+resharper_cpp_space_around_binary_operator=true
+resharper_cpp_type_declaration_braces=next_line
+resharper_cpp_wrap_arguments_style=wrap_if_long
+resharper_cpp_wrap_lines=true
+resharper_cpp_wrap_parameters_style=wrap_if_long
+resharper_csharp_align_multiline_argument=false
+resharper_csharp_align_multiline_calls_chain=false
+resharper_csharp_align_multiline_expression=false
+resharper_csharp_align_multiline_extends_list=false
+resharper_csharp_align_multiline_for_stmt=false
+resharper_csharp_align_multiline_parameter=false
+resharper_csharp_align_multiple_declaration=true
+resharper_csharp_empty_block_style=together
+resharper_csharp_insert_final_newline=true
+resharper_csharp_int_align_comments=true
+resharper_csharp_max_line_length=144
+resharper_csharp_naming_rule.enum_member=AaBb
+resharper_csharp_naming_rule.method_property_event=AaBb
+resharper_csharp_naming_rule.other=AaBb
+resharper_csharp_new_line_before_while=false
+resharper_csharp_prefer_qualified_reference=false
+resharper_csharp_space_after_unary_operator=false
+resharper_csharp_wrap_arguments_style=wrap_if_long
+resharper_csharp_wrap_before_binary_opsign=true
+resharper_csharp_wrap_for_stmt_header_style=wrap_if_long
+resharper_csharp_wrap_lines=true
+resharper_csharp_wrap_parameters_style=wrap_if_long
+resharper_css_brace_style=end_of_line
+resharper_css_insert_final_newline=false
+resharper_css_keep_blank_lines_between_declarations=1
+resharper_css_max_line_length=120
+resharper_css_wrap_lines=true
+resharper_cxxcli_property_declaration_braces=next_line
+resharper_declarations_style=separate_lines
+resharper_default_exception_variable_name=e
+resharper_default_value_when_type_evident=default_literal
+resharper_default_value_when_type_not_evident=default_literal
+resharper_delete_quotes_from_solid_values=false
+resharper_disable_blank_line_changes=false
+resharper_disable_formatter=false
+resharper_disable_indenter=false
+resharper_disable_int_align=false
+resharper_disable_line_break_changes=false
+resharper_disable_line_break_removal=false
+resharper_disable_space_changes=false
+resharper_disable_space_changes_before_trailing_comment=false
+resharper_dont_remove_extra_blank_lines=false
+resharper_enable_wrapping=false
+resharper_enforce_line_ending_style=false
+resharper_event_handler_pattern_long=$object$On$event$
+resharper_event_handler_pattern_short=On$event$
+resharper_expression_braces=inside
+resharper_expression_pars=inside
+resharper_extra_spaces=remove_all
+resharper_force_attribute_style=separate
+resharper_force_chop_compound_do_expression=false
+resharper_force_chop_compound_if_expression=false
+resharper_force_chop_compound_while_expression=false
+resharper_force_control_statements_braces=do_not_change
+resharper_force_linebreaks_inside_complex_literals=true
+resharper_force_variable_declarations_on_new_line=false
+resharper_format_leading_spaces_decl=false
+resharper_free_block_braces=next_line
+resharper_function_declaration_return_type_style=do_not_change
+resharper_function_definition_return_type_style=do_not_change
+resharper_generator_mode=false
+resharper_html_attribute_indent=align_by_first_attribute
+resharper_html_insert_final_newline=false
+resharper_html_linebreak_before_elements=body,div,p,form,h1,h2,h3
+resharper_html_max_blank_lines_between_tags=2
+resharper_html_max_line_length=120
+resharper_html_pi_attribute_style=on_single_line
+resharper_html_space_before_self_closing=false
+resharper_html_wrap_lines=true
+resharper_ignore_space_preservation=false
+resharper_include_prefix_comment_in_indent=false
+resharper_indent_access_specifiers_from_class=false
+resharper_indent_aligned_ternary=true
+resharper_indent_anonymous_method_block=false
+resharper_indent_braces_inside_statement_conditions=true
+resharper_indent_case_from_select=true
+resharper_indent_child_elements=OneIndent
+resharper_indent_class_members_from_access_specifiers=false
+resharper_indent_comment=true
+resharper_indent_inside_namespace=true
+resharper_indent_invocation_pars=inside
+resharper_indent_left_par_inside_expression=false
+resharper_indent_method_decl_pars=inside
+resharper_indent_nested_fixed_stmt=false
+resharper_indent_nested_foreach_stmt=true
+resharper_indent_nested_for_stmt=true
+resharper_indent_nested_lock_stmt=false
+resharper_indent_nested_usings_stmt=false
+resharper_indent_nested_while_stmt=true
+resharper_indent_pars=inside
+resharper_indent_preprocessor_directives=none
+resharper_indent_preprocessor_if=no_indent
+resharper_indent_preprocessor_other=no_indent
+resharper_indent_preprocessor_region=usual_indent
+resharper_indent_statement_pars=inside
+resharper_indent_text=OneIndent
+resharper_indent_typearg_angles=inside
+resharper_indent_typeparam_angles=inside
+resharper_indent_type_constraints=true
+resharper_indent_wrapped_function_names=false
+resharper_instance_members_qualify_declared_in=this_class, base_class
+resharper_int_align=true
+resharper_int_align_assignments=true
+resharper_int_align_binary_expressions=false
+resharper_int_align_declaration_names=false
+resharper_int_align_eq=false
+resharper_int_align_fields=true
+resharper_int_align_fix_in_adjacent=true
+resharper_int_align_invocations=true
+resharper_int_align_methods=true
+resharper_int_align_nested_ternary=true
+resharper_int_align_parameters=false
+resharper_int_align_properties=true
+resharper_int_align_property_patterns=true
+resharper_int_align_switch_expressions=true
+resharper_int_align_switch_sections=true
+resharper_int_align_variables=true
+resharper_js_align_multiline_parameter=false
+resharper_js_align_multiple_declaration=false
+resharper_js_align_ternary=none
+resharper_js_brace_style=end_of_line
+resharper_js_empty_block_style=multiline
+resharper_js_indent_switch_labels=false
+resharper_js_insert_final_newline=false
+resharper_js_keep_blank_lines_between_declarations=2
+resharper_js_max_line_length=120
+resharper_js_new_line_before_catch=false
+resharper_js_new_line_before_else=false
+resharper_js_new_line_before_finally=false
+resharper_js_new_line_before_while=false
+resharper_js_space_around_binary_operator=true
+resharper_js_wrap_arguments_style=chop_if_long
+resharper_js_wrap_before_binary_opsign=false
+resharper_js_wrap_for_stmt_header_style=chop_if_long
+resharper_js_wrap_lines=true
+resharper_js_wrap_parameters_style=chop_if_long
+resharper_keep_blank_lines_in_code=2
+resharper_keep_blank_lines_in_declarations=2
+resharper_keep_existing_attribute_arrangement=false
+resharper_keep_existing_declaration_block_arrangement=false
+resharper_keep_existing_declaration_parens_arrangement=true
+resharper_keep_existing_embedded_arrangement=false
+resharper_keep_existing_embedded_block_arrangement=false
+resharper_keep_existing_enum_arrangement=false
+resharper_keep_existing_expr_member_arrangement=false
+resharper_keep_existing_initializer_arrangement=false
+resharper_keep_existing_invocation_parens_arrangement=true
+resharper_keep_existing_property_patterns_arrangement=true
+resharper_keep_existing_switch_expression_arrangement=false
+resharper_keep_nontrivial_alias=true
+resharper_keep_user_linebreaks=true
+resharper_keep_user_wrapping=true
+resharper_linebreaks_around_razor_statements=true
+resharper_linebreaks_inside_tags_for_elements_longer_than=2147483647
+resharper_linebreaks_inside_tags_for_elements_with_child_elements=true
+resharper_linebreaks_inside_tags_for_multiline_elements=true
+resharper_linebreak_before_all_elements=false
+resharper_linebreak_before_multiline_elements=true
+resharper_linebreak_before_singleline_elements=false
+resharper_line_break_after_colon_in_member_initializer_lists=do_not_change
+resharper_line_break_after_comma_in_member_initializer_lists=false
+resharper_line_break_before_comma_in_member_initializer_lists=false
+resharper_line_break_before_requires_clause=do_not_change
+resharper_linkage_specification_braces=end_of_line
+resharper_linkage_specification_indentation=none
+resharper_local_function_body=expression_body
+resharper_macro_block_begin=
+resharper_macro_block_end=
+resharper_max_array_initializer_elements_on_line=10000
+resharper_max_attribute_length_for_same_line=38
+resharper_max_enum_members_on_line=1
+resharper_max_formal_parameters_on_line=10000
+resharper_max_initializer_elements_on_line=1
+resharper_max_invocation_arguments_on_line=10000
+resharper_media_query_style=same_line
+resharper_member_initializer_list_style=do_not_change
+resharper_method_or_operator_body=expression_body
+resharper_min_blank_lines_after_imports=0
+resharper_min_blank_lines_around_fields=0
+resharper_min_blank_lines_around_functions=1
+resharper_min_blank_lines_around_types=1
+resharper_min_blank_lines_between_declarations=1
+resharper_namespace_declaration_braces=next_line
+resharper_namespace_indentation=all
+resharper_nested_ternary_style=autodetect
+resharper_new_line_before_enumerators=true
+resharper_normalize_tag_names=false
+resharper_no_indent_inside_elements=html,body,thead,tbody,tfoot
+resharper_no_indent_inside_if_element_longer_than=200
+resharper_object_creation_when_type_evident=target_typed
+resharper_object_creation_when_type_not_evident=explicitly_typed
+resharper_old_engine=false
+resharper_options_braces_pointy=false
+resharper_outdent_binary_ops=true
+resharper_outdent_binary_pattern_ops=false
+resharper_outdent_commas=false
+resharper_outdent_dots=false
+resharper_outdent_namespace_member=false
+resharper_outdent_statement_labels=false
+resharper_outdent_ternary_ops=false
+resharper_parentheses_non_obvious_operations=none, bitwise, bitwise_inclusive_or, bitwise_exclusive_or, shift, bitwise_and
+resharper_parentheses_redundancy_style=remove_if_not_clarifies_precedence
+resharper_parentheses_same_type_operations=false
+resharper_pi_attributes_indent=align_by_first_attribute
+resharper_place_attribute_on_same_line=false
+resharper_place_class_decorator_on_the_same_line=false
+resharper_place_comments_at_first_column=false
+resharper_place_constructor_initializer_on_same_line=false
+resharper_place_each_decorator_on_new_line=false
+resharper_place_event_attribute_on_same_line=false
+resharper_place_expr_accessor_on_single_line=true
+resharper_place_expr_method_on_single_line=false
+resharper_place_expr_property_on_single_line=false
+resharper_place_field_decorator_on_the_same_line=false
+resharper_place_linq_into_on_new_line=true
+resharper_place_method_decorator_on_the_same_line=false
+resharper_place_namespace_definitions_on_same_line=false
+resharper_place_property_attribute_on_same_line=false
+resharper_place_property_decorator_on_the_same_line=false
+resharper_place_simple_case_statement_on_same_line=if_owner_is_single_line
+resharper_place_simple_embedded_statement_on_same_line=false
+resharper_place_simple_enum_on_single_line=true
+resharper_place_simple_initializer_on_single_line=true
+resharper_place_simple_property_pattern_on_single_line=true
+resharper_place_simple_switch_expression_on_single_line=true
+resharper_place_template_args_on_new_line=false
+resharper_place_type_constraints_on_same_line=true
+resharper_prefer_explicit_discard_declaration=false
+resharper_prefer_separate_deconstructed_variables_declaration=false
+resharper_preserve_spaces_inside_tags=pre,textarea
+resharper_properties_style=separate_lines_for_nonsingle
+resharper_protobuf_brace_style=end_of_line
+resharper_protobuf_empty_block_style=together_same_line
+resharper_protobuf_insert_final_newline=false
+resharper_protobuf_max_line_length=120
+resharper_protobuf_wrap_lines=true
+resharper_qualified_using_at_nested_scope=false
+resharper_quote_style=doublequoted
+resharper_razor_prefer_qualified_reference=true
+resharper_remove_blank_lines_near_braces=false
+resharper_remove_blank_lines_near_braces_in_code=true
+resharper_remove_blank_lines_near_braces_in_declarations=true
+resharper_remove_this_qualifier=true
+resharper_requires_expression_braces=next_line
+resharper_resx_attribute_indent=single_indent
+resharper_resx_insert_final_newline=false
+resharper_resx_linebreak_before_elements=
+resharper_resx_max_blank_lines_between_tags=0
+resharper_resx_max_line_length=2147483647
+resharper_resx_pi_attribute_style=do_not_touch
+resharper_resx_space_before_self_closing=false
+resharper_resx_wrap_lines=false
+resharper_resx_wrap_tags_and_pi=false
+resharper_resx_wrap_text=false
+resharper_selector_style=same_line
+resharper_show_autodetect_configure_formatting_tip=true
+resharper_simple_blocks=do_not_change
+resharper_simple_block_style=do_not_change
+resharper_simple_case_statement_style=do_not_change
+resharper_simple_embedded_statement_style=do_not_change
+resharper_single_statement_function_style=do_not_change
+resharper_sort_attributes=false
+resharper_sort_class_selectors=false
+resharper_sort_usings=true
+resharper_sort_usings_lowercase_first=false
+resharper_spaces_around_eq_in_attribute=false
+resharper_spaces_around_eq_in_pi_attribute=false
+resharper_spaces_inside_tags=false
+resharper_space_after_arrow=true
+resharper_space_after_attributes=true
+resharper_space_after_attribute_target_colon=true
+resharper_space_after_cast=false
+resharper_space_after_colon=true
+resharper_space_after_colon_in_case=true
+resharper_space_after_colon_in_inheritance_clause=true
+resharper_space_after_colon_in_type_annotation=true
+resharper_space_after_comma=true
+resharper_space_after_for_colon=true
+resharper_space_after_function_comma=true
+resharper_space_after_keywords_in_control_flow_statements=true
+resharper_space_after_last_attribute=false
+resharper_space_after_last_pi_attribute=false
+resharper_space_after_media_colon=true
+resharper_space_after_media_comma=true
+resharper_space_after_operator_keyword=true
+resharper_space_after_property_colon=true
+resharper_space_after_property_semicolon=true
+resharper_space_after_ptr_in_data_member=true
+resharper_space_after_ptr_in_data_members=false
+resharper_space_after_ptr_in_method=true
+resharper_space_after_ref_in_data_member=true
+resharper_space_after_ref_in_data_members=false
+resharper_space_after_ref_in_method=true
+resharper_space_after_selector_comma=true
+resharper_space_after_semicolon_in_for_statement=true
+resharper_space_after_separator=false
+resharper_space_after_ternary_colon=true
+resharper_space_after_ternary_quest=true
+resharper_space_after_triple_slash=true
+resharper_space_after_type_parameter_constraint_colon=true
+resharper_space_around_additive_op=true
+resharper_space_around_alias_eq=true
+resharper_space_around_assignment_op=true
+resharper_space_around_assignment_operator=true
+resharper_space_around_attribute_match_operator=false
+resharper_space_around_deref_in_trailing_return_type=true
+resharper_space_around_lambda_arrow=true
+resharper_space_around_member_access_operator=false
+resharper_space_around_operator=true
+resharper_space_around_pipe_or_amper_in_type_usage=true
+resharper_space_around_relational_op=true
+resharper_space_around_selector_operator=true
+resharper_space_around_shift_op=true
+resharper_space_around_stmt_colon=true
+resharper_space_around_ternary_operator=true
+resharper_space_before_array_rank_parentheses=false
+resharper_space_before_arrow=true
+resharper_space_before_attribute_target_colon=false
+resharper_space_before_checked_parentheses=false
+resharper_space_before_colon=false
+resharper_space_before_colon_in_case=false
+resharper_space_before_colon_in_inheritance_clause=true
+resharper_space_before_colon_in_type_annotation=false
+resharper_space_before_comma=false
+resharper_space_before_default_parentheses=false
+resharper_space_before_empty_invocation_parentheses=false
+resharper_space_before_empty_method_parentheses=false
+resharper_space_before_for_colon=true
+resharper_space_before_function_comma=false
+resharper_space_before_initializer_braces=false
+resharper_space_before_invocation_parentheses=false
+resharper_space_before_label_colon=false
+resharper_space_before_lambda_parentheses=false
+resharper_space_before_media_colon=false
+resharper_space_before_media_comma=false
+resharper_space_before_method_parentheses=false
+resharper_space_before_nameof_parentheses=false
+resharper_space_before_new_parentheses=false
+resharper_space_before_nullable_mark=false
+resharper_space_before_open_square_brackets=false
+resharper_space_before_pointer_asterik_declaration=false
+resharper_space_before_property_colon=false
+resharper_space_before_property_semicolon=false
+resharper_space_before_ptr_in_abstract_decl=false
+resharper_space_before_ptr_in_data_member=false
+resharper_space_before_ptr_in_data_members=true
+resharper_space_before_ptr_in_method=false
+resharper_space_before_ref_in_abstract_decl=false
+resharper_space_before_ref_in_data_member=false
+resharper_space_before_ref_in_data_members=true
+resharper_space_before_ref_in_method=false
+resharper_space_before_selector_comma=false
+resharper_space_before_semicolon=false
+resharper_space_before_semicolon_in_for_statement=false
+resharper_space_before_separator=false
+resharper_space_before_singleline_accessorholder=true
+resharper_space_before_sizeof_parentheses=false
+resharper_space_before_template_args=false
+resharper_space_before_template_params=true
+resharper_space_before_ternary_colon=true
+resharper_space_before_ternary_quest=true
+resharper_space_before_trailing_comment=true
+resharper_space_before_typeof_parentheses=false
+resharper_space_before_type_argument_angle=false
+resharper_space_before_type_parameters_brackets=false
+resharper_space_before_type_parameter_angle=false
+resharper_space_before_type_parameter_constraint_colon=true
+resharper_space_before_type_parameter_parentheses=true
+resharper_space_between_accessors_in_singleline_property=true
+resharper_space_between_attribute_sections=true
+resharper_space_between_closing_angle_brackets_in_template_args=false
+resharper_space_between_empty_square_brackets=false
+resharper_space_between_keyword_and_expression=true
+resharper_space_between_keyword_and_type=true
+resharper_space_between_method_call_empty_parameter_list_parentheses=false
+resharper_space_between_method_call_name_and_opening_parenthesis=false
+resharper_space_between_method_call_parameter_list_parentheses=false
+resharper_space_between_method_declaration_empty_parameter_list_parentheses=false
+resharper_space_between_method_declaration_name_and_open_parenthesis=false
+resharper_space_between_method_declaration_parameter_list_parentheses=false
+resharper_space_between_parentheses_of_control_flow_statements=false
+resharper_space_between_square_brackets=false
+resharper_space_between_typecast_parentheses=false
+resharper_space_colon_after=true
+resharper_space_colon_before=false
+resharper_space_comma=true
+resharper_space_equals=true
+resharper_space_inside_braces=true
+resharper_space_in_singleline_accessorholder=true
+resharper_space_in_singleline_anonymous_method=true
+resharper_space_in_singleline_method=true
+resharper_space_near_postfix_and_prefix_op=false
+resharper_space_within_array_initialization_braces=false
+resharper_space_within_array_rank_empty_parentheses=false
+resharper_space_within_array_rank_parentheses=false
+resharper_space_within_attribute_angles=false
+resharper_space_within_attribute_match_brackets=false
+resharper_space_within_checked_parentheses=false
+resharper_space_within_default_parentheses=false
+resharper_space_within_empty_braces=true
+resharper_space_within_empty_initializer_braces=false
+resharper_space_within_empty_invocation_parentheses=false
+resharper_space_within_empty_method_parentheses=false
+resharper_space_within_empty_object_literal_braces=false
+resharper_space_within_empty_template_params=false
+resharper_space_within_expression_parentheses=false
+resharper_space_within_function_parentheses=false
+resharper_space_within_import_braces=true
+resharper_space_within_initializer_braces=false
+resharper_space_within_invocation_parentheses=false
+resharper_space_within_media_block=true
+resharper_space_within_media_parentheses=false
+resharper_space_within_method_parentheses=false
+resharper_space_within_nameof_parentheses=false
+resharper_space_within_new_parentheses=false
+resharper_space_within_object_literal_braces=true
+resharper_space_within_parentheses=false
+resharper_space_within_property_block=true
+resharper_space_within_single_line_array_initializer_braces=true
+resharper_space_within_sizeof_parentheses=false
+resharper_space_within_template_args=false
+resharper_space_within_template_argument=false
+resharper_space_within_template_params=false
+resharper_space_within_tuple_parentheses=false
+resharper_space_within_typeof_parentheses=false
+resharper_space_within_type_argument_angles=false
+resharper_space_within_type_parameters_brackets=false
+resharper_space_within_type_parameter_angles=false
+resharper_space_within_type_parameter_parentheses=false
+resharper_special_else_if_treatment=true
+resharper_static_members_qualify_members=none
+resharper_static_members_qualify_with=declared_type
+resharper_stick_comment=true
+resharper_support_vs_event_naming_pattern=true
+resharper_termination_style=ensure_semicolon
+resharper_toplevel_function_declaration_return_type_style=do_not_change
+resharper_toplevel_function_definition_return_type_style=do_not_change
+resharper_trailing_comma_in_multiline_lists=true
+resharper_trailing_comma_in_singleline_lists=false
+resharper_types_braces=end_of_line
+resharper_use_continuous_indent_inside_initializer_braces=true
+resharper_use_continuous_indent_inside_parens=true
+resharper_use_continuous_line_indent_in_expression_braces=false
+resharper_use_continuous_line_indent_in_method_pars=false
+resharper_use_heuristics_for_body_style=true
+resharper_use_indents_from_main_language_in_file=true
+resharper_use_indent_from_previous_element=true
+resharper_use_indent_from_vs=false
+resharper_use_roslyn_logic_for_evident_types=false
+resharper_vb_align_multiline_argument=true
+resharper_vb_align_multiline_expression=true
+resharper_vb_align_multiline_parameter=true
+resharper_vb_align_multiple_declaration=true
+resharper_vb_insert_final_newline=false
+resharper_vb_max_line_length=120
+resharper_vb_place_field_attribute_on_same_line=true
+resharper_vb_place_method_attribute_on_same_line=false
+resharper_vb_place_type_attribute_on_same_line=false
+resharper_vb_prefer_qualified_reference=false
+resharper_vb_space_after_unary_operator=true
+resharper_vb_space_around_multiplicative_op=false
+resharper_vb_wrap_arguments_style=wrap_if_long
+resharper_vb_wrap_before_binary_opsign=false
+resharper_vb_wrap_lines=true
+resharper_vb_wrap_parameters_style=wrap_if_long
+resharper_wrap_after_binary_opsign=true
+resharper_wrap_after_declaration_lpar=false
+resharper_wrap_after_dot=false
+resharper_wrap_after_dot_in_method_calls=false
+resharper_wrap_after_expression_lbrace=true
+resharper_wrap_after_invocation_lpar=false
+resharper_wrap_around_elements=true
+resharper_wrap_array_initializer_style=chop_always
+resharper_wrap_array_literals=chop_if_long
+resharper_wrap_base_clause_style=wrap_if_long
+resharper_wrap_before_arrow_with_expressions=true
+resharper_wrap_before_binary_pattern_op=true
+resharper_wrap_before_colon=false
+resharper_wrap_before_comma=false
+resharper_wrap_before_comma_in_base_clause=false
+resharper_wrap_before_declaration_lpar=false
+resharper_wrap_before_declaration_rpar=false
+resharper_wrap_before_dot=true
+resharper_wrap_before_eq=false
+resharper_wrap_before_expression_rbrace=true
+resharper_wrap_before_extends_colon=false
+resharper_wrap_before_first_type_parameter_constraint=false
+resharper_wrap_before_invocation_lpar=false
+resharper_wrap_before_invocation_rpar=false
+resharper_wrap_before_linq_expression=false
+resharper_wrap_before_ternary_opsigns=true
+resharper_wrap_before_type_parameter_langle=false
+resharper_wrap_braced_init_list_style=wrap_if_long
+resharper_wrap_chained_binary_expressions=chop_if_long
+resharper_wrap_chained_binary_patterns=wrap_if_long
+resharper_wrap_chained_method_calls=wrap_if_long
+resharper_wrap_ctor_initializer_style=wrap_if_long
+resharper_wrap_enumeration_style=chop_if_long
+resharper_wrap_enum_declaration=chop_always
+resharper_wrap_enum_style=do_not_change
+resharper_wrap_extends_list_style=wrap_if_long
+resharper_wrap_imports=chop_if_long
+resharper_wrap_multiple_declaration_style=chop_if_long
+resharper_wrap_multiple_type_parameter_constraints_style=chop_if_long
+resharper_wrap_object_literals=chop_if_long
+resharper_wrap_property_pattern=chop_if_long
+resharper_wrap_switch_expression=chop_always
+resharper_wrap_ternary_expr_style=chop_if_long
+resharper_wrap_union_type_usage=chop_if_long
+resharper_wrap_verbatim_interpolated_strings=no_wrap
+resharper_xmldoc_attribute_indent=single_indent
+resharper_xmldoc_insert_final_newline=false
+resharper_xmldoc_linebreak_before_elements=summary,remarks,example,returns,param,typeparam,value,para
+resharper_xmldoc_max_blank_lines_between_tags=0
+resharper_xmldoc_max_line_length=120
+resharper_xmldoc_pi_attribute_style=do_not_touch
+resharper_xmldoc_space_before_self_closing=true
+resharper_xmldoc_wrap_lines=true
+resharper_xmldoc_wrap_tags_and_pi=true
+resharper_xmldoc_wrap_text=true
+resharper_xml_attribute_indent=align_by_first_attribute
+resharper_xml_insert_final_newline=false
+resharper_xml_linebreak_before_elements=
+resharper_xml_max_blank_lines_between_tags=2
+resharper_xml_max_line_length=120
+resharper_xml_pi_attribute_style=do_not_touch
+resharper_xml_space_before_self_closing=true
+resharper_xml_wrap_lines=true
+resharper_xml_wrap_tags_and_pi=true
+resharper_xml_wrap_text=false
+
+# ReSharper inspection severities
+resharper_abstract_class_constructor_can_be_made_protected_highlighting=hint
+resharper_access_rights_in_text_highlighting=warning
+resharper_access_to_disposed_closure_highlighting=warning
+resharper_access_to_for_each_variable_in_closure_highlighting=warning
+resharper_access_to_modified_closure_highlighting=warning
+resharper_access_to_static_member_via_derived_type_highlighting=warning
+resharper_address_of_marshal_by_ref_object_highlighting=warning
+resharper_amd_dependency_path_problem_highlighting=none
+resharper_amd_external_module_highlighting=suggestion
+resharper_angular_html_banana_highlighting=warning
+resharper_annotate_can_be_null_parameter_highlighting=none
+resharper_annotate_can_be_null_type_member_highlighting=none
+resharper_annotate_not_null_parameter_highlighting=none
+resharper_annotate_not_null_type_member_highlighting=none
+resharper_annotation_conflict_in_hierarchy_highlighting=warning
+resharper_annotation_redundancy_at_value_type_highlighting=warning
+resharper_annotation_redundancy_in_hierarchy_highlighting=warning
+resharper_arguments_style_anonymous_function_highlighting=hint
+resharper_arguments_style_literal_highlighting=hint
+resharper_arguments_style_named_expression_highlighting=hint
+resharper_arguments_style_other_highlighting=hint
+resharper_arguments_style_string_literal_highlighting=hint
+resharper_arrange_accessor_owner_body_highlighting=suggestion
+resharper_arrange_attributes_highlighting=none
+resharper_arrange_constructor_or_destructor_body_highlighting=hint
+resharper_arrange_default_value_when_type_evident_highlighting=suggestion
+resharper_arrange_default_value_when_type_not_evident_highlighting=hint
+resharper_arrange_local_function_body_highlighting=hint
+resharper_arrange_method_or_operator_body_highlighting=hint
+resharper_arrange_missing_parentheses_highlighting=hint
+resharper_arrange_namespace_body_highlighting=hint
+resharper_arrange_object_creation_when_type_evident_highlighting=suggestion
+resharper_arrange_object_creation_when_type_not_evident_highlighting=hint
+resharper_arrange_redundant_parentheses_highlighting=hint
+resharper_arrange_static_member_qualifier_highlighting=hint
+resharper_arrange_this_qualifier_highlighting=hint
+resharper_arrange_trailing_comma_in_multiline_lists_highlighting=hint
+resharper_arrange_trailing_comma_in_singleline_lists_highlighting=hint
+resharper_arrange_type_member_modifiers_highlighting=hint
+resharper_arrange_type_modifiers_highlighting=hint
+resharper_arrange_var_keywords_in_deconstructing_declaration_highlighting=suggestion
+resharper_asp_content_placeholder_not_resolved_highlighting=error
+resharper_asp_custom_page_parser_filter_type_highlighting=warning
+resharper_asp_dead_code_highlighting=warning
+resharper_asp_entity_highlighting=warning
+resharper_asp_image_highlighting=warning
+resharper_asp_invalid_control_type_highlighting=error
+resharper_asp_not_resolved_highlighting=error
+resharper_asp_ods_method_reference_resolve_error_highlighting=error
+resharper_asp_resolve_warning_highlighting=warning
+resharper_asp_skin_not_resolved_highlighting=error
+resharper_asp_tag_attribute_with_optional_value_highlighting=warning
+resharper_asp_theme_not_resolved_highlighting=error
+resharper_asp_unused_register_directive_highlighting_highlighting=warning
+resharper_asp_warning_highlighting=warning
+resharper_assigned_value_is_never_used_highlighting=warning
+resharper_assigned_value_wont_be_assigned_to_corresponding_field_highlighting=warning
+resharper_assignment_in_conditional_expression_highlighting=warning
+resharper_assignment_in_condition_expression_highlighting=warning
+resharper_assignment_is_fully_discarded_highlighting=warning
+resharper_assign_null_to_not_null_attribute_highlighting=warning
+resharper_assign_to_constant_highlighting=error
+resharper_assign_to_implicit_global_in_function_scope_highlighting=warning
+resharper_asxx_path_error_highlighting=warning
+resharper_async_iterator_invocation_without_await_foreach_highlighting=warning
+resharper_async_void_lambda_highlighting=warning
+resharper_async_void_method_highlighting=none
+resharper_auto_property_can_be_made_get_only_global_highlighting=suggestion
+resharper_auto_property_can_be_made_get_only_local_highlighting=suggestion
+resharper_bad_attribute_brackets_spaces_highlighting=none
+resharper_bad_braces_spaces_highlighting=none
+resharper_bad_child_statement_indent_highlighting=warning
+resharper_bad_colon_spaces_highlighting=none
+resharper_bad_comma_spaces_highlighting=none
+resharper_bad_control_braces_indent_highlighting=suggestion
+resharper_bad_control_braces_line_breaks_highlighting=none
+resharper_bad_declaration_braces_indent_highlighting=none
+resharper_bad_declaration_braces_line_breaks_highlighting=none
+resharper_bad_empty_braces_line_breaks_highlighting=none
+resharper_bad_expression_braces_indent_highlighting=none
+resharper_bad_expression_braces_line_breaks_highlighting=none
+resharper_bad_generic_brackets_spaces_highlighting=none
+resharper_bad_indent_highlighting=none
+resharper_bad_linq_line_breaks_highlighting=none
+resharper_bad_list_line_breaks_highlighting=none
+resharper_bad_member_access_spaces_highlighting=none
+resharper_bad_namespace_braces_indent_highlighting=none
+resharper_bad_parens_line_breaks_highlighting=none
+resharper_bad_parens_spaces_highlighting=none
+resharper_bad_preprocessor_indent_highlighting=none
+resharper_bad_semicolon_spaces_highlighting=none
+resharper_bad_spaces_after_keyword_highlighting=none
+resharper_bad_square_brackets_spaces_highlighting=none
+resharper_bad_switch_braces_indent_highlighting=none
+resharper_bad_symbol_spaces_highlighting=none
+resharper_base_member_has_params_highlighting=warning
+resharper_base_method_call_with_default_parameter_highlighting=warning
+resharper_base_object_equals_is_object_equals_highlighting=warning
+resharper_base_object_get_hash_code_call_in_get_hash_code_highlighting=warning
+resharper_bitwise_operator_on_enum_without_flags_highlighting=warning
+resharper_block_scope_redeclaration_highlighting=error
+resharper_built_in_type_reference_style_for_member_access_highlighting=hint
+resharper_built_in_type_reference_style_highlighting=hint
+resharper_by_ref_argument_is_volatile_field_highlighting=warning
+resharper_caller_callee_using_error_highlighting=error
+resharper_caller_callee_using_highlighting=warning
+resharper_cannot_apply_equality_operator_to_type_highlighting=warning
+resharper_center_tag_is_obsolete_highlighting=warning
+resharper_check_for_reference_equality_instead_1_highlighting=suggestion
+resharper_check_for_reference_equality_instead_2_highlighting=suggestion
+resharper_check_for_reference_equality_instead_3_highlighting=suggestion
+resharper_check_for_reference_equality_instead_4_highlighting=suggestion
+resharper_check_namespace_highlighting=warning
+resharper_class_cannot_be_instantiated_highlighting=warning
+resharper_class_can_be_sealed_global_highlighting=none
+resharper_class_can_be_sealed_local_highlighting=none
+resharper_class_highlighting=suggestion
+resharper_class_never_instantiated_global_highlighting=suggestion
+resharper_class_never_instantiated_local_highlighting=suggestion
+resharper_class_with_virtual_members_never_inherited_global_highlighting=suggestion
+resharper_class_with_virtual_members_never_inherited_local_highlighting=suggestion
+resharper_clear_attribute_is_obsolete_all_highlighting=warning
+resharper_clear_attribute_is_obsolete_highlighting=warning
+resharper_closure_on_modified_variable_highlighting=warning
+resharper_coerced_equals_using_highlighting=warning
+resharper_coerced_equals_using_with_null_undefined_highlighting=none
+resharper_collection_never_queried_global_highlighting=warning
+resharper_collection_never_queried_local_highlighting=warning
+resharper_collection_never_updated_global_highlighting=warning
+resharper_collection_never_updated_local_highlighting=warning
+resharper_comma_not_valid_here_highlighting=error
+resharper_comment_typo_highlighting=suggestion
+resharper_common_js_external_module_highlighting=suggestion
+resharper_compare_non_constrained_generic_with_null_highlighting=none
+resharper_compare_of_floats_by_equality_operator_highlighting=none
+resharper_conditional_ternary_equal_branch_highlighting=warning
+resharper_condition_is_always_const_highlighting=warning
+resharper_condition_is_always_true_or_false_highlighting=warning
+resharper_confusing_char_as_integer_in_constructor_highlighting=warning
+resharper_constant_conditional_access_qualifier_highlighting=warning
+resharper_constant_null_coalescing_condition_highlighting=warning
+resharper_constructor_call_not_used_highlighting=warning
+resharper_constructor_initializer_loop_highlighting=warning
+resharper_container_annotation_redundancy_highlighting=warning
+resharper_context_value_is_provided_highlighting=none
+resharper_contract_annotation_not_parsed_highlighting=warning
+resharper_convert_closure_to_method_group_highlighting=suggestion
+resharper_convert_conditional_ternary_expression_to_switch_expression_highlighting=hint
+resharper_convert_if_do_to_while_highlighting=suggestion
+resharper_convert_if_statement_to_conditional_ternary_expression_highlighting=suggestion
+resharper_convert_if_statement_to_null_coalescing_assignment_highlighting=suggestion
+resharper_convert_if_statement_to_null_coalescing_expression_highlighting=suggestion
+resharper_convert_if_statement_to_return_statement_highlighting=hint
+resharper_convert_if_statement_to_switch_expression_highlighting=hint
+resharper_convert_if_statement_to_switch_statement_highlighting=hint
+resharper_convert_if_to_or_expression_highlighting=suggestion
+resharper_convert_nullable_to_short_form_highlighting=suggestion
+resharper_convert_switch_statement_to_switch_expression_highlighting=hint
+resharper_convert_to_auto_property_highlighting=suggestion
+resharper_convert_to_auto_property_when_possible_highlighting=hint
+resharper_convert_to_auto_property_with_private_setter_highlighting=hint
+resharper_convert_to_compound_assignment_highlighting=hint
+resharper_convert_to_constant_global_highlighting=hint
+resharper_convert_to_constant_local_highlighting=hint
+resharper_convert_to_lambda_expression_highlighting=suggestion
+resharper_convert_to_lambda_expression_when_possible_highlighting=none
+resharper_convert_to_local_function_highlighting=suggestion
+resharper_convert_to_null_coalescing_compound_assignment_highlighting=suggestion
+resharper_convert_to_primary_constructor_highlighting=suggestion
+resharper_convert_to_static_class_highlighting=suggestion
+resharper_convert_to_using_declaration_highlighting=suggestion
+resharper_convert_to_vb_auto_property_highlighting=suggestion
+resharper_convert_to_vb_auto_property_when_possible_highlighting=hint
+resharper_convert_to_vb_auto_property_with_private_setter_highlighting=hint
+resharper_convert_type_check_pattern_to_null_check_highlighting=warning
+resharper_convert_type_check_to_null_check_highlighting=warning
+resharper_co_variant_array_conversion_highlighting=warning
+resharper_cpp_abstract_class_without_specifier_highlighting=warning
+resharper_cpp_abstract_final_class_highlighting=warning
+resharper_cpp_abstract_virtual_function_call_in_ctor_highlighting=error
+resharper_cpp_access_specifier_with_no_declarations_highlighting=suggestion
+resharper_cpp_assigned_value_is_never_used_highlighting=warning
+resharper_cpp_awaiter_type_is_not_class_highlighting=warning
+resharper_cpp_bad_angle_brackets_spaces_highlighting=none
+resharper_cpp_bad_braces_spaces_highlighting=none
+resharper_cpp_bad_child_statement_indent_highlighting=none
+resharper_cpp_bad_colon_spaces_highlighting=none
+resharper_cpp_bad_comma_spaces_highlighting=none
+resharper_cpp_bad_control_braces_indent_highlighting=none
+resharper_cpp_bad_control_braces_line_breaks_highlighting=none
+resharper_cpp_bad_declaration_braces_indent_highlighting=none
+resharper_cpp_bad_declaration_braces_line_breaks_highlighting=none
+resharper_cpp_bad_empty_braces_line_breaks_highlighting=none
+resharper_cpp_bad_expression_braces_indent_highlighting=none
+resharper_cpp_bad_expression_braces_line_breaks_highlighting=none
+resharper_cpp_bad_indent_highlighting=none
+resharper_cpp_bad_list_line_breaks_highlighting=none
+resharper_cpp_bad_member_access_spaces_highlighting=none
+resharper_cpp_bad_namespace_braces_indent_highlighting=none
+resharper_cpp_bad_parens_line_breaks_highlighting=none
+resharper_cpp_bad_parens_spaces_highlighting=none
+resharper_cpp_bad_semicolon_spaces_highlighting=none
+resharper_cpp_bad_spaces_after_keyword_highlighting=none
+resharper_cpp_bad_square_brackets_spaces_highlighting=none
+resharper_cpp_bad_switch_braces_indent_highlighting=none
+resharper_cpp_bad_symbol_spaces_highlighting=none
+resharper_cpp_boolean_increment_expression_highlighting=warning
+resharper_cpp_boost_format_bad_code_highlighting=warning
+resharper_cpp_boost_format_legacy_code_highlighting=suggestion
+resharper_cpp_boost_format_mixed_args_highlighting=error
+resharper_cpp_boost_format_too_few_args_highlighting=error
+resharper_cpp_boost_format_too_many_args_highlighting=warning
+resharper_cpp_clang_tidy_abseil_duration_addition_highlighting=none
+resharper_cpp_clang_tidy_abseil_duration_comparison_highlighting=none
+resharper_cpp_clang_tidy_abseil_duration_conversion_cast_highlighting=none
+resharper_cpp_clang_tidy_abseil_duration_division_highlighting=none
+resharper_cpp_clang_tidy_abseil_duration_factory_float_highlighting=none
+resharper_cpp_clang_tidy_abseil_duration_factory_scale_highlighting=none
+resharper_cpp_clang_tidy_abseil_duration_subtraction_highlighting=none
+resharper_cpp_clang_tidy_abseil_duration_unnecessary_conversion_highlighting=none
+resharper_cpp_clang_tidy_abseil_faster_strsplit_delimiter_highlighting=none
+resharper_cpp_clang_tidy_abseil_no_internal_dependencies_highlighting=none
+resharper_cpp_clang_tidy_abseil_no_namespace_highlighting=none
+resharper_cpp_clang_tidy_abseil_redundant_strcat_calls_highlighting=none
+resharper_cpp_clang_tidy_abseil_string_find_startswith_highlighting=none
+resharper_cpp_clang_tidy_abseil_string_find_str_contains_highlighting=none
+resharper_cpp_clang_tidy_abseil_str_cat_append_highlighting=none
+resharper_cpp_clang_tidy_abseil_time_comparison_highlighting=none
+resharper_cpp_clang_tidy_abseil_time_subtraction_highlighting=none
+resharper_cpp_clang_tidy_abseil_upgrade_duration_conversions_highlighting=none
+resharper_cpp_clang_tidy_altera_id_dependent_backward_branch_highlighting=none
+resharper_cpp_clang_tidy_altera_kernel_name_restriction_highlighting=none
+resharper_cpp_clang_tidy_altera_single_work_item_barrier_highlighting=none
+resharper_cpp_clang_tidy_altera_struct_pack_align_highlighting=none
+resharper_cpp_clang_tidy_altera_unroll_loops_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_accept4_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_accept_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_creat_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_dup_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_epoll_create1_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_epoll_create_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_fopen_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_inotify_init1_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_inotify_init_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_memfd_create_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_open_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_pipe2_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_pipe_highlighting=none
+resharper_cpp_clang_tidy_android_cloexec_socket_highlighting=none
+resharper_cpp_clang_tidy_android_comparison_in_temp_failure_retry_highlighting=none
+resharper_cpp_clang_tidy_boost_use_to_string_highlighting=suggestion
+resharper_cpp_clang_tidy_bugprone_argument_comment_highlighting=suggestion
+resharper_cpp_clang_tidy_bugprone_assert_side_effect_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_bad_signal_to_kill_thread_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_bool_pointer_implicit_conversion_highlighting=none
+resharper_cpp_clang_tidy_bugprone_branch_clone_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_copy_constructor_init_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_dangling_handle_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_dynamic_static_initializers_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_easily_swappable_parameters_highlighting=none
+resharper_cpp_clang_tidy_bugprone_exception_escape_highlighting=none
+resharper_cpp_clang_tidy_bugprone_fold_init_type_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_forwarding_reference_overload_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_forward_declaration_namespace_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_implicit_widening_of_multiplication_result_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_inaccurate_erase_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_incorrect_roundings_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_infinite_loop_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_integer_division_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_lambda_function_name_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_macro_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_macro_repeated_side_effects_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_misplaced_operator_in_strlen_in_alloc_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_misplaced_pointer_arithmetic_in_alloc_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_misplaced_widening_cast_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_move_forwarding_reference_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_multiple_statement_macro_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_narrowing_conversions_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_not_null_terminated_result_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_no_escape_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_parent_virtual_call_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_posix_return_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_redundant_branch_condition_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_reserved_identifier_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_signal_handler_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_signed_char_misuse_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_sizeof_container_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_sizeof_expression_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_spuriously_wake_up_functions_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_string_constructor_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_string_integer_assignment_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_string_literal_with_embedded_nul_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_suspicious_enum_usage_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_suspicious_include_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_suspicious_memset_usage_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_suspicious_missing_comma_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_suspicious_semicolon_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_suspicious_string_compare_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_swapped_arguments_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_terminating_continue_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_throw_keyword_missing_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_too_small_loop_variable_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_undefined_memory_manipulation_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_undelegated_constructor_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_unhandled_exception_at_new_highlighting=none
+resharper_cpp_clang_tidy_bugprone_unhandled_self_assignment_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_unused_raii_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_unused_return_value_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_use_after_move_highlighting=warning
+resharper_cpp_clang_tidy_bugprone_virtual_near_miss_highlighting=suggestion
+resharper_cpp_clang_tidy_cert_con36_c_highlighting=none
+resharper_cpp_clang_tidy_cert_con54_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl03_c_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl16_c_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl21_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl37_c_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl50_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl51_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl54_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_dcl58_cpp_highlighting=warning
+resharper_cpp_clang_tidy_cert_dcl59_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_env33_c_highlighting=none
+resharper_cpp_clang_tidy_cert_err09_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_err34_c_highlighting=suggestion
+resharper_cpp_clang_tidy_cert_err52_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_err58_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_err60_cpp_highlighting=warning
+resharper_cpp_clang_tidy_cert_err61_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_fio38_c_highlighting=none
+resharper_cpp_clang_tidy_cert_flp30_c_highlighting=warning
+resharper_cpp_clang_tidy_cert_mem57_cpp_highlighting=warning
+resharper_cpp_clang_tidy_cert_msc30_c_highlighting=none
+resharper_cpp_clang_tidy_cert_msc32_c_highlighting=none
+resharper_cpp_clang_tidy_cert_msc50_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_msc51_cpp_highlighting=warning
+resharper_cpp_clang_tidy_cert_oop11_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_oop54_cpp_highlighting=none
+resharper_cpp_clang_tidy_cert_oop57_cpp_highlighting=warning
+resharper_cpp_clang_tidy_cert_oop58_cpp_highlighting=warning
+resharper_cpp_clang_tidy_cert_pos44_c_highlighting=none
+resharper_cpp_clang_tidy_cert_pos47_c_highlighting=none
+resharper_cpp_clang_tidy_cert_sig30_c_highlighting=none
+resharper_cpp_clang_tidy_cert_str34_c_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_api_modeling_google_g_test_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_api_modeling_llvm_cast_value_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_api_modeling_llvm_return_value_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_api_modeling_std_c_library_functions_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_api_modeling_trust_nonnull_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_builtin_builtin_functions_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_builtin_no_return_functions_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_call_and_message_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_call_and_message_modeling_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_divide_zero_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_dynamic_type_propagation_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_nonnil_string_constants_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_non_null_param_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_null_dereference_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_stack_address_escape_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_stack_addr_escape_base_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_undefined_binary_operator_result_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_array_subscript_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_assign_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_branch_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_captured_block_variable_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_undef_return_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_core_vla_size_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_inner_pointer_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_move_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_new_delete_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_new_delete_leaks_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_placement_new_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_pure_virtual_call_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_self_assignment_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_smart_ptr_modeling_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_cplusplus_virtual_call_modeling_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_deadcode_dead_stores_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_fuchsia_handle_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_nullability_nullability_base_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_nullability_nullable_dereferenced_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_nullability_nullable_passed_to_nonnull_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_nullability_nullable_returned_from_nonnull_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_nullability_null_passed_to_nonnull_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_nullability_null_returned_from_nonnull_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_cplusplus_uninitialized_object_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_cplusplus_virtual_call_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_mpi_mpi_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_osx_cocoa_localizability_empty_localization_context_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_osx_cocoa_localizability_non_localized_string_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_osx_os_object_c_style_cast_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_performance_gcd_antipattern_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_performance_padding_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_optin_portability_unix_api_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_api_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_at_sync_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_autorelease_write_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_class_release_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_dealloc_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_incompatible_method_types_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_loops_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_missing_super_call_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_nil_arg_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_non_nil_return_value_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_ns_autorelease_pool_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_ns_error_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_obj_c_generics_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_retain_count_base_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_retain_count_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_run_loop_autorelease_leak_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_self_init_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_super_dealloc_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_unused_ivars_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_variadic_method_types_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_cf_error_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_cf_number_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_cf_retain_release_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_containers_out_of_bounds_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_containers_pointer_sized_values_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_mig_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_ns_or_cf_error_deref_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_number_object_conversion_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_obj_c_property_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_os_object_retain_count_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_osx_sec_keychain_api_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_float_loop_counter_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_bcmp_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_bcopy_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_bzero_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_decode_value_of_obj_c_type_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_deprecated_or_unsafe_buffer_handling_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_getpw_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_gets_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_mkstemp_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_mktemp_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_rand_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_security_syntax_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_strcpy_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_unchecked_return_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_vfork_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_api_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_cstring_bad_size_arg_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_cstring_c_string_modeling_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_cstring_null_arg_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_dynamic_memory_modeling_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_malloc_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_malloc_sizeof_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_mismatched_deallocator_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_unix_vfork_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_valist_copy_to_self_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_valist_uninitialized_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_valist_unterminated_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_valist_valist_base_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_webkit_no_uncounted_member_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_webkit_ref_cntbl_base_virtual_dtor_highlighting=none
+resharper_cpp_clang_tidy_clang_analyzer_webkit_uncounted_lambda_captures_checker_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_absolute_value_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_abstract_final_class_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_abstract_vbase_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_address_of_packed_member_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_address_of_temporary_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_aix_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_align_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_alloca_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_alloca_with_align_alignof_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_delete_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_ellipsis_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_macro_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_member_template_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_reversed_operator_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_analyzer_incompatible_plugin_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_anonymous_pack_parens_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_anon_enum_enum_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_arc_bridge_casts_disallowed_in_nonarc_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_arc_maybe_repeated_use_of_weak_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_arc_non_pod_memaccess_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_arc_perform_selector_leaks_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_arc_repeated_use_of_weak_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_arc_retain_cycles_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_arc_unsafe_retained_assign_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_argument_outside_range_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_array_bounds_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_array_bounds_pointer_arithmetic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_asm_operand_widths_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_assign_enum_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_assume_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_atimport_in_framework_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_atomic_alignment_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_atomic_implicit_seq_cst_highlighting=suggestion
+resharper_cpp_clang_tidy_clang_diagnostic_atomic_memory_ordering_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_atomic_property_with_user_defined_accessor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_attribute_packed_for_bitfield_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_at_protocol_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_auto_disable_vptr_sanitizer_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_auto_import_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_auto_storage_class_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_auto_var_id_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_availability_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_avr_rtlib_linking_quirks_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_backslash_newline_escape_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bad_function_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_binding_in_condition_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bind_to_temporary_copy_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bitfield_constant_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bitfield_enum_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bitfield_width_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bitwise_conditional_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bitwise_op_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_block_capture_autoreleasing_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bool_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bool_operation_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_braced_scalar_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_bridge_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_builtin_assume_aligned_alignment_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_builtin_macro_redefined_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_builtin_memcpy_chk_size_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_builtin_requires_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_c11_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_c2x_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_c99_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_c99_designator_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_c99_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_called_once_parameter_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_call_to_pure_virtual_from_ctor_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cast_align_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cast_calling_convention_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cast_function_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cast_of_sel_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cast_qual_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cast_qual_unrelated_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cf_string_literal_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_char_subscripts_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_clang_cl_pch_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_class_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_class_varargs_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cmse_union_leak_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_comma_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_comment_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_compare_distinct_pointer_types_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_completion_handler_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_complex_component_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_compound_token_split_by_macro_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_compound_token_split_by_space_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_compound_token_split_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_concepts_ts_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_conditional_type_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_conditional_uninitialized_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_config_macros_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_constant_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_constant_evaluated_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_constant_logical_operand_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_constexpr_not_const_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_consumed_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_coroutine_missing_unhandled_exception_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_covered_switch_default_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_deprecated_writable_strings_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_reserved_user_defined_literal_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_extra_semi_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_inline_namespace_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_long_long_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp11_narrowing_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp14_binary_literal_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp14_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp14_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp14_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp17_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp17_compat_mangling_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp17_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp17_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp20_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp20_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp20_designator_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp20_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp2a_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp2a_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp2b_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_bind_to_temporary_copy_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_extra_semi_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_local_type_template_args_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_unnamed_type_template_args_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_compat_binary_literal_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_cpp17_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_cpp17_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cpp_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cstring_format_directive_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ctad_maybe_unsupported_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_ctu_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_cuda_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_custom_atomic_properties_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_cxx_attribute_extension_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dangling_else_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dangling_field_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dangling_gsl_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dangling_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dangling_initializer_list_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_darwin_sdk_settings_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_date_time_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dealloc_in_category_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_debug_compression_unavailable_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_declaration_after_statement_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_defaulted_function_deleted_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_delegating_ctor_cycles_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_delete_abstract_non_virtual_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_delete_incomplete_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_delete_non_abstract_non_virtual_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_delete_non_virtual_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_altivec_src_compat_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_anon_enum_enum_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_array_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_attributes_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_comma_subscript_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_with_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_with_user_provided_copy_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_with_user_provided_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_declarations_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_dynamic_exception_spec_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_compare_conditional_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_enum_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_float_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_implementations_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_increment_bool_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_objc_isa_usage_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_objc_pointer_introspection_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_objc_pointer_introspection_perform_selector_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_register_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_this_capture_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_deprecated_volatile_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_direct_ivar_access_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_disabled_macro_expansion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_distributed_object_modifiers_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_division_by_zero_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dllexport_explicit_instantiation_decl_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dllimport_static_field_def_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dll_attribute_on_redeclaration_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_documentation_deprecated_sync_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_documentation_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_documentation_html_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_documentation_pedantic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_documentation_unknown_command_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_dollar_in_identifier_extension_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_double_promotion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dtor_name_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dtor_typedef_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_duplicate_decl_specifier_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_duplicate_enum_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_duplicate_method_arg_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_duplicate_method_match_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_duplicate_protocol_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dynamic_class_memaccess_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_dynamic_exception_spec_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_embedded_directive_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_empty_body_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_empty_decomposition_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_empty_init_stmt_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_empty_translation_unit_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_encode_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_enum_compare_conditional_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_enum_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_enum_compare_switch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_enum_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_enum_enum_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_enum_float_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_enum_too_large_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_error_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_exceptions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_excess_initializers_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_exit_time_destructors_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_expansion_to_defined_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_explicit_initialize_call_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_explicit_ownership_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_export_unnamed_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_export_using_directive_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_extern_c_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_extern_initializer_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_extra_qualification_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_extra_semi_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_extra_semi_stmt_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_extra_tokens_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_final_dtor_non_final_class_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_fixed_enum_extension_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_fixed_point_overflow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_flag_enum_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_flexible_array_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_float_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_float_equal_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_float_overflow_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_float_zero_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_extra_args_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_insufficient_args_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_invalid_specifier_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_nonliteral_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_non_iso_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_pedantic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_security_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_type_confusion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_format_zero_length_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_fortify_source_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_for_loop_analysis_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_four_char_constants_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_framework_include_private_from_public_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_frame_address_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_frame_larger_than_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_free_nonheap_object_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_function_def_in_objc_container_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_function_multiversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gcc_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_global_constructors_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_global_isel_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_alignof_expression_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_anonymous_struct_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_array_member_paren_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_auto_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_binary_literal_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_case_range_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_complex_integer_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_compound_literal_initializer_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_conditional_omitted_operand_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_designator_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_empty_initializer_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_empty_struct_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_flexible_array_initializer_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_flexible_array_union_member_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_folding_constant_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_imaginary_constant_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_include_next_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_inline_cpp_without_extern_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_label_as_value_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_redeclared_enum_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_statement_expression_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_static_float_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_string_literal_operator_template_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_union_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_variable_sized_type_not_at_end_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_gnu_zero_variadic_macro_arguments_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_header_guard_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_header_hygiene_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_hip_only_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_idiomatic_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ignored_attributes_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_ignored_availability_without_sdk_settings_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_ignored_optimization_argument_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ignored_pragmas_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ignored_pragma_intrinsic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ignored_pragma_optimize_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_ignored_qualifiers_highlighting=suggestion
+resharper_cpp_clang_tidy_clang_diagnostic_implicitly_unsigned_literal_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_atomic_properties_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_const_int_float_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_conversion_floating_point_to_bool_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_exception_spec_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_fallthrough_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_fallthrough_per_function_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_fixed_point_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_float_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_function_declaration_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_int_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_int_float_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_int_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_implicit_retain_self_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_import_preprocessor_directive_pedantic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_inaccessible_base_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_include_next_absolute_path_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_include_next_outside_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_exception_spec_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_function_pointer_types_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_library_redeclaration_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_ms_struct_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_pointer_types_discards_qualifiers_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_pointer_types_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_property_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incompatible_sysroot_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incomplete_framework_module_declaration_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incomplete_implementation_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incomplete_module_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incomplete_setjmp_declaration_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_incomplete_umbrella_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_inconsistent_dllimport_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_inconsistent_missing_destructor_override_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_inconsistent_missing_override_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_increment_bool_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_independent_class_attribute_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_infinite_recursion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_initializer_overrides_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_injected_class_name_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_inline_asm_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_inline_namespace_reopened_noninline_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_inline_new_delete_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_instantiation_after_specialization_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_integer_overflow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_interrupt_service_routine_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_int_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_int_in_bool_context_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_int_to_pointer_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_int_to_void_pointer_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_constexpr_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_iboutlet_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_initializer_from_system_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_ios_deployment_target_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_noreturn_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_no_builtin_names_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_offsetof_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_or_nonexistent_directory_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_partial_specialization_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_pp_token_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_source_encoding_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_invalid_token_paste_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_jump_seh_finally_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_keyword_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_keyword_macro_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_knr_promoted_parameter_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_language_extension_token_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_large_by_value_copy_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_literal_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_literal_range_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_local_type_template_args_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_logical_not_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_logical_op_parentheses_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_long_long_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_macro_redefined_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_main_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_main_return_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_malformed_warning_check_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_many_braces_around_scalar_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_max_tokens_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_max_unsigned_zero_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_memset_transposed_args_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_memsize_comparison_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_method_signatures_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_abstract_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_anon_tag_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_charize_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_comment_paste_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_const_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_cpp_macro_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_default_arg_redefinition_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_drectve_section_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_end_of_file_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_enum_forward_reference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_enum_value_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_exception_spec_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_exists_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_explicit_constructor_call_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_extra_qualification_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_fixed_enum_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_flexible_array_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_goto_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_inaccessible_base_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_include_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_mutable_reference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_pure_definition_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_redeclare_static_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_sealed_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_static_assert_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_template_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_template_shadow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_union_member_reference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_unqualified_friend_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_using_decl_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_microsoft_void_pseudo_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_misleading_indentation_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_mismatched_new_delete_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_mismatched_parameter_types_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_mismatched_return_types_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_mismatched_tags_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_braces_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_constinit_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_declarations_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_exception_spec_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_field_initializers_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_method_return_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_noescape_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_noreturn_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_prototypes_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_missing_prototype_for_cc_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_selector_name_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_sysroot_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_missing_variable_declarations_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_misspelled_assumption_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_modules_ambiguous_internal_linkage_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_modules_import_nested_redundant_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_module_conflict_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_module_file_config_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_module_file_extension_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_module_import_in_extern_c_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_msvc_not_found_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_multichar_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_multiple_move_vbase_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nested_anon_types_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_newline_eof_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_new_returns_null_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_noderef_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nonnull_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nonportable_include_path_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nonportable_system_include_path_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nonportable_vector_initialization_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nontrivial_memaccess_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_non_c_typedef_for_linkage_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_non_literal_null_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_non_modular_include_in_framework_module_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_non_modular_include_in_module_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_non_pod_varargs_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_non_power_of_two_alignment_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_non_virtual_dtor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nsconsumed_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nsreturns_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ns_object_attribute_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nullability_completeness_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nullability_completeness_on_arrays_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nullability_declspec_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nullability_extension_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nullability_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nullability_inferred_on_nested_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_nullable_to_nonnull_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_null_arithmetic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_null_character_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_null_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_null_dereference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_null_pointer_arithmetic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_null_pointer_subtraction_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_odr_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_old_style_cast_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_opencl_unsupported_rgba_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_openmp51_extensions_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_openmp_clauses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_openmp_loop_form_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_openmp_mapping_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_openmp_target_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_option_ignored_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_ordered_compare_function_pointers_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_out_of_line_declaration_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_out_of_scope_function_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_overlength_strings_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_overloaded_shift_op_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_overloaded_virtual_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_override_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_override_module_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_overriding_method_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_overriding_t_option_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_over_aligned_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_packed_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_padded_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_parentheses_equality_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pass_failed_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pch_date_time_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pedantic_core_features_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pedantic_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pessimizing_move_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_arith_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_bool_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_integer_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_sign_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_to_enum_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_to_int_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pointer_type_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_poison_system_directories_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_potentially_evaluated_expression_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pragmas_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pragma_clang_attribute_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pragma_messages_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pragma_once_outside_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pragma_pack_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pragma_pack_suspicious_include_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pragma_system_header_outside_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_predefined_identifier_outside_function_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_pre_c2x_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_c2x_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp14_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp14_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp17_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp17_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp20_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp20_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp2b_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp2b_compat_pedantic_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_pre_openmp51_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_private_extern_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_private_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_private_module_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_profile_instr_missing_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_profile_instr_out_of_date_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_profile_instr_unprofiled_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_property_access_dot_syntax_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_property_attribute_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_protocol_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_protocol_property_synthesis_ambiguity_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_psabi_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_qualified_void_return_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_quoted_include_in_framework_header_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_range_loop_analysis_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_range_loop_bind_reference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_range_loop_construct_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_readonly_iboutlet_property_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_receiver_expr_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_receiver_forward_class_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_redeclared_class_member_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_redundant_move_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_redundant_parens_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_register_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reinterpret_base_class_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reorder_ctor_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reorder_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reorder_init_list_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_requires_expression_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_requires_super_attribute_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reserved_identifier_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reserved_id_macro_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reserved_macro_identifier_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_reserved_user_defined_literal_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_retained_language_linkage_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_return_stack_address_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_return_std_move_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_return_type_c_linkage_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_return_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_rewrite_not_bool_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_section_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_selector_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_selector_type_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_self_assign_field_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_self_assign_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_self_assign_overloaded_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_self_move_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_semicolon_before_method_body_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sentinel_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_serialized_diagnostics_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shadow_field_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shadow_field_in_constructor_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_shadow_field_in_constructor_modified_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_shadow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shadow_ivar_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shadow_uncaptured_local_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_shift_count_negative_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shift_count_overflow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shift_negative_value_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shift_op_parentheses_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shift_overflow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shift_sign_overflow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_shorten64_to32_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_signed_enum_bitfield_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_signed_unsigned_wchar_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sign_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sign_conversion_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_sizeof_array_argument_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sizeof_array_decay_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sizeof_array_div_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sizeof_pointer_div_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sizeof_pointer_memaccess_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_slash_u_filename_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_slh_asm_goto_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_sometimes_uninitialized_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_source_uses_openmp_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_spir_compat_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_static_float_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_static_inline_explicit_instantiation_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_static_in_inline_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_static_local_in_inline_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_static_self_init_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_stdlibcxx_not_found_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_strict_prototypes_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_strict_selector_match_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_string_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_string_concatenation_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_string_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_string_plus_char_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_string_plus_int_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_strlcpy_strlcat_size_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_strncat_size_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_suggest_destructor_override_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_suggest_override_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_super_class_method_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_suspicious_bzero_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_switch_bool_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_switch_enum_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_switch_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_sync_fetch_and_nand_semantics_changed_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_bitwise_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_constant_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_constant_in_range_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_constant_out_of_range_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_objc_bool_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_overlap_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_pointer_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_type_limit_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_undefined_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_unsigned_char_zero_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_unsigned_enum_zero_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_unsigned_zero_compare_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_tautological_value_range_compare_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_tentative_definition_incomplete_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_analysis_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_attributes_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_beta_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_negative_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_precise_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_reference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_verbose_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_trigraphs_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_typedef_redefinition_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_typename_missing_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_type_safety_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unable_to_open_stats_file_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unavailable_declarations_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undeclared_selector_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undefined_bool_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undefined_func_template_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undefined_inline_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undefined_internal_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undefined_internal_type_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undefined_reinterpret_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undefined_var_template_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undef_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_undef_prefix_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_underaligned_exception_object_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unevaluated_expression_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unguarded_availability_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unguarded_availability_new_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unicode_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unicode_homoglyph_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unicode_whitespace_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unicode_zero_width_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_uninitialized_const_reference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_uninitialized_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unknown_argument_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unknown_attributes_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unknown_cuda_version_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unknown_escape_sequence_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unknown_pragmas_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unknown_sanitizers_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unknown_warning_option_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unnamed_type_template_args_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unneeded_internal_declaration_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unneeded_member_function_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_break_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_loop_increment_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_return_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsequenced_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_abs_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_availability_guard_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_cb_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_dll_base_class_template_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_friend_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_gpopt_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_nan_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_target_opt_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unsupported_visibility_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unusable_partial_specialization_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_but_set_parameter_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unused_but_set_variable_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unused_comparison_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_const_variable_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_exception_parameter_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_function_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_getter_return_value_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_label_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_lambda_capture_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unused_local_typedef_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_macros_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_member_function_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_parameter_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unused_private_field_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_property_ivar_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_result_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_template_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_value_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_unused_variable_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_unused_volatile_lvalue_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_used_but_marked_unused_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_user_defined_literals_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_user_defined_warnings_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_varargs_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_variadic_macros_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_vector_conversion_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_vec_elem_size_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_vexing_parse_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_visibility_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_vla_extension_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_vla_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_void_pointer_to_enum_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_void_pointer_to_int_cast_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_void_ptr_dereference_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_warnings_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_wasm_exception_spec_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_weak_template_vtables_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_weak_vtables_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_writable_strings_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_xor_used_as_pow_highlighting=warning
+resharper_cpp_clang_tidy_clang_diagnostic_zero_as_null_pointer_constant_highlighting=none
+resharper_cpp_clang_tidy_clang_diagnostic_zero_length_array_highlighting=warning
+resharper_cpp_clang_tidy_concurrency_mt_unsafe_highlighting=warning
+resharper_cpp_clang_tidy_concurrency_thread_canceltype_asynchronous_highlighting=warning
+resharper_cpp_clang_tidy_cppcoreguidelines_avoid_c_arrays_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_avoid_goto_highlighting=warning
+resharper_cpp_clang_tidy_cppcoreguidelines_avoid_magic_numbers_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_avoid_non_const_global_variables_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_c_copy_assignment_signature_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_explicit_virtual_functions_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_init_variables_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_interfaces_global_init_highlighting=warning
+resharper_cpp_clang_tidy_cppcoreguidelines_macro_usage_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_narrowing_conversions_highlighting=warning
+resharper_cpp_clang_tidy_cppcoreguidelines_non_private_member_variables_in_classes_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_no_malloc_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_owning_memory_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_prefer_member_initializer_highlighting=suggestion
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_bounds_array_to_pointer_decay_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_bounds_constant_array_index_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_bounds_pointer_arithmetic_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_const_cast_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_cstyle_cast_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_member_init_highlighting=warning
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_reinterpret_cast_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_static_cast_downcast_highlighting=suggestion
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_union_access_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_vararg_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_slicing_highlighting=none
+resharper_cpp_clang_tidy_cppcoreguidelines_special_member_functions_highlighting=suggestion
+resharper_cpp_clang_tidy_darwin_avoid_spinlock_highlighting=none
+resharper_cpp_clang_tidy_darwin_dispatch_once_nonstatic_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_default_arguments_calls_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_default_arguments_declarations_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_header_anon_namespaces_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_multiple_inheritance_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_overloaded_operator_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_statically_constructed_objects_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_trailing_return_highlighting=none
+resharper_cpp_clang_tidy_fuchsia_virtual_inheritance_highlighting=none
+resharper_cpp_clang_tidy_google_build_explicit_make_pair_highlighting=none
+resharper_cpp_clang_tidy_google_build_namespaces_highlighting=none
+resharper_cpp_clang_tidy_google_build_using_namespace_highlighting=none
+resharper_cpp_clang_tidy_google_default_arguments_highlighting=none
+resharper_cpp_clang_tidy_google_explicit_constructor_highlighting=none
+resharper_cpp_clang_tidy_google_global_names_in_headers_highlighting=none
+resharper_cpp_clang_tidy_google_objc_avoid_nsobject_new_highlighting=none
+resharper_cpp_clang_tidy_google_objc_avoid_throwing_exception_highlighting=none
+resharper_cpp_clang_tidy_google_objc_function_naming_highlighting=none
+resharper_cpp_clang_tidy_google_objc_global_variable_declaration_highlighting=none
+resharper_cpp_clang_tidy_google_readability_avoid_underscore_in_googletest_name_highlighting=none
+resharper_cpp_clang_tidy_google_readability_braces_around_statements_highlighting=none
+resharper_cpp_clang_tidy_google_readability_casting_highlighting=none
+resharper_cpp_clang_tidy_google_readability_function_size_highlighting=none
+resharper_cpp_clang_tidy_google_readability_namespace_comments_highlighting=none
+resharper_cpp_clang_tidy_google_readability_todo_highlighting=none
+resharper_cpp_clang_tidy_google_runtime_int_highlighting=none
+resharper_cpp_clang_tidy_google_runtime_operator_highlighting=warning
+resharper_cpp_clang_tidy_google_upgrade_googletest_case_highlighting=suggestion
+resharper_cpp_clang_tidy_hicpp_avoid_c_arrays_highlighting=none
+resharper_cpp_clang_tidy_hicpp_avoid_goto_highlighting=warning
+resharper_cpp_clang_tidy_hicpp_braces_around_statements_highlighting=none
+resharper_cpp_clang_tidy_hicpp_deprecated_headers_highlighting=none
+resharper_cpp_clang_tidy_hicpp_exception_baseclass_highlighting=suggestion
+resharper_cpp_clang_tidy_hicpp_explicit_conversions_highlighting=none
+resharper_cpp_clang_tidy_hicpp_function_size_highlighting=none
+resharper_cpp_clang_tidy_hicpp_invalid_access_moved_highlighting=none
+resharper_cpp_clang_tidy_hicpp_member_init_highlighting=none
+resharper_cpp_clang_tidy_hicpp_move_const_arg_highlighting=none
+resharper_cpp_clang_tidy_hicpp_multiway_paths_covered_highlighting=warning
+resharper_cpp_clang_tidy_hicpp_named_parameter_highlighting=none
+resharper_cpp_clang_tidy_hicpp_new_delete_operators_highlighting=none
+resharper_cpp_clang_tidy_hicpp_noexcept_move_highlighting=none
+resharper_cpp_clang_tidy_hicpp_no_array_decay_highlighting=none
+resharper_cpp_clang_tidy_hicpp_no_assembler_highlighting=none
+resharper_cpp_clang_tidy_hicpp_no_malloc_highlighting=none
+resharper_cpp_clang_tidy_hicpp_signed_bitwise_highlighting=none
+resharper_cpp_clang_tidy_hicpp_special_member_functions_highlighting=none
+resharper_cpp_clang_tidy_hicpp_static_assert_highlighting=none
+resharper_cpp_clang_tidy_hicpp_undelegated_constructor_highlighting=none
+resharper_cpp_clang_tidy_hicpp_uppercase_literal_suffix_highlighting=none
+resharper_cpp_clang_tidy_hicpp_use_auto_highlighting=none
+resharper_cpp_clang_tidy_hicpp_use_emplace_highlighting=none
+resharper_cpp_clang_tidy_hicpp_use_equals_default_highlighting=none
+resharper_cpp_clang_tidy_hicpp_use_equals_delete_highlighting=none
+resharper_cpp_clang_tidy_hicpp_use_noexcept_highlighting=none
+resharper_cpp_clang_tidy_hicpp_use_nullptr_highlighting=none
+resharper_cpp_clang_tidy_hicpp_use_override_highlighting=none
+resharper_cpp_clang_tidy_hicpp_vararg_highlighting=none
+resharper_cpp_clang_tidy_highlighting_highlighting=suggestion
+resharper_cpp_clang_tidy_linuxkernel_must_check_errs_highlighting=warning
+resharper_cpp_clang_tidy_llvmlibc_callee_namespace_highlighting=none
+resharper_cpp_clang_tidy_llvmlibc_implementation_in_namespace_highlighting=none
+resharper_cpp_clang_tidy_llvmlibc_restrict_system_libc_headers_highlighting=none
+resharper_cpp_clang_tidy_llvm_else_after_return_highlighting=none
+resharper_cpp_clang_tidy_llvm_header_guard_highlighting=none
+resharper_cpp_clang_tidy_llvm_include_order_highlighting=none
+resharper_cpp_clang_tidy_llvm_namespace_comment_highlighting=none
+resharper_cpp_clang_tidy_llvm_prefer_isa_or_dyn_cast_in_conditionals_highlighting=none
+resharper_cpp_clang_tidy_llvm_prefer_register_over_unsigned_highlighting=suggestion
+resharper_cpp_clang_tidy_llvm_qualified_auto_highlighting=none
+resharper_cpp_clang_tidy_llvm_twine_local_highlighting=none
+resharper_cpp_clang_tidy_misc_definitions_in_headers_highlighting=none
+resharper_cpp_clang_tidy_misc_misplaced_const_highlighting=warning
+resharper_cpp_clang_tidy_misc_new_delete_overloads_highlighting=warning
+resharper_cpp_clang_tidy_misc_non_copyable_objects_highlighting=warning
+resharper_cpp_clang_tidy_misc_non_private_member_variables_in_classes_highlighting=none
+resharper_cpp_clang_tidy_misc_no_recursion_highlighting=none
+resharper_cpp_clang_tidy_misc_redundant_expression_highlighting=warning
+resharper_cpp_clang_tidy_misc_static_assert_highlighting=suggestion
+resharper_cpp_clang_tidy_misc_throw_by_value_catch_by_reference_highlighting=warning
+resharper_cpp_clang_tidy_misc_unconventional_assign_operator_highlighting=warning
+resharper_cpp_clang_tidy_misc_uniqueptr_reset_release_highlighting=suggestion
+resharper_cpp_clang_tidy_misc_unused_alias_decls_highlighting=suggestion
+resharper_cpp_clang_tidy_misc_unused_parameters_highlighting=none
+resharper_cpp_clang_tidy_misc_unused_using_decls_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_avoid_bind_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_avoid_c_arrays_highlighting=none
+resharper_cpp_clang_tidy_modernize_concat_nested_namespaces_highlighting=none
+resharper_cpp_clang_tidy_modernize_deprecated_headers_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_deprecated_ios_base_aliases_highlighting=warning
+resharper_cpp_clang_tidy_modernize_loop_convert_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_make_shared_highlighting=none
+resharper_cpp_clang_tidy_modernize_make_unique_highlighting=none
+resharper_cpp_clang_tidy_modernize_pass_by_value_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_raw_string_literal_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_redundant_void_arg_highlighting=none
+resharper_cpp_clang_tidy_modernize_replace_auto_ptr_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_replace_disallow_copy_and_assign_macro_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_replace_random_shuffle_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_return_braced_init_list_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_shrink_to_fit_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_unary_static_assert_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_auto_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_bool_literals_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_default_member_init_highlighting=none
+resharper_cpp_clang_tidy_modernize_use_emplace_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_equals_default_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_equals_delete_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_nodiscard_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_noexcept_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_nullptr_highlighting=none
+resharper_cpp_clang_tidy_modernize_use_override_highlighting=none
+resharper_cpp_clang_tidy_modernize_use_trailing_return_type_highlighting=none
+resharper_cpp_clang_tidy_modernize_use_transparent_functors_highlighting=suggestion
+resharper_cpp_clang_tidy_modernize_use_uncaught_exceptions_highlighting=warning
+resharper_cpp_clang_tidy_modernize_use_using_highlighting=none
+resharper_cpp_clang_tidy_mpi_buffer_deref_highlighting=warning
+resharper_cpp_clang_tidy_mpi_type_mismatch_highlighting=warning
+resharper_cpp_clang_tidy_objc_avoid_nserror_init_highlighting=warning
+resharper_cpp_clang_tidy_objc_dealloc_in_category_highlighting=warning
+resharper_cpp_clang_tidy_objc_forbidden_subclassing_highlighting=warning
+resharper_cpp_clang_tidy_objc_missing_hash_highlighting=warning
+resharper_cpp_clang_tidy_objc_nsinvocation_argument_lifetime_highlighting=warning
+resharper_cpp_clang_tidy_objc_property_declaration_highlighting=warning
+resharper_cpp_clang_tidy_objc_super_self_highlighting=warning
+resharper_cpp_clang_tidy_openmp_exception_escape_highlighting=warning
+resharper_cpp_clang_tidy_openmp_use_default_none_highlighting=warning
+resharper_cpp_clang_tidy_performance_faster_string_find_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_for_range_copy_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_implicit_conversion_in_loop_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_inefficient_algorithm_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_inefficient_string_concatenation_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_inefficient_vector_operation_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_move_constructor_init_highlighting=warning
+resharper_cpp_clang_tidy_performance_move_const_arg_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_noexcept_move_constructor_highlighting=none
+resharper_cpp_clang_tidy_performance_no_automatic_move_highlighting=warning
+resharper_cpp_clang_tidy_performance_no_int_to_ptr_highlighting=warning
+resharper_cpp_clang_tidy_performance_trivially_destructible_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_type_promotion_in_math_fn_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_unnecessary_copy_initialization_highlighting=suggestion
+resharper_cpp_clang_tidy_performance_unnecessary_value_param_highlighting=suggestion
+resharper_cpp_clang_tidy_portability_restrict_system_includes_highlighting=none
+resharper_cpp_clang_tidy_portability_simd_intrinsics_highlighting=none
+resharper_cpp_clang_tidy_readability_avoid_const_params_in_decls_highlighting=none
+resharper_cpp_clang_tidy_readability_braces_around_statements_highlighting=none
+resharper_cpp_clang_tidy_readability_const_return_type_highlighting=none
+resharper_cpp_clang_tidy_readability_container_size_empty_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_convert_member_functions_to_static_highlighting=none
+resharper_cpp_clang_tidy_readability_delete_null_pointer_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_else_after_return_highlighting=none
+resharper_cpp_clang_tidy_readability_function_cognitive_complexity_highlighting=none
+resharper_cpp_clang_tidy_readability_function_size_highlighting=none
+resharper_cpp_clang_tidy_readability_identifier_naming_highlighting=none
+resharper_cpp_clang_tidy_readability_implicit_bool_conversion_highlighting=none
+resharper_cpp_clang_tidy_readability_inconsistent_declaration_parameter_name_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_isolate_declaration_highlighting=none
+resharper_cpp_clang_tidy_readability_magic_numbers_highlighting=none
+resharper_cpp_clang_tidy_readability_make_member_function_const_highlighting=none
+resharper_cpp_clang_tidy_readability_misleading_indentation_highlighting=none
+resharper_cpp_clang_tidy_readability_misplaced_array_index_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_named_parameter_highlighting=none
+resharper_cpp_clang_tidy_readability_non_const_parameter_highlighting=none
+resharper_cpp_clang_tidy_readability_qualified_auto_highlighting=none
+resharper_cpp_clang_tidy_readability_redundant_access_specifiers_highlighting=none
+resharper_cpp_clang_tidy_readability_redundant_control_flow_highlighting=none
+resharper_cpp_clang_tidy_readability_redundant_declaration_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_redundant_function_ptr_dereference_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_redundant_member_init_highlighting=none
+resharper_cpp_clang_tidy_readability_redundant_preprocessor_highlighting=warning
+resharper_cpp_clang_tidy_readability_redundant_smartptr_get_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_redundant_string_cstr_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_redundant_string_init_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_simplify_boolean_expr_highlighting=none
+resharper_cpp_clang_tidy_readability_simplify_subscript_expr_highlighting=warning
+resharper_cpp_clang_tidy_readability_static_accessed_through_instance_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_static_definition_in_anonymous_namespace_highlighting=none
+resharper_cpp_clang_tidy_readability_string_compare_highlighting=warning
+resharper_cpp_clang_tidy_readability_suspicious_call_argument_highlighting=warning
+resharper_cpp_clang_tidy_readability_uniqueptr_delete_release_highlighting=suggestion
+resharper_cpp_clang_tidy_readability_uppercase_literal_suffix_highlighting=none
+resharper_cpp_clang_tidy_readability_use_anyofallof_highlighting=suggestion
+resharper_cpp_clang_tidy_zircon_temporary_objects_highlighting=none
+resharper_cpp_class_can_be_final_highlighting=hint
+resharper_cpp_class_disallow_lazy_merging_highlighting=warning
+resharper_cpp_class_is_incomplete_highlighting=warning
+resharper_cpp_class_needs_constructor_because_of_uninitialized_member_highlighting=warning
+resharper_cpp_class_never_used_highlighting=warning
+resharper_cpp_compile_time_constant_can_be_replaced_with_boolean_constant_highlighting=suggestion
+resharper_cpp_const_parameter_in_declaration_highlighting=suggestion
+resharper_cpp_const_value_function_return_type_highlighting=suggestion
+resharper_cpp_coroutine_call_resolve_error_highlighting=warning
+resharper_cpp_cv_qualifier_can_not_be_applied_to_reference_highlighting=warning
+resharper_cpp_c_style_cast_highlighting=suggestion
+resharper_cpp_declaration_hides_local_highlighting=warning
+resharper_cpp_declaration_hides_uncaptured_local_highlighting=hint
+resharper_cpp_declaration_specifier_without_declarators_highlighting=warning
+resharper_cpp_declarator_disambiguated_as_function_highlighting=warning
+resharper_cpp_declarator_never_used_highlighting=warning
+resharper_cpp_declarator_used_before_initialization_highlighting=error
+resharper_cpp_defaulted_special_member_function_is_implicitly_deleted_highlighting=warning
+resharper_cpp_default_case_not_handled_in_switch_statement_highlighting=warning
+resharper_cpp_default_initialization_with_no_user_constructor_highlighting=warning
+resharper_cpp_default_is_used_as_identifier_highlighting=warning
+resharper_cpp_deleting_void_pointer_highlighting=warning
+resharper_cpp_dependent_template_without_template_keyword_highlighting=warning
+resharper_cpp_dependent_type_without_typename_keyword_highlighting=warning
+resharper_cpp_deprecated_entity_highlighting=warning
+resharper_cpp_deprecated_register_storage_class_specifier_highlighting=warning
+resharper_cpp_dereference_operator_limit_exceeded_highlighting=warning
+resharper_cpp_discarded_postfix_operator_result_highlighting=suggestion
+resharper_cpp_doxygen_syntax_error_highlighting=warning
+resharper_cpp_doxygen_undocumented_parameter_highlighting=suggestion
+resharper_cpp_doxygen_unresolved_reference_highlighting=warning
+resharper_cpp_empty_declaration_highlighting=warning
+resharper_cpp_enforce_cv_qualifiers_order_highlighting=none
+resharper_cpp_enforce_cv_qualifiers_placement_highlighting=none
+resharper_cpp_enforce_do_statement_braces_highlighting=none
+resharper_cpp_enforce_for_statement_braces_highlighting=none
+resharper_cpp_enforce_function_declaration_style_highlighting=none
+resharper_cpp_enforce_if_statement_braces_highlighting=none
+resharper_cpp_enforce_nested_namespaces_style_highlighting=hint
+resharper_cpp_enforce_overriding_destructor_style_highlighting=suggestion
+resharper_cpp_enforce_overriding_function_style_highlighting=suggestion
+resharper_cpp_enforce_type_alias_code_style_highlighting=none
+resharper_cpp_enforce_while_statement_braces_highlighting=none
+resharper_cpp_entity_assigned_but_no_read_highlighting=warning
+resharper_cpp_entity_used_only_in_unevaluated_context_highlighting=warning
+resharper_cpp_enumerator_never_used_highlighting=warning
+resharper_cpp_equal_operands_in_binary_expression_highlighting=warning
+resharper_cpp_explicit_specialization_in_non_namespace_scope_highlighting=warning
+resharper_cpp_expression_without_side_effects_highlighting=warning
+resharper_cpp_final_function_in_final_class_highlighting=suggestion
+resharper_cpp_final_non_overriding_virtual_function_highlighting=suggestion
+resharper_cpp_for_loop_can_be_replaced_with_while_highlighting=suggestion
+resharper_cpp_functional_style_cast_highlighting=suggestion
+resharper_cpp_function_doesnt_return_value_highlighting=warning
+resharper_cpp_function_is_not_implemented_highlighting=warning
+resharper_cpp_header_has_been_already_included_highlighting=hint
+resharper_cpp_hidden_function_highlighting=warning
+resharper_cpp_hiding_function_highlighting=warning
+resharper_cpp_identical_operands_in_binary_expression_highlighting=warning
+resharper_cpp_if_can_be_replaced_by_constexpr_if_highlighting=suggestion
+resharper_cpp_implicit_default_constructor_not_available_highlighting=warning
+resharper_cpp_incompatible_pointer_conversion_highlighting=warning
+resharper_cpp_incomplete_switch_statement_highlighting=warning
+resharper_cpp_inconsistent_naming_highlighting=hint
+resharper_cpp_incorrect_blank_lines_near_braces_highlighting=none
+resharper_cpp_initialized_value_is_always_rewritten_highlighting=warning
+resharper_cpp_integral_to_pointer_conversion_highlighting=warning
+resharper_cpp_invalid_line_continuation_highlighting=warning
+resharper_cpp_join_declaration_and_assignment_highlighting=suggestion
+resharper_cpp_lambda_capture_never_used_highlighting=warning
+resharper_cpp_local_variable_may_be_const_highlighting=suggestion
+resharper_cpp_local_variable_might_not_be_initialized_highlighting=warning
+resharper_cpp_local_variable_with_non_trivial_dtor_is_never_used_highlighting=none
+resharper_cpp_long_float_highlighting=warning
+resharper_cpp_member_function_may_be_const_highlighting=suggestion
+resharper_cpp_member_function_may_be_static_highlighting=suggestion
+resharper_cpp_member_initializers_order_highlighting=suggestion
+resharper_cpp_mismatched_class_tags_highlighting=warning
+resharper_cpp_missing_blank_lines_highlighting=none
+resharper_cpp_missing_include_guard_highlighting=warning
+resharper_cpp_missing_indent_highlighting=none
+resharper_cpp_missing_keyword_throw_highlighting=warning
+resharper_cpp_missing_linebreak_highlighting=none
+resharper_cpp_missing_space_highlighting=none
+resharper_cpp_ms_ext_address_of_class_r_value_highlighting=warning
+resharper_cpp_ms_ext_binding_r_value_to_lvalue_reference_highlighting=warning
+resharper_cpp_ms_ext_copy_elision_in_copy_init_declarator_highlighting=warning
+resharper_cpp_ms_ext_double_user_conversion_in_copy_init_highlighting=warning
+resharper_cpp_ms_ext_not_initialized_static_const_local_var_highlighting=warning
+resharper_cpp_ms_ext_reinterpret_cast_from_nullptr_highlighting=warning
+resharper_cpp_multiple_spaces_highlighting=none
+resharper_cpp_must_be_public_virtual_to_implement_interface_highlighting=warning
+resharper_cpp_mutable_specifier_on_reference_member_highlighting=warning
+resharper_cpp_nodiscard_function_without_return_value_highlighting=warning
+resharper_cpp_non_exception_safe_resource_acquisition_highlighting=hint
+resharper_cpp_non_explicit_conversion_operator_highlighting=hint
+resharper_cpp_non_explicit_converting_constructor_highlighting=hint
+resharper_cpp_non_inline_function_definition_in_header_file_highlighting=warning
+resharper_cpp_non_inline_variable_definition_in_header_file_highlighting=warning
+resharper_cpp_not_all_paths_return_value_highlighting=warning
+resharper_cpp_no_discard_expression_highlighting=warning
+resharper_cpp_object_member_might_not_be_initialized_highlighting=warning
+resharper_cpp_outdent_is_off_prev_level_highlighting=none
+resharper_cpp_out_parameter_must_be_written_highlighting=warning
+resharper_cpp_parameter_may_be_const_highlighting=hint
+resharper_cpp_parameter_may_be_const_ptr_or_ref_highlighting=suggestion
+resharper_cpp_parameter_names_mismatch_highlighting=hint
+resharper_cpp_parameter_never_used_highlighting=hint
+resharper_cpp_parameter_value_is_reassigned_highlighting=warning
+resharper_cpp_pointer_conversion_drops_qualifiers_highlighting=warning
+resharper_cpp_pointer_to_integral_conversion_highlighting=warning
+resharper_cpp_polymorphic_class_with_non_virtual_public_destructor_highlighting=warning
+resharper_cpp_possibly_erroneous_empty_statements_highlighting=warning
+resharper_cpp_possibly_uninitialized_member_highlighting=warning
+resharper_cpp_possibly_unintended_object_slicing_highlighting=warning
+resharper_cpp_precompiled_header_is_not_included_highlighting=error
+resharper_cpp_precompiled_header_not_found_highlighting=error
+resharper_cpp_printf_bad_format_highlighting=warning
+resharper_cpp_printf_extra_arg_highlighting=warning
+resharper_cpp_printf_missed_arg_highlighting=error
+resharper_cpp_printf_risky_format_highlighting=warning
+resharper_cpp_private_special_member_function_is_not_implemented_highlighting=warning
+resharper_cpp_range_based_for_incompatible_reference_highlighting=warning
+resharper_cpp_redefinition_of_default_argument_in_override_function_highlighting=warning
+resharper_cpp_redundant_access_specifier_highlighting=hint
+resharper_cpp_redundant_base_class_access_specifier_highlighting=hint
+resharper_cpp_redundant_blank_lines_highlighting=none
+resharper_cpp_redundant_boolean_expression_argument_highlighting=warning
+resharper_cpp_redundant_cast_expression_highlighting=hint
+resharper_cpp_redundant_const_specifier_highlighting=hint
+resharper_cpp_redundant_control_flow_jump_highlighting=hint
+resharper_cpp_redundant_elaborated_type_specifier_highlighting=hint
+resharper_cpp_redundant_else_keyword_highlighting=hint
+resharper_cpp_redundant_else_keyword_inside_compound_statement_highlighting=hint
+resharper_cpp_redundant_empty_declaration_highlighting=hint
+resharper_cpp_redundant_empty_statement_highlighting=hint
+resharper_cpp_redundant_explicit_template_arguments_highlighting=hint
+resharper_cpp_redundant_inline_specifier_highlighting=hint
+resharper_cpp_redundant_lambda_parameter_list_highlighting=hint
+resharper_cpp_redundant_linebreak_highlighting=none
+resharper_cpp_redundant_member_initializer_highlighting=suggestion
+resharper_cpp_redundant_namespace_definition_highlighting=suggestion
+resharper_cpp_redundant_parentheses_highlighting=hint
+resharper_cpp_redundant_qualifier_highlighting=hint
+resharper_cpp_redundant_space_highlighting=none
+resharper_cpp_redundant_static_specifier_on_member_allocation_function_highlighting=hint
+resharper_cpp_redundant_template_keyword_highlighting=warning
+resharper_cpp_redundant_typename_keyword_highlighting=warning
+resharper_cpp_redundant_void_argument_list_highlighting=suggestion
+resharper_cpp_reinterpret_cast_from_void_ptr_highlighting=suggestion
+resharper_cpp_remove_redundant_braces_highlighting=none
+resharper_cpp_replace_memset_with_zero_initialization_highlighting=suggestion
+resharper_cpp_replace_tie_with_structured_binding_highlighting=suggestion
+resharper_cpp_return_no_value_in_non_void_function_highlighting=warning
+resharper_cpp_smart_pointer_vs_make_function_highlighting=suggestion
+resharper_cpp_some_object_members_might_not_be_initialized_highlighting=warning
+resharper_cpp_special_function_without_noexcept_specification_highlighting=warning
+resharper_cpp_static_data_member_in_unnamed_struct_highlighting=warning
+resharper_cpp_static_specifier_on_anonymous_namespace_member_highlighting=suggestion
+resharper_cpp_string_literal_to_char_pointer_conversion_highlighting=warning
+resharper_cpp_syntax_warning_highlighting=warning
+resharper_cpp_tabs_and_spaces_mismatch_highlighting=none
+resharper_cpp_tabs_are_disallowed_highlighting=none
+resharper_cpp_tabs_outside_indent_highlighting=none
+resharper_cpp_template_parameter_shadowing_highlighting=warning
+resharper_cpp_this_arg_member_func_delegate_ctor_is_unsuported_by_dot_net_core_highlighting=none
+resharper_cpp_throw_expression_can_be_replaced_with_rethrow_highlighting=warning
+resharper_cpp_too_wide_scope_highlighting=suggestion
+resharper_cpp_too_wide_scope_init_statement_highlighting=hint
+resharper_cpp_type_alias_never_used_highlighting=warning
+resharper_cpp_ue4_blueprint_callable_function_may_be_const_highlighting=hint
+resharper_cpp_ue4_blueprint_callable_function_may_be_static_highlighting=hint
+resharper_cpp_ue4_coding_standard_naming_violation_warning_highlighting=hint
+resharper_cpp_ue4_coding_standard_u_class_naming_violation_error_highlighting=error
+resharper_cpp_ue4_probable_memory_issues_with_u_objects_in_container_highlighting=warning
+resharper_cpp_ue4_probable_memory_issues_with_u_object_highlighting=warning
+resharper_cpp_ue_blueprint_callable_function_unused_highlighting=warning
+resharper_cpp_ue_blueprint_implementable_event_not_implemented_highlighting=warning
+resharper_cpp_ue_incorrect_engine_directory_highlighting=error
+resharper_cpp_ue_non_existent_input_action_highlighting=warning
+resharper_cpp_ue_non_existent_input_axis_highlighting=warning
+resharper_cpp_ue_source_file_without_predefined_macros_highlighting=warning
+resharper_cpp_ue_source_file_without_standard_library_highlighting=error
+resharper_cpp_ue_version_file_doesnt_exist_highlighting=error
+resharper_cpp_uninitialized_dependent_base_class_highlighting=warning
+resharper_cpp_uninitialized_non_static_data_member_highlighting=warning
+resharper_cpp_union_member_of_reference_type_highlighting=warning
+resharper_cpp_unnamed_namespace_in_header_file_highlighting=warning
+resharper_cpp_unnecessary_whitespace_highlighting=none
+resharper_cpp_unreachable_code_highlighting=warning
+resharper_cpp_unsigned_zero_comparison_highlighting=warning
+resharper_cpp_unused_include_directive_highlighting=warning
+resharper_cpp_user_defined_literal_suffix_does_not_start_with_underscore_highlighting=warning
+resharper_cpp_use_algorithm_with_count_highlighting=suggestion
+resharper_cpp_use_associative_contains_highlighting=suggestion
+resharper_cpp_use_auto_for_numeric_highlighting=hint
+resharper_cpp_use_auto_highlighting=hint
+resharper_cpp_use_elements_view_highlighting=suggestion
+resharper_cpp_use_erase_algorithm_highlighting=suggestion
+resharper_cpp_use_familiar_template_syntax_for_generic_lambdas_highlighting=suggestion
+resharper_cpp_use_range_algorithm_highlighting=suggestion
+resharper_cpp_use_std_size_highlighting=suggestion
+resharper_cpp_use_structured_binding_highlighting=hint
+resharper_cpp_use_type_trait_alias_highlighting=suggestion
+resharper_cpp_using_result_of_assignment_as_condition_highlighting=warning
+resharper_cpp_u_function_macro_call_has_no_effect_highlighting=warning
+resharper_cpp_u_property_macro_call_has_no_effect_highlighting=warning
+resharper_cpp_variable_can_be_made_constexpr_highlighting=suggestion
+resharper_cpp_virtual_function_call_inside_ctor_highlighting=warning
+resharper_cpp_virtual_function_in_final_class_highlighting=warning
+resharper_cpp_volatile_parameter_in_declaration_highlighting=suggestion
+resharper_cpp_wrong_includes_order_highlighting=hint
+resharper_cpp_wrong_indent_size_highlighting=none
+resharper_cpp_wrong_slashes_in_include_directive_highlighting=hint
+resharper_cpp_zero_constant_can_be_replaced_with_nullptr_highlighting=suggestion
+resharper_cpp_zero_valued_expression_used_as_null_pointer_highlighting=warning
+resharper_create_specialized_overload_highlighting=hint
+resharper_css_browser_compatibility_highlighting=warning
+resharper_css_caniuse_feature_requires_prefix_highlighting=hint
+resharper_css_caniuse_unsupported_feature_highlighting=hint
+resharper_css_not_resolved_highlighting=error
+resharper_css_obsolete_highlighting=hint
+resharper_css_property_does_not_override_vendor_property_highlighting=warning
+resharper_cyclic_reference_comment_highlighting=none
+resharper_c_declaration_with_implicit_int_type_highlighting=warning
+resharper_c_sharp_build_cs_invalid_module_name_highlighting=warning
+resharper_c_sharp_missing_plugin_dependency_highlighting=warning
+resharper_declaration_hides_highlighting=hint
+resharper_declaration_is_empty_highlighting=warning
+resharper_declaration_visibility_error_highlighting=error
+resharper_default_value_attribute_for_optional_parameter_highlighting=warning
+resharper_deleting_non_qualified_reference_highlighting=error
+resharper_dl_tag_contains_non_dt_or_dd_elements_highlighting=hint
+resharper_double_colons_expected_highlighting=error
+resharper_double_colons_preferred_highlighting=suggestion
+resharper_double_negation_in_pattern_highlighting=suggestion
+resharper_double_negation_of_boolean_highlighting=warning
+resharper_double_negation_operator_highlighting=suggestion
+resharper_duplicate_identifier_error_highlighting=error
+resharper_duplicate_reference_comment_highlighting=warning
+resharper_duplicate_resource_highlighting=warning
+resharper_duplicating_local_declaration_highlighting=warning
+resharper_duplicating_parameter_declaration_error_highlighting=error
+resharper_duplicating_property_declaration_error_highlighting=error
+resharper_duplicating_property_declaration_highlighting=warning
+resharper_duplicating_switch_label_highlighting=warning
+resharper_dynamic_shift_right_op_is_not_int_highlighting=warning
+resharper_elided_trailing_element_highlighting=warning
+resharper_empty_constructor_highlighting=warning
+resharper_empty_destructor_highlighting=warning
+resharper_empty_embedded_statement_highlighting=warning
+resharper_empty_for_statement_highlighting=warning
+resharper_empty_general_catch_clause_highlighting=warning
+resharper_empty_namespace_highlighting=warning
+resharper_empty_object_property_declaration_highlighting=error
+resharper_empty_return_value_for_type_annotated_function_highlighting=warning
+resharper_empty_statement_highlighting=warning
+resharper_empty_title_tag_highlighting=hint
+resharper_enforce_do_while_statement_braces_highlighting=none
+resharper_enforce_fixed_statement_braces_highlighting=none
+resharper_enforce_foreach_statement_braces_highlighting=none
+resharper_enforce_for_statement_braces_highlighting=none
+resharper_enforce_if_statement_braces_highlighting=none
+resharper_enforce_lock_statement_braces_highlighting=none
+resharper_enforce_using_statement_braces_highlighting=none
+resharper_enforce_while_statement_braces_highlighting=none
+resharper_entity_name_captured_only_global_highlighting=warning
+resharper_entity_name_captured_only_local_highlighting=warning
+resharper_enumerable_sum_in_explicit_unchecked_context_highlighting=warning
+resharper_enum_underlying_type_is_int_highlighting=warning
+resharper_equal_expression_comparison_highlighting=warning
+resharper_error_in_xml_doc_reference_highlighting=error
+resharper_es6_feature_highlighting=error
+resharper_es7_feature_highlighting=error
+resharper_eval_arguments_name_error_highlighting=error
+resharper_event_never_invoked_global_highlighting=suggestion
+resharper_event_never_subscribed_to_global_highlighting=suggestion
+resharper_event_never_subscribed_to_local_highlighting=suggestion
+resharper_event_unsubscription_via_anonymous_delegate_highlighting=warning
+resharper_experimental_feature_highlighting=error
+resharper_explicit_caller_info_argument_highlighting=warning
+resharper_expression_is_always_const_highlighting=warning
+resharper_expression_is_always_null_highlighting=warning
+resharper_field_can_be_made_read_only_global_highlighting=suggestion
+resharper_field_can_be_made_read_only_local_highlighting=suggestion
+resharper_field_hides_interface_property_with_default_implementation_highlighting=warning
+resharper_foreach_can_be_converted_to_query_using_another_get_enumerator_highlighting=hint
+resharper_foreach_can_be_partly_converted_to_query_using_another_get_enumerator_highlighting=hint
+resharper_format_string_placeholders_mismatch_highlighting=warning
+resharper_format_string_problem_highlighting=warning
+resharper_for_can_be_converted_to_foreach_highlighting=suggestion
+resharper_for_statement_condition_is_true_highlighting=warning
+resharper_functions_used_before_declared_highlighting=none
+resharper_function_complexity_overflow_highlighting=none
+resharper_function_never_returns_highlighting=warning
+resharper_function_parameter_named_arguments_highlighting=warning
+resharper_function_recursive_on_all_paths_highlighting=warning
+resharper_function_used_out_of_scope_highlighting=warning
+resharper_gc_suppress_finalize_for_type_without_destructor_highlighting=warning
+resharper_generic_enumerator_not_disposed_highlighting=warning
+resharper_heuristically_unreachable_code_highlighting=warning
+resharper_heuristic_unreachable_code_highlighting=warning
+resharper_hex_color_value_with_alpha_highlighting=error
+resharper_html_attributes_quotes_highlighting=hint
+resharper_html_attribute_not_resolved_highlighting=warning
+resharper_html_attribute_value_not_resolved_highlighting=warning
+resharper_html_dead_code_highlighting=warning
+resharper_html_event_not_resolved_highlighting=warning
+resharper_html_id_duplication_highlighting=warning
+resharper_html_id_not_resolved_highlighting=warning
+resharper_html_obsolete_highlighting=warning
+resharper_html_path_error_highlighting=warning
+resharper_html_tag_not_closed_highlighting=error
+resharper_html_tag_not_resolved_highlighting=warning
+resharper_html_tag_should_be_self_closed_highlighting=warning
+resharper_html_tag_should_not_be_self_closed_highlighting=warning
+resharper_html_warning_highlighting=warning
+resharper_identifier_typo_highlighting=suggestion
+resharper_implicit_any_error_highlighting=error
+resharper_implicit_any_type_warning_highlighting=warning
+resharper_import_keyword_not_with_invocation_highlighting=error
+resharper_inactive_preprocessor_branch_highlighting=warning
+resharper_inconsistently_synchronized_field_highlighting=warning
+resharper_inconsistent_function_returns_highlighting=warning
+resharper_inconsistent_naming_highlighting=warning
+resharper_inconsistent_order_of_locks_highlighting=warning
+resharper_incorrect_blank_lines_near_braces_highlighting=none
+resharper_incorrect_operand_in_type_of_comparison_highlighting=warning
+resharper_incorrect_triple_slash_location_highlighting=warning
+resharper_indexing_by_invalid_range_highlighting=warning
+resharper_inheritdoc_consider_usage_highlighting=none
+resharper_inheritdoc_invalid_usage_highlighting=warning
+resharper_inline_out_variable_declaration_highlighting=suggestion
+resharper_inline_temporary_variable_highlighting=hint
+resharper_internal_module_highlighting=suggestion
+resharper_internal_or_private_member_not_documented_highlighting=none
+resharper_interpolated_string_expression_is_not_i_formattable_highlighting=warning
+resharper_introduce_optional_parameters_global_highlighting=suggestion
+resharper_introduce_optional_parameters_local_highlighting=suggestion
+resharper_introduce_variable_to_apply_guard_highlighting=hint
+resharper_int_division_by_zero_highlighting=warning
+resharper_int_variable_overflow_highlighting=warning
+resharper_int_variable_overflow_in_checked_context_highlighting=warning
+resharper_int_variable_overflow_in_unchecked_context_highlighting=warning
+resharper_invalid_attribute_value_highlighting=warning
+resharper_invalid_json_syntax_highlighting=error
+resharper_invalid_task_element_highlighting=none
+resharper_invalid_value_highlighting=error
+resharper_invalid_value_type_highlighting=warning
+resharper_invalid_xml_doc_comment_highlighting=warning
+resharper_invert_condition_1_highlighting=hint
+resharper_invert_if_highlighting=hint
+resharper_invocation_is_skipped_highlighting=hint
+resharper_invocation_of_non_function_highlighting=warning
+resharper_invoked_expression_maybe_non_function_highlighting=warning
+resharper_invoke_as_extension_method_highlighting=suggestion
+resharper_is_expression_always_false_highlighting=warning
+resharper_is_expression_always_true_highlighting=warning
+resharper_iterator_method_result_is_ignored_highlighting=warning
+resharper_iterator_never_returns_highlighting=warning
+resharper_join_declaration_and_initializer_highlighting=suggestion
+resharper_join_declaration_and_initializer_js_highlighting=suggestion
+resharper_join_null_check_with_usage_highlighting=suggestion
+resharper_join_null_check_with_usage_when_possible_highlighting=none
+resharper_json_validation_failed_highlighting=error
+resharper_js_path_not_found_highlighting=error
+resharper_js_unreachable_code_highlighting=warning
+resharper_jump_must_be_in_loop_highlighting=warning
+resharper_label_or_semicolon_expected_highlighting=error
+resharper_lambda_expression_can_be_made_static_highlighting=none
+resharper_lambda_expression_must_be_static_highlighting=suggestion
+resharper_lambda_highlighting=suggestion
+resharper_lambda_should_not_capture_context_highlighting=warning
+resharper_less_specific_overload_than_main_signature_highlighting=warning
+resharper_lexical_declaration_needs_block_highlighting=error
+resharper_localizable_element_highlighting=warning
+resharper_local_function_can_be_made_static_highlighting=none
+resharper_local_function_hides_method_highlighting=warning
+resharper_local_function_redefined_later_highlighting=warning
+resharper_local_variable_hides_member_highlighting=warning
+resharper_long_literal_ending_lower_l_highlighting=warning
+resharper_loop_can_be_converted_to_query_highlighting=hint
+resharper_loop_can_be_partly_converted_to_query_highlighting=none
+resharper_loop_variable_is_never_changed_inside_loop_highlighting=warning
+resharper_l_value_is_expected_highlighting=error
+resharper_markup_attribute_typo_highlighting=suggestion
+resharper_markup_text_typo_highlighting=suggestion
+resharper_math_abs_method_is_redundant_highlighting=warning
+resharper_math_clamp_min_greater_than_max_highlighting=warning
+resharper_meaningless_default_parameter_value_highlighting=warning
+resharper_member_can_be_internal_highlighting=none
+resharper_member_can_be_made_static_global_highlighting=hint
+resharper_member_can_be_made_static_local_highlighting=hint
+resharper_member_can_be_private_global_highlighting=suggestion
+resharper_member_can_be_private_local_highlighting=suggestion
+resharper_member_can_be_protected_global_highlighting=suggestion
+resharper_member_can_be_protected_local_highlighting=suggestion
+resharper_member_hides_interface_member_with_default_implementation_highlighting=warning
+resharper_member_hides_static_from_outer_class_highlighting=warning
+resharper_member_initializer_value_ignored_highlighting=warning
+resharper_merge_and_pattern_highlighting=suggestion
+resharper_merge_cast_with_type_check_highlighting=suggestion
+resharper_merge_conditional_expression_highlighting=suggestion
+resharper_merge_conditional_expression_when_possible_highlighting=none
+resharper_merge_into_logical_pattern_highlighting=hint
+resharper_merge_into_negated_pattern_highlighting=hint
+resharper_merge_into_pattern_highlighting=suggestion
+resharper_merge_nested_property_patterns_highlighting=suggestion
+resharper_merge_sequential_checks_highlighting=hint
+resharper_merge_sequential_checks_when_possible_highlighting=none
+resharper_method_has_async_overload_highlighting=suggestion
+resharper_method_has_async_overload_with_cancellation_highlighting=suggestion
+resharper_method_overload_with_optional_parameter_highlighting=warning
+resharper_method_safe_this_highlighting=suggestion
+resharper_method_supports_cancellation_highlighting=suggestion
+resharper_missing_alt_attribute_in_img_tag_highlighting=hint
+resharper_missing_attribute_highlighting=warning
+resharper_missing_blank_lines_highlighting=none
+resharper_missing_body_tag_highlighting=warning
+resharper_missing_has_own_property_in_foreach_highlighting=warning
+resharper_missing_head_and_body_tags_highlighting=warning
+resharper_missing_head_tag_highlighting=warning
+resharper_missing_indent_highlighting=none
+resharper_missing_linebreak_highlighting=none
+resharper_missing_space_highlighting=none
+resharper_missing_title_tag_highlighting=hint
+resharper_misuse_of_owner_function_this_highlighting=warning
+resharper_more_specific_foreach_variable_type_available_highlighting=suggestion
+resharper_more_specific_signature_after_less_specific_highlighting=warning
+resharper_move_to_existing_positional_deconstruction_pattern_highlighting=hint
+resharper_multiple_declarations_in_foreach_highlighting=error
+resharper_multiple_nullable_attributes_usage_highlighting=warning
+resharper_multiple_order_by_highlighting=warning
+resharper_multiple_output_tags_highlighting=warning
+resharper_multiple_resolve_candidates_in_text_highlighting=warning
+resharper_multiple_spaces_highlighting=none
+resharper_multiple_statements_on_one_line_highlighting=none
+resharper_multiple_type_members_on_one_line_highlighting=none
+resharper_must_use_return_value_highlighting=warning
+resharper_mvc_action_not_resolved_highlighting=error
+resharper_mvc_area_not_resolved_highlighting=error
+resharper_mvc_controller_not_resolved_highlighting=error
+resharper_mvc_invalid_model_type_highlighting=error
+resharper_mvc_masterpage_not_resolved_highlighting=error
+resharper_mvc_partial_view_not_resolved_highlighting=error
+resharper_mvc_template_not_resolved_highlighting=error
+resharper_mvc_view_component_not_resolved_highlighting=error
+resharper_mvc_view_component_view_not_resolved_highlighting=error
+resharper_mvc_view_not_resolved_highlighting=error
+resharper_native_type_prototype_extending_highlighting=warning
+resharper_native_type_prototype_overwriting_highlighting=warning
+resharper_negation_of_relational_pattern_highlighting=suggestion
+resharper_negative_equality_expression_highlighting=suggestion
+resharper_negative_index_highlighting=warning
+resharper_nested_string_interpolation_highlighting=suggestion
+resharper_non_assigned_constant_highlighting=error
+resharper_non_atomic_compound_operator_highlighting=warning
+resharper_non_constant_equality_expression_has_constant_result_highlighting=warning
+resharper_non_parsable_element_highlighting=warning
+resharper_non_readonly_member_in_get_hash_code_highlighting=warning
+resharper_non_volatile_field_in_double_check_locking_highlighting=warning
+resharper_not_accessed_field_global_highlighting=suggestion
+resharper_not_accessed_field_local_highlighting=warning
+resharper_not_accessed_positional_property_global_highlighting=warning
+resharper_not_accessed_positional_property_local_highlighting=warning
+resharper_not_accessed_variable_highlighting=warning
+resharper_not_all_paths_return_value_highlighting=warning
+resharper_not_assigned_out_parameter_highlighting=warning
+resharper_not_declared_in_parent_culture_highlighting=warning
+resharper_not_null_member_is_not_initialized_highlighting=warning
+resharper_not_observable_annotation_redundancy_highlighting=warning
+resharper_not_overridden_in_specific_culture_highlighting=warning
+resharper_not_resolved_highlighting=warning
+resharper_not_resolved_in_text_highlighting=warning
+resharper_nullable_warning_suppression_is_used_highlighting=none
+resharper_n_unit_async_method_must_be_task_highlighting=warning
+resharper_n_unit_attribute_produces_too_many_tests_highlighting=none
+resharper_n_unit_auto_fixture_incorrect_argument_type_highlighting=warning
+resharper_n_unit_auto_fixture_missed_test_attribute_highlighting=warning
+resharper_n_unit_auto_fixture_missed_test_or_test_fixture_attribute_highlighting=warning
+resharper_n_unit_auto_fixture_redundant_argument_in_inline_auto_data_attribute_highlighting=warning
+resharper_n_unit_duplicate_values_highlighting=warning
+resharper_n_unit_ignored_parameter_attribute_highlighting=warning
+resharper_n_unit_implicit_unspecified_null_values_highlighting=warning
+resharper_n_unit_incorrect_argument_type_highlighting=warning
+resharper_n_unit_incorrect_expected_result_type_highlighting=warning
+resharper_n_unit_incorrect_range_bounds_highlighting=warning
+resharper_n_unit_method_with_parameters_and_test_attribute_highlighting=warning
+resharper_n_unit_missing_arguments_in_test_case_attribute_highlighting=warning
+resharper_n_unit_non_public_method_with_test_attribute_highlighting=warning
+resharper_n_unit_no_values_provided_highlighting=warning
+resharper_n_unit_parameter_type_is_not_compatible_with_attribute_highlighting=warning
+resharper_n_unit_range_attribute_bounds_are_out_of_range_highlighting=warning
+resharper_n_unit_range_step_sign_mismatch_highlighting=warning
+resharper_n_unit_range_step_value_must_not_be_zero_highlighting=warning
+resharper_n_unit_range_to_value_is_not_reachable_highlighting=warning
+resharper_n_unit_redundant_argument_instead_of_expected_result_highlighting=warning
+resharper_n_unit_redundant_argument_in_test_case_attribute_highlighting=warning
+resharper_n_unit_redundant_expected_result_in_test_case_attribute_highlighting=warning
+resharper_n_unit_test_case_attribute_requires_expected_result_highlighting=warning
+resharper_n_unit_test_case_result_property_duplicates_expected_result_highlighting=warning
+resharper_n_unit_test_case_result_property_is_obsolete_highlighting=warning
+resharper_n_unit_test_case_source_cannot_be_resolved_highlighting=warning
+resharper_n_unit_test_case_source_must_be_field_property_method_highlighting=warning
+resharper_n_unit_test_case_source_must_be_static_highlighting=warning
+resharper_n_unit_test_case_source_should_implement_i_enumerable_highlighting=warning
+resharper_object_creation_as_statement_highlighting=warning
+resharper_object_destructuring_without_parentheses_highlighting=error
+resharper_object_literals_are_not_comma_free_highlighting=error
+resharper_obsolete_element_error_highlighting=error
+resharper_obsolete_element_highlighting=warning
+resharper_octal_literals_not_allowed_error_highlighting=error
+resharper_ol_tag_contains_non_li_elements_highlighting=hint
+resharper_one_way_operation_contract_with_return_type_highlighting=warning
+resharper_operation_contract_without_service_contract_highlighting=warning
+resharper_operator_is_can_be_used_highlighting=warning
+resharper_optional_parameter_hierarchy_mismatch_highlighting=warning
+resharper_optional_parameter_ref_out_highlighting=warning
+resharper_other_tags_inside_script1_highlighting=error
+resharper_other_tags_inside_script2_highlighting=error
+resharper_other_tags_inside_unclosed_script_highlighting=error
+resharper_outdent_is_off_prev_level_highlighting=none
+resharper_output_tag_required_highlighting=warning
+resharper_out_parameter_value_is_always_discarded_global_highlighting=suggestion
+resharper_out_parameter_value_is_always_discarded_local_highlighting=warning
+resharper_overload_signature_inferring_highlighting=hint
+resharper_overridden_with_empty_value_highlighting=warning
+resharper_overridden_with_same_value_highlighting=suggestion
+resharper_parameter_doesnt_make_any_sense_highlighting=warning
+resharper_parameter_hides_member_highlighting=warning
+resharper_parameter_only_used_for_precondition_check_global_highlighting=suggestion
+resharper_parameter_only_used_for_precondition_check_local_highlighting=warning
+resharper_parameter_type_can_be_enumerable_global_highlighting=hint
+resharper_parameter_type_can_be_enumerable_local_highlighting=hint
+resharper_parameter_value_is_not_used_highlighting=warning
+resharper_partial_method_parameter_name_mismatch_highlighting=warning
+resharper_partial_method_with_single_part_highlighting=warning
+resharper_partial_type_with_single_part_highlighting=warning
+resharper_pass_string_interpolation_highlighting=hint
+resharper_path_not_resolved_highlighting=error
+resharper_pattern_always_matches_highlighting=warning
+resharper_pattern_is_always_true_or_false_highlighting=warning
+resharper_pattern_never_matches_highlighting=warning
+resharper_polymorphic_field_like_event_invocation_highlighting=warning
+resharper_possible_infinite_inheritance_highlighting=warning
+resharper_possible_intended_rethrow_highlighting=warning
+resharper_possible_interface_member_ambiguity_highlighting=warning
+resharper_possible_invalid_cast_exception_highlighting=warning
+resharper_possible_invalid_cast_exception_in_foreach_loop_highlighting=warning
+resharper_possible_invalid_operation_exception_highlighting=warning
+resharper_possible_loss_of_fraction_highlighting=warning
+resharper_possible_mistaken_argument_highlighting=warning
+resharper_possible_mistaken_call_to_get_type_1_highlighting=warning
+resharper_possible_mistaken_call_to_get_type_2_highlighting=warning
+resharper_possible_multiple_enumeration_highlighting=warning
+resharper_possible_multiple_write_access_in_double_check_locking_highlighting=warning
+resharper_possible_null_reference_exception_highlighting=warning
+resharper_possible_struct_member_modification_of_non_variable_struct_highlighting=warning
+resharper_possible_unintended_linear_search_in_set_highlighting=warning
+resharper_possible_unintended_queryable_as_enumerable_highlighting=suggestion
+resharper_possible_unintended_reference_comparison_highlighting=warning
+resharper_possible_write_to_me_highlighting=warning
+resharper_possibly_impure_method_call_on_readonly_variable_highlighting=warning
+resharper_possibly_incorrectly_broken_statement_highlighting=warning
+resharper_possibly_missing_indexer_initializer_comma_highlighting=warning
+resharper_possibly_mistaken_use_of_interpolated_string_insert_highlighting=warning
+resharper_possibly_mistaken_use_of_params_method_highlighting=warning
+resharper_possibly_unassigned_property_highlighting=hint
+resharper_private_field_can_be_converted_to_local_variable_highlighting=warning
+resharper_private_variable_can_be_made_readonly_highlighting=hint
+resharper_property_can_be_made_init_only_global_highlighting=suggestion
+resharper_property_can_be_made_init_only_local_highlighting=suggestion
+resharper_property_getter_cannot_have_parameters_highlighting=error
+resharper_property_not_resolved_highlighting=error
+resharper_property_setter_must_have_single_parameter_highlighting=error
+resharper_public_constructor_in_abstract_class_highlighting=suggestion
+resharper_pure_attribute_on_void_method_highlighting=warning
+resharper_qualified_expression_is_null_highlighting=warning
+resharper_qualified_expression_maybe_null_highlighting=warning
+resharper_razor_layout_not_resolved_highlighting=error
+resharper_razor_section_not_resolved_highlighting=error
+resharper_read_access_in_double_check_locking_highlighting=warning
+resharper_redundant_abstract_modifier_highlighting=warning
+resharper_redundant_always_match_subpattern_highlighting=suggestion
+resharper_redundant_anonymous_type_property_name_highlighting=warning
+resharper_redundant_argument_default_value_highlighting=warning
+resharper_redundant_array_creation_expression_highlighting=hint
+resharper_redundant_array_lower_bound_specification_highlighting=warning
+resharper_redundant_assignment_highlighting=warning
+resharper_redundant_attribute_parentheses_highlighting=hint
+resharper_redundant_attribute_usage_property_highlighting=suggestion
+resharper_redundant_base_constructor_call_highlighting=warning
+resharper_redundant_base_qualifier_highlighting=warning
+resharper_redundant_blank_lines_highlighting=none
+resharper_redundant_block_highlighting=warning
+resharper_redundant_bool_compare_highlighting=warning
+resharper_redundant_case_label_highlighting=warning
+resharper_redundant_cast_highlighting=warning
+resharper_redundant_catch_clause_highlighting=warning
+resharper_redundant_check_before_assignment_highlighting=warning
+resharper_redundant_collection_initializer_element_braces_highlighting=hint
+resharper_redundant_comparison_with_boolean_highlighting=warning
+resharper_redundant_configure_await_highlighting=suggestion
+resharper_redundant_css_hack_highlighting=warning
+resharper_redundant_declaration_semicolon_highlighting=hint
+resharper_redundant_default_member_initializer_highlighting=warning
+resharper_redundant_delegate_creation_highlighting=warning
+resharper_redundant_disable_warning_comment_highlighting=warning
+resharper_redundant_discard_designation_highlighting=suggestion
+resharper_redundant_else_block_highlighting=warning
+resharper_redundant_empty_case_else_highlighting=warning
+resharper_redundant_empty_constructor_highlighting=warning
+resharper_redundant_empty_finally_block_highlighting=warning
+resharper_redundant_empty_object_creation_argument_list_highlighting=hint
+resharper_redundant_empty_object_or_collection_initializer_highlighting=warning
+resharper_redundant_empty_switch_section_highlighting=warning
+resharper_redundant_enumerable_cast_call_highlighting=warning
+resharper_redundant_enum_case_label_for_default_section_highlighting=none
+resharper_redundant_explicit_array_creation_highlighting=warning
+resharper_redundant_explicit_array_size_highlighting=warning
+resharper_redundant_explicit_nullable_creation_highlighting=warning
+resharper_redundant_explicit_params_array_creation_highlighting=suggestion
+resharper_redundant_explicit_positional_property_declaration_highlighting=warning
+resharper_redundant_explicit_tuple_component_name_highlighting=warning
+resharper_redundant_extends_list_entry_highlighting=warning
+resharper_redundant_fixed_pointer_declaration_highlighting=suggestion
+resharper_redundant_highlighting=warning
+resharper_redundant_if_else_block_highlighting=hint
+resharper_redundant_if_statement_then_keyword_highlighting=none
+resharper_redundant_immediate_delegate_invocation_highlighting=suggestion
+resharper_redundant_intermediate_variable_highlighting=hint
+resharper_redundant_is_before_relational_pattern_highlighting=suggestion
+resharper_redundant_iterator_keyword_highlighting=warning
+resharper_redundant_jump_statement_highlighting=warning
+resharper_redundant_lambda_parameter_type_highlighting=warning
+resharper_redundant_lambda_signature_parentheses_highlighting=hint
+resharper_redundant_linebreak_highlighting=none
+resharper_redundant_local_class_name_highlighting=hint
+resharper_redundant_local_function_name_highlighting=hint
+resharper_redundant_logical_conditional_expression_operand_highlighting=warning
+resharper_redundant_me_qualifier_highlighting=warning
+resharper_redundant_my_base_qualifier_highlighting=warning
+resharper_redundant_my_class_qualifier_highlighting=warning
+resharper_redundant_name_qualifier_highlighting=warning
+resharper_redundant_not_null_constraint_highlighting=warning
+resharper_redundant_nullable_annotation_on_reference_type_constraint_highlighting=warning
+resharper_redundant_nullable_annotation_on_type_constraint_has_non_nullable_base_type_highlighting=warning
+resharper_redundant_nullable_annotation_on_type_constraint_has_non_nullable_type_kind_highlighting=warning
+resharper_redundant_nullable_flow_attribute_highlighting=warning
+resharper_redundant_nullable_type_mark_highlighting=warning
+resharper_redundant_nullness_attribute_with_nullable_reference_types_highlighting=warning
+resharper_redundant_overflow_checking_context_highlighting=warning
+resharper_redundant_overload_global_highlighting=suggestion
+resharper_redundant_overload_local_highlighting=suggestion
+resharper_redundant_overridden_member_highlighting=warning
+resharper_redundant_params_highlighting=warning
+resharper_redundant_parentheses_highlighting=none
+resharper_redundant_parent_type_declaration_highlighting=warning
+resharper_redundant_pattern_parentheses_highlighting=hint
+resharper_redundant_property_parentheses_highlighting=hint
+resharper_redundant_property_pattern_clause_highlighting=suggestion
+resharper_redundant_qualifier_highlighting=warning
+resharper_redundant_query_order_by_ascending_keyword_highlighting=hint
+resharper_redundant_range_bound_highlighting=suggestion
+resharper_redundant_readonly_modifier_highlighting=suggestion
+resharper_redundant_record_body_highlighting=warning
+resharper_redundant_record_class_keyword_highlighting=warning
+resharper_redundant_setter_value_parameter_declaration_highlighting=hint
+resharper_redundant_space_highlighting=none
+resharper_redundant_string_format_call_highlighting=warning
+resharper_redundant_string_interpolation_highlighting=suggestion
+resharper_redundant_string_to_char_array_call_highlighting=warning
+resharper_redundant_string_type_highlighting=suggestion
+resharper_redundant_suppress_nullable_warning_expression_highlighting=warning
+resharper_redundant_ternary_expression_highlighting=warning
+resharper_redundant_to_string_call_for_value_type_highlighting=hint
+resharper_redundant_to_string_call_highlighting=warning
+resharper_redundant_type_arguments_of_method_highlighting=warning
+resharper_redundant_type_cast_highlighting=warning
+resharper_redundant_type_cast_structural_highlighting=warning
+resharper_redundant_type_check_in_pattern_highlighting=warning
+resharper_redundant_units_highlighting=warning
+resharper_redundant_unsafe_context_highlighting=warning
+resharper_redundant_using_directive_global_highlighting=warning
+resharper_redundant_using_directive_highlighting=warning
+resharper_redundant_variable_type_specification_highlighting=hint
+resharper_redundant_verbatim_prefix_highlighting=suggestion
+resharper_redundant_verbatim_string_prefix_highlighting=suggestion
+resharper_redundant_with_expression_highlighting=suggestion
+resharper_reference_equals_with_value_type_highlighting=warning
+resharper_reg_exp_inspections_highlighting=warning
+resharper_remove_constructor_invocation_highlighting=none
+resharper_remove_redundant_braces_highlighting=none
+resharper_remove_redundant_or_statement_false_highlighting=suggestion
+resharper_remove_redundant_or_statement_true_highlighting=suggestion
+resharper_remove_to_list_1_highlighting=suggestion
+resharper_remove_to_list_2_highlighting=suggestion
+resharper_replace_auto_property_with_computed_property_highlighting=hint
+resharper_replace_indicing_with_array_destructuring_highlighting=hint
+resharper_replace_indicing_with_short_hand_properties_after_destructuring_highlighting=hint
+resharper_replace_object_pattern_with_var_pattern_highlighting=suggestion
+resharper_replace_slice_with_range_indexer_highlighting=hint
+resharper_replace_substring_with_range_indexer_highlighting=hint
+resharper_replace_undefined_checking_series_with_object_destructuring_highlighting=hint
+resharper_replace_with_destructuring_swap_highlighting=hint
+resharper_replace_with_first_or_default_1_highlighting=suggestion
+resharper_replace_with_first_or_default_2_highlighting=suggestion
+resharper_replace_with_first_or_default_3_highlighting=suggestion
+resharper_replace_with_first_or_default_4_highlighting=suggestion
+resharper_replace_with_last_or_default_1_highlighting=suggestion
+resharper_replace_with_last_or_default_2_highlighting=suggestion
+resharper_replace_with_last_or_default_3_highlighting=suggestion
+resharper_replace_with_last_or_default_4_highlighting=suggestion
+resharper_replace_with_of_type_1_highlighting=suggestion
+resharper_replace_with_of_type_2_highlighting=suggestion
+resharper_replace_with_of_type_3_highlighting=suggestion
+resharper_replace_with_of_type_any_1_highlighting=suggestion
+resharper_replace_with_of_type_any_2_highlighting=suggestion
+resharper_replace_with_of_type_count_1_highlighting=suggestion
+resharper_replace_with_of_type_count_2_highlighting=suggestion
+resharper_replace_with_of_type_first_1_highlighting=suggestion
+resharper_replace_with_of_type_first_2_highlighting=suggestion
+resharper_replace_with_of_type_first_or_default_1_highlighting=suggestion
+resharper_replace_with_of_type_first_or_default_2_highlighting=suggestion
+resharper_replace_with_of_type_last_1_highlighting=suggestion
+resharper_replace_with_of_type_last_2_highlighting=suggestion
+resharper_replace_with_of_type_last_or_default_1_highlighting=suggestion
+resharper_replace_with_of_type_last_or_default_2_highlighting=suggestion
+resharper_replace_with_of_type_long_count_highlighting=suggestion
+resharper_replace_with_of_type_single_1_highlighting=suggestion
+resharper_replace_with_of_type_single_2_highlighting=suggestion
+resharper_replace_with_of_type_single_or_default_1_highlighting=suggestion
+resharper_replace_with_of_type_single_or_default_2_highlighting=suggestion
+resharper_replace_with_of_type_where_highlighting=suggestion
+resharper_replace_with_simple_assignment_false_highlighting=suggestion
+resharper_replace_with_simple_assignment_true_highlighting=suggestion
+resharper_replace_with_single_assignment_false_highlighting=suggestion
+resharper_replace_with_single_assignment_true_highlighting=suggestion
+resharper_replace_with_single_call_to_any_highlighting=suggestion
+resharper_replace_with_single_call_to_count_highlighting=suggestion
+resharper_replace_with_single_call_to_first_highlighting=suggestion
+resharper_replace_with_single_call_to_first_or_default_highlighting=suggestion
+resharper_replace_with_single_call_to_last_highlighting=suggestion
+resharper_replace_with_single_call_to_last_or_default_highlighting=suggestion
+resharper_replace_with_single_call_to_single_highlighting=suggestion
+resharper_replace_with_single_call_to_single_or_default_highlighting=suggestion
+resharper_replace_with_single_or_default_1_highlighting=suggestion
+resharper_replace_with_single_or_default_2_highlighting=suggestion
+resharper_replace_with_single_or_default_3_highlighting=suggestion
+resharper_replace_with_single_or_default_4_highlighting=suggestion
+resharper_replace_with_string_is_null_or_empty_highlighting=suggestion
+resharper_required_base_types_conflict_highlighting=warning
+resharper_required_base_types_direct_conflict_highlighting=warning
+resharper_required_base_types_is_not_inherited_highlighting=warning
+resharper_requires_fallback_color_highlighting=warning
+resharper_resource_item_not_resolved_highlighting=error
+resharper_resource_not_resolved_highlighting=error
+resharper_resx_not_resolved_highlighting=warning
+resharper_return_from_global_scopet_with_value_highlighting=warning
+resharper_return_type_can_be_enumerable_global_highlighting=hint
+resharper_return_type_can_be_enumerable_local_highlighting=hint
+resharper_return_type_can_be_not_nullable_highlighting=warning
+resharper_return_value_of_pure_method_is_not_used_highlighting=warning
+resharper_route_templates_action_route_prefix_can_be_extracted_to_controller_route_highlighting=hint
+resharper_route_templates_ambiguous_matching_constraint_constructor_highlighting=warning
+resharper_route_templates_ambiguous_route_match_highlighting=warning
+resharper_route_templates_constraint_argument_cannot_be_converted_highlighting=warning
+resharper_route_templates_controller_route_parameter_is_not_passed_to_methods_highlighting=hint
+resharper_route_templates_duplicated_parameter_highlighting=warning
+resharper_route_templates_matching_constraint_constructor_not_resolved_highlighting=warning
+resharper_route_templates_method_missing_route_parameters_highlighting=hint
+resharper_route_templates_optional_parameter_can_be_preceded_only_by_single_period_highlighting=warning
+resharper_route_templates_optional_parameter_must_be_at_the_end_of_segment_highlighting=warning
+resharper_route_templates_parameter_constraint_can_be_specified_highlighting=hint
+resharper_route_templates_parameter_type_and_constraints_mismatch_highlighting=warning
+resharper_route_templates_parameter_type_can_be_made_stricter_highlighting=suggestion
+resharper_route_templates_route_parameter_constraint_not_resolved_highlighting=warning
+resharper_route_templates_route_parameter_is_not_passed_to_method_highlighting=hint
+resharper_route_templates_route_token_not_resolved_highlighting=warning
+resharper_route_templates_symbol_not_resolved_highlighting=warning
+resharper_route_templates_syntax_error_highlighting=warning
+resharper_safe_cast_is_used_as_type_check_highlighting=suggestion
+resharper_same_imports_with_different_name_highlighting=warning
+resharper_same_variable_assignment_highlighting=warning
+resharper_script_tag_has_both_src_and_content_attributes_highlighting=error
+resharper_script_tag_with_content_before_includes_highlighting=hint
+resharper_sealed_member_in_sealed_class_highlighting=warning
+resharper_separate_control_transfer_statement_highlighting=none
+resharper_service_contract_without_operations_highlighting=warning
+resharper_shift_expression_real_shift_count_is_zero_highlighting=warning
+resharper_shift_expression_result_equals_zero_highlighting=warning
+resharper_shift_expression_right_operand_not_equal_real_count_highlighting=warning
+resharper_shift_expression_zero_left_operand_highlighting=warning
+resharper_similar_anonymous_type_nearby_highlighting=hint
+resharper_similar_expressions_comparison_highlighting=warning
+resharper_simplify_conditional_operator_highlighting=suggestion
+resharper_simplify_conditional_ternary_expression_highlighting=suggestion
+resharper_simplify_i_if_highlighting=suggestion
+resharper_simplify_linq_expression_use_all_highlighting=suggestion
+resharper_simplify_linq_expression_use_any_highlighting=suggestion
+resharper_simplify_string_interpolation_highlighting=suggestion
+resharper_specify_a_culture_in_string_conversion_explicitly_highlighting=warning
+resharper_specify_string_comparison_highlighting=hint
+resharper_specify_variable_type_explicitly_highlighting=hint
+resharper_spin_lock_in_readonly_field_highlighting=warning
+resharper_stack_alloc_inside_loop_highlighting=warning
+resharper_statement_termination_highlighting=warning
+resharper_static_member_initializer_referes_to_member_below_highlighting=warning
+resharper_static_member_in_generic_type_highlighting=none
+resharper_static_problem_in_text_highlighting=warning
+resharper_string_compare_is_culture_specific_1_highlighting=warning
+resharper_string_compare_is_culture_specific_2_highlighting=warning
+resharper_string_compare_is_culture_specific_3_highlighting=warning
+resharper_string_compare_is_culture_specific_4_highlighting=warning
+resharper_string_compare_is_culture_specific_5_highlighting=warning
+resharper_string_compare_is_culture_specific_6_highlighting=warning
+resharper_string_compare_to_is_culture_specific_highlighting=warning
+resharper_string_concatenation_to_template_string_highlighting=hint
+resharper_string_ends_with_is_culture_specific_highlighting=none
+resharper_string_index_of_is_culture_specific_1_highlighting=warning
+resharper_string_index_of_is_culture_specific_2_highlighting=warning
+resharper_string_index_of_is_culture_specific_3_highlighting=warning
+resharper_string_last_index_of_is_culture_specific_1_highlighting=warning
+resharper_string_last_index_of_is_culture_specific_2_highlighting=warning
+resharper_string_last_index_of_is_culture_specific_3_highlighting=warning
+resharper_string_literal_as_interpolation_argument_highlighting=suggestion
+resharper_string_literal_typo_highlighting=suggestion
+resharper_string_literal_wrong_quotes_highlighting=hint
+resharper_string_starts_with_is_culture_specific_highlighting=none
+resharper_structured_message_template_problem_highlighting=warning
+resharper_struct_can_be_made_read_only_highlighting=suggestion
+resharper_struct_member_can_be_made_read_only_highlighting=none
+resharper_suggest_base_type_for_parameter_highlighting=hint
+resharper_suggest_base_type_for_parameter_in_constructor_highlighting=hint
+resharper_suggest_discard_declaration_var_style_highlighting=hint
+resharper_suggest_var_or_type_built_in_types_highlighting=hint
+resharper_suggest_var_or_type_deconstruction_declarations_highlighting=hint
+resharper_suggest_var_or_type_elsewhere_highlighting=hint
+resharper_suggest_var_or_type_simple_types_highlighting=hint
+resharper_super_call_highlighting=suggestion
+resharper_super_call_prohibits_this_highlighting=error
+resharper_suppress_nullable_warning_expression_as_inverted_is_expression_highlighting=warning
+resharper_suspicious_instanceof_check_highlighting=warning
+resharper_suspicious_lambda_block_highlighting=warning
+resharper_suspicious_lock_over_synchronization_primitive_highlighting=warning
+resharper_suspicious_math_sign_method_highlighting=warning
+resharper_suspicious_parameter_name_in_argument_null_exception_highlighting=warning
+resharper_suspicious_this_usage_highlighting=warning
+resharper_suspicious_typeof_check_highlighting=warning
+resharper_suspicious_type_conversion_global_highlighting=warning
+resharper_swap_via_deconstruction_highlighting=suggestion
+resharper_switch_expression_handles_some_known_enum_values_with_exception_in_default_highlighting=hint
+resharper_switch_statement_for_enum_misses_default_section_highlighting=hint
+resharper_switch_statement_handles_some_known_enum_values_with_default_highlighting=hint
+resharper_switch_statement_missing_some_enum_cases_no_default_highlighting=none
+resharper_symbol_from_not_copied_locally_reference_used_warning_highlighting=warning
+resharper_syntax_is_not_allowed_highlighting=warning
+resharper_tabs_and_spaces_mismatch_highlighting=none
+resharper_tabs_are_disallowed_highlighting=none
+resharper_tabs_outside_indent_highlighting=none
+resharper_tail_recursive_call_highlighting=hint
+resharper_tasks_not_loaded_highlighting=warning
+resharper_ternary_can_be_replaced_by_its_condition_highlighting=warning
+resharper_this_in_global_context_highlighting=warning
+resharper_thread_static_at_instance_field_highlighting=warning
+resharper_thread_static_field_has_initializer_highlighting=warning
+resharper_throw_must_be_followed_by_expression_highlighting=error
+resharper_too_wide_local_variable_scope_highlighting=suggestion
+resharper_try_cast_always_succeeds_highlighting=suggestion
+resharper_try_statements_can_be_merged_highlighting=hint
+resharper_ts_not_resolved_highlighting=error
+resharper_ts_resolved_from_inaccessible_module_highlighting=error
+resharper_type_guard_doesnt_affect_anything_highlighting=warning
+resharper_type_guard_produces_never_type_highlighting=warning
+resharper_type_parameter_can_be_variant_highlighting=suggestion
+resharper_type_parameter_hides_type_param_from_outer_scope_highlighting=warning
+resharper_ul_tag_contains_non_li_elements_highlighting=hint
+resharper_unassigned_field_global_highlighting=suggestion
+resharper_unassigned_field_local_highlighting=warning
+resharper_unassigned_get_only_auto_property_highlighting=warning
+resharper_unassigned_readonly_field_highlighting=warning
+resharper_unclosed_script_highlighting=error
+resharper_undeclared_global_variable_using_highlighting=warning
+resharper_unexpected_value_highlighting=error
+resharper_unknown_css_class_highlighting=warning
+resharper_unknown_css_variable_highlighting=warning
+resharper_unknown_css_vendor_extension_highlighting=hint
+resharper_unknown_item_group_highlighting=warning
+resharper_unknown_metadata_highlighting=warning
+resharper_unknown_output_parameter_highlighting=warning
+resharper_unknown_property_highlighting=warning
+resharper_unknown_target_highlighting=warning
+resharper_unknown_task_attribute_highlighting=warning
+resharper_unknown_task_highlighting=warning
+resharper_unnecessary_whitespace_highlighting=none
+resharper_unreachable_switch_arm_due_to_integer_analysis_highlighting=warning
+resharper_unreachable_switch_case_due_to_integer_analysis_highlighting=warning
+resharper_unreal_header_tool_error_highlighting=error
+resharper_unreal_header_tool_parser_error_highlighting=error
+resharper_unreal_header_tool_warning_highlighting=warning
+resharper_unsafe_comma_in_object_properties_list_highlighting=warning
+resharper_unsupported_required_base_type_highlighting=warning
+resharper_unused_anonymous_method_signature_highlighting=warning
+resharper_unused_auto_property_accessor_global_highlighting=warning
+resharper_unused_auto_property_accessor_local_highlighting=warning
+resharper_unused_import_clause_highlighting=warning
+resharper_unused_inherited_parameter_highlighting=hint
+resharper_unused_locals_highlighting=warning
+resharper_unused_local_function_highlighting=warning
+resharper_unused_local_function_parameter_highlighting=warning
+resharper_unused_local_function_return_value_highlighting=warning
+resharper_unused_local_import_highlighting=warning
+resharper_unused_member_global_highlighting=suggestion
+resharper_unused_member_hierarchy_global_highlighting=suggestion
+resharper_unused_member_hierarchy_local_highlighting=warning
+resharper_unused_member_in_super_global_highlighting=suggestion
+resharper_unused_member_in_super_local_highlighting=warning
+resharper_unused_member_local_highlighting=warning
+resharper_unused_method_return_value_global_highlighting=suggestion
+resharper_unused_method_return_value_local_highlighting=warning
+resharper_unused_parameter_global_highlighting=suggestion
+resharper_unused_parameter_highlighting=warning
+resharper_unused_parameter_in_partial_method_highlighting=warning
+resharper_unused_parameter_local_highlighting=warning
+resharper_unused_property_highlighting=warning
+resharper_unused_tuple_component_in_return_value_highlighting=warning
+resharper_unused_type_global_highlighting=suggestion
+resharper_unused_type_local_highlighting=warning
+resharper_unused_type_parameter_highlighting=warning
+resharper_unused_variable_highlighting=warning
+resharper_usage_of_definitely_unassigned_value_highlighting=warning
+resharper_usage_of_possibly_unassigned_value_highlighting=warning
+resharper_useless_binary_operation_highlighting=warning
+resharper_useless_comparison_to_integral_constant_highlighting=warning
+resharper_use_array_creation_expression_1_highlighting=suggestion
+resharper_use_array_creation_expression_2_highlighting=suggestion
+resharper_use_array_empty_method_highlighting=suggestion
+resharper_use_as_instead_of_type_cast_highlighting=hint
+resharper_use_await_using_highlighting=suggestion
+resharper_use_cancellation_token_for_i_async_enumerable_highlighting=suggestion
+resharper_use_collection_count_property_highlighting=suggestion
+resharper_use_configure_await_false_for_async_disposable_highlighting=none
+resharper_use_configure_await_false_highlighting=suggestion
+resharper_use_deconstruction_highlighting=hint
+resharper_use_deconstruction_on_parameter_highlighting=hint
+resharper_use_empty_types_field_highlighting=suggestion
+resharper_use_event_args_empty_field_highlighting=suggestion
+resharper_use_format_specifier_in_format_string_highlighting=suggestion
+resharper_use_implicitly_typed_variable_evident_highlighting=hint
+resharper_use_implicitly_typed_variable_highlighting=none
+resharper_use_implicit_by_val_modifier_highlighting=hint
+resharper_use_indexed_property_highlighting=suggestion
+resharper_use_index_from_end_expression_highlighting=suggestion
+resharper_use_is_operator_1_highlighting=suggestion
+resharper_use_is_operator_2_highlighting=suggestion
+resharper_use_method_any_0_highlighting=suggestion
+resharper_use_method_any_1_highlighting=suggestion
+resharper_use_method_any_2_highlighting=suggestion
+resharper_use_method_any_3_highlighting=suggestion
+resharper_use_method_any_4_highlighting=suggestion
+resharper_use_method_is_instance_of_type_highlighting=suggestion
+resharper_use_nameof_expression_for_part_of_the_string_highlighting=none
+resharper_use_nameof_expression_highlighting=suggestion
+resharper_use_name_of_instead_of_type_of_highlighting=suggestion
+resharper_use_negated_pattern_in_is_expression_highlighting=hint
+resharper_use_negated_pattern_matching_highlighting=hint
+resharper_use_nullable_annotation_instead_of_attribute_highlighting=suggestion
+resharper_use_nullable_attributes_supported_by_compiler_highlighting=suggestion
+resharper_use_nullable_reference_types_annotation_syntax_highlighting=warning
+resharper_use_null_propagation_highlighting=hint
+resharper_use_null_propagation_when_possible_highlighting=none
+resharper_use_object_or_collection_initializer_highlighting=suggestion
+resharper_use_of_implicit_global_in_function_scope_highlighting=warning
+resharper_use_of_possibly_unassigned_property_highlighting=warning
+resharper_use_pattern_matching_highlighting=suggestion
+resharper_use_positional_deconstruction_pattern_highlighting=none
+resharper_use_string_interpolation_highlighting=suggestion
+resharper_use_switch_case_pattern_variable_highlighting=suggestion
+resharper_use_throw_if_null_method_highlighting=none
+resharper_use_verbatim_string_highlighting=hint
+resharper_using_of_reserved_word_error_highlighting=error
+resharper_using_of_reserved_word_highlighting=warning
+resharper_value_parameter_not_used_highlighting=warning
+resharper_value_range_attribute_violation_highlighting=warning
+resharper_value_should_have_units_highlighting=error
+resharper_variable_can_be_made_const_highlighting=hint
+resharper_variable_can_be_made_let_highlighting=hint
+resharper_variable_can_be_moved_to_inner_block_highlighting=hint
+resharper_variable_can_be_not_nullable_highlighting=warning
+resharper_variable_hides_outer_variable_highlighting=warning
+resharper_variable_used_before_declared_highlighting=warning
+resharper_variable_used_in_inner_scope_before_declared_highlighting=warning
+resharper_variable_used_out_of_scope_highlighting=warning
+resharper_vb_check_for_reference_equality_instead_1_highlighting=suggestion
+resharper_vb_check_for_reference_equality_instead_2_highlighting=suggestion
+resharper_vb_possible_mistaken_argument_highlighting=warning
+resharper_vb_possible_mistaken_call_to_get_type_1_highlighting=warning
+resharper_vb_possible_mistaken_call_to_get_type_2_highlighting=warning
+resharper_vb_remove_to_list_1_highlighting=suggestion
+resharper_vb_remove_to_list_2_highlighting=suggestion
+resharper_vb_replace_with_first_or_default_highlighting=suggestion
+resharper_vb_replace_with_last_or_default_highlighting=suggestion
+resharper_vb_replace_with_of_type_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_any_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_any_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_count_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_count_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_first_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_first_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_first_or_default_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_first_or_default_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_last_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_last_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_last_or_default_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_last_or_default_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_single_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_single_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_single_or_default_1_highlighting=suggestion
+resharper_vb_replace_with_of_type_single_or_default_2_highlighting=suggestion
+resharper_vb_replace_with_of_type_where_highlighting=suggestion
+resharper_vb_replace_with_single_assignment_1_highlighting=suggestion
+resharper_vb_replace_with_single_assignment_2_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_any_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_count_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_first_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_first_or_default_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_last_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_last_or_default_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_single_highlighting=suggestion
+resharper_vb_replace_with_single_call_to_single_or_default_highlighting=suggestion
+resharper_vb_replace_with_single_or_default_highlighting=suggestion
+resharper_vb_simplify_linq_expression_10_highlighting=hint
+resharper_vb_simplify_linq_expression_1_highlighting=suggestion
+resharper_vb_simplify_linq_expression_2_highlighting=suggestion
+resharper_vb_simplify_linq_expression_3_highlighting=suggestion
+resharper_vb_simplify_linq_expression_4_highlighting=suggestion
+resharper_vb_simplify_linq_expression_5_highlighting=suggestion
+resharper_vb_simplify_linq_expression_6_highlighting=suggestion
+resharper_vb_simplify_linq_expression_7_highlighting=hint
+resharper_vb_simplify_linq_expression_8_highlighting=hint
+resharper_vb_simplify_linq_expression_9_highlighting=hint
+resharper_vb_string_compare_is_culture_specific_1_highlighting=warning
+resharper_vb_string_compare_is_culture_specific_2_highlighting=warning
+resharper_vb_string_compare_is_culture_specific_3_highlighting=warning
+resharper_vb_string_compare_is_culture_specific_4_highlighting=warning
+resharper_vb_string_compare_is_culture_specific_5_highlighting=warning
+resharper_vb_string_compare_is_culture_specific_6_highlighting=warning
+resharper_vb_string_compare_to_is_culture_specific_highlighting=warning
+resharper_vb_string_ends_with_is_culture_specific_highlighting=none
+resharper_vb_string_index_of_is_culture_specific_1_highlighting=warning
+resharper_vb_string_index_of_is_culture_specific_2_highlighting=warning
+resharper_vb_string_index_of_is_culture_specific_3_highlighting=warning
+resharper_vb_string_last_index_of_is_culture_specific_1_highlighting=warning
+resharper_vb_string_last_index_of_is_culture_specific_2_highlighting=warning
+resharper_vb_string_last_index_of_is_culture_specific_3_highlighting=warning
+resharper_vb_string_starts_with_is_culture_specific_highlighting=none
+resharper_vb_unreachable_code_highlighting=warning
+resharper_vb_use_array_creation_expression_1_highlighting=suggestion
+resharper_vb_use_array_creation_expression_2_highlighting=suggestion
+resharper_vb_use_first_instead_highlighting=warning
+resharper_vb_use_method_any_1_highlighting=suggestion
+resharper_vb_use_method_any_2_highlighting=suggestion
+resharper_vb_use_method_any_3_highlighting=suggestion
+resharper_vb_use_method_any_4_highlighting=suggestion
+resharper_vb_use_method_any_5_highlighting=suggestion
+resharper_vb_use_method_is_instance_of_type_highlighting=suggestion
+resharper_vb_use_type_of_is_operator_1_highlighting=suggestion
+resharper_vb_use_type_of_is_operator_2_highlighting=suggestion
+resharper_virtual_member_call_in_constructor_highlighting=warning
+resharper_virtual_member_never_overridden_global_highlighting=suggestion
+resharper_virtual_member_never_overridden_local_highlighting=suggestion
+resharper_void_method_with_must_use_return_value_attribute_highlighting=warning
+resharper_web_config_module_not_resolved_highlighting=error
+resharper_web_config_module_qualification_resolve_highlighting=warning
+resharper_web_config_redundant_add_namespace_tag_highlighting=warning
+resharper_web_config_redundant_location_tag_highlighting=warning
+resharper_web_config_tag_prefix_redundand_highlighting=warning
+resharper_web_config_type_not_resolved_highlighting=error
+resharper_web_config_unused_add_tag_highlighting=warning
+resharper_web_config_unused_element_due_to_config_source_attribute_highlighting=warning
+resharper_web_config_unused_remove_or_clear_tag_highlighting=warning
+resharper_web_config_web_config_path_warning_highlighting=warning
+resharper_web_config_wrong_module_highlighting=error
+resharper_web_ignored_path_highlighting=none
+resharper_web_mapped_path_highlighting=hint
+resharper_with_expression_instead_of_initializer_highlighting=suggestion
+resharper_with_statement_using_error_highlighting=error
+resharper_wrong_expression_statement_highlighting=warning
+resharper_wrong_indent_size_highlighting=none
+resharper_wrong_metadata_use_highlighting=none
+resharper_wrong_public_modifier_specification_highlighting=hint
+resharper_wrong_require_relative_path_highlighting=hint
+resharper_xaml_assign_null_to_not_null_attribute_highlighting=warning
+resharper_xaml_avalonia_wrong_binding_mode_for_stream_binding_operator_highlighting=warning
+resharper_xaml_binding_without_context_not_resolved_highlighting=hint
+resharper_xaml_binding_with_context_not_resolved_highlighting=warning
+resharper_xaml_compiled_binding_missing_data_type_error_highlighting_highlighting=error
+resharper_xaml_constructor_warning_highlighting=warning
+resharper_xaml_decimal_parsing_is_culture_dependent_highlighting=warning
+resharper_xaml_dependency_property_resolve_error_highlighting=warning
+resharper_xaml_duplicate_style_setter_highlighting=warning
+resharper_xaml_dynamic_resource_error_highlighting=error
+resharper_xaml_element_name_reference_not_resolved_highlighting=error
+resharper_xaml_empty_grid_length_definition_highlighting=error
+resharper_xaml_grid_definitions_can_be_converted_to_attribute_highlighting=hint
+resharper_xaml_ignored_path_highlighting_highlighting=none
+resharper_xaml_index_out_of_grid_definition_highlighting=warning
+resharper_xaml_invalid_member_type_highlighting=error
+resharper_xaml_invalid_resource_target_type_highlighting=error
+resharper_xaml_invalid_resource_type_highlighting=error
+resharper_xaml_invalid_type_highlighting=error
+resharper_xaml_language_level_highlighting=error
+resharper_xaml_mapped_path_highlighting_highlighting=hint
+resharper_xaml_method_arguments_will_be_ignored_highlighting=warning
+resharper_xaml_missing_grid_index_highlighting=warning
+resharper_xaml_overloads_collision_highlighting=warning
+resharper_xaml_parent_is_out_of_current_component_tree_highlighting=warning
+resharper_xaml_path_error_highlighting=warning
+resharper_xaml_possible_null_reference_exception_highlighting=suggestion
+resharper_xaml_redundant_attached_property_highlighting=warning
+resharper_xaml_redundant_binding_mode_attribute_highlighting=warning
+resharper_xaml_redundant_collection_property_highlighting=warning
+resharper_xaml_redundant_freeze_attribute_highlighting=warning
+resharper_xaml_redundant_grid_definitions_highlighting=warning
+resharper_xaml_redundant_grid_span_highlighting=warning
+resharper_xaml_redundant_modifiers_attribute_highlighting=warning
+resharper_xaml_redundant_namespace_alias_highlighting=warning
+resharper_xaml_redundant_name_attribute_highlighting=warning
+resharper_xaml_redundant_property_type_qualifier_highlighting=warning
+resharper_xaml_redundant_resource_highlighting=warning
+resharper_xaml_redundant_styled_value_highlighting=warning
+resharper_xaml_redundant_update_source_trigger_attribute_highlighting=warning
+resharper_xaml_redundant_xamarin_forms_class_declaration_highlighting=warning
+resharper_xaml_resource_file_path_case_mismatch_highlighting=warning
+resharper_xaml_routed_event_resolve_error_highlighting=warning
+resharper_xaml_static_resource_not_resolved_highlighting=warning
+resharper_xaml_style_class_not_found_highlighting=warning
+resharper_xaml_style_invalid_target_type_highlighting=error
+resharper_xaml_unexpected_text_token_highlighting=error
+resharper_xaml_xaml_duplicate_device_family_type_view_highlighting_highlighting=error
+resharper_xaml_xaml_mismatched_device_family_view_clr_name_highlighting_highlighting=warning
+resharper_xaml_xaml_relative_source_default_mode_warning_highlighting_highlighting=warning
+resharper_xaml_xaml_unknown_device_family_type_highlighting_highlighting=warning
+resharper_xaml_xaml_xamarin_forms_data_type_and_binding_context_type_mismatched_highlighting_highlighting=warning
+resharper_xaml_x_key_attribute_disallowed_highlighting=error
+resharper_xml_doc_comment_syntax_problem_highlighting=warning
+resharper_xunit_xunit_test_with_console_output_highlighting=warning
+
+# Standard properties
+end_of_line= crlf
+csharp_indent_labels = one_less_than_current
+csharp_prefer_simple_using_statement = true:suggestion
+csharp_prefer_braces = true:silent
+csharp_style_prefer_method_group_conversion = true:silent
+csharp_style_expression_bodied_methods = false:silent
+csharp_style_expression_bodied_constructors = false:silent
+csharp_style_expression_bodied_operators = false:silent
+csharp_style_expression_bodied_properties = true:silent
+csharp_style_expression_bodied_indexers = true:silent
+csharp_style_expression_bodied_accessors = true:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_local_functions = false:silent
+csharp_style_throw_expression = true:suggestion
+csharp_style_prefer_null_check_over_type_check = true:suggestion
+csharp_prefer_simple_default_expression = 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_tuple_swap = true:suggestion
+csharp_style_inlined_variable_declaration = true:suggestion
+
+[*.{cshtml,htm,html,proto,razor}]
+indent_style=tab
+indent_size=tab
+tab_width=4
+
+[*.{asax,ascx,aspx,axaml,c,c++,cc,cginc,compute,cp,cpp,cs,css,cu,cuh,cxx,h,hh,hlsl,hlsli,hlslinc,hpp,hxx,inc,inl,ino,ipp,js,jsx,master,mpp,mq4,mq5,mqh,paml,skin,tpp,ts,tsx,usf,ush,vb,xaml,xamlx,xoml}]
+indent_style=space
+indent_size=4
+tab_width=4
+
+[*.{appxmanifest,asax,ascx,aspx,axaml,axml,build,c,c++,cc,cginc,compute,config,cp,cpp,cs,cshtml,csproj,css,cu,cuh,cxx,dbml,discomap,dtd,h,hh,hlsl,hlsli,hlslinc,hpp,htm,html,hxx,inc,inl,ino,ipp,js,json,jsproj,jsx,lsproj,master,mpp,mq4,mq5,mqh,njsproj,nuspec,paml,proj,props,proto,razor,resjson,resw,resx,skin,StyleCop,targets,tasks,tpp,ts,tsx,usf,ush,vb,vbproj,xaml,xamlx,xml,xoml,xsd}]
+indent_style=space
+indent_size= 4
+tab_width= 4
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+dotnet_style_prefer_auto_properties = true:silent
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
+dotnet_style_prefer_conditional_expression_over_assignment = true:silent
+dotnet_style_prefer_conditional_expression_over_return = true:silent
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
+dotnet_style_prefer_compound_assignment = true:suggestion
+dotnet_style_prefer_simplified_interpolation = true:suggestion
+dotnet_style_namespace_match_folder = true:suggestion
diff --git a/Penumbra.GameData/Enums/ChangedItemExtensions.cs b/Penumbra.GameData/Enums/ChangedItemExtensions.cs
index 68674268..85fb078e 100644
--- a/Penumbra.GameData/Enums/ChangedItemExtensions.cs
+++ b/Penumbra.GameData/Enums/ChangedItemExtensions.cs
@@ -1,4 +1,5 @@
using System;
+using Dalamud.Data;
using Lumina.Excel.GeneratedSheets;
using Penumbra.Api.Enums;
using Action = Lumina.Excel.GeneratedSheets.Action;
@@ -18,13 +19,13 @@ public static class ChangedItemExtensions
};
}
- public static object? GetObject( this ChangedItemType type, uint id )
+ public static object? GetObject( this ChangedItemType type, DataManager manager, uint id )
{
return type switch
{
ChangedItemType.None => null,
- ChangedItemType.Item => ObjectIdentification.DataManager?.GetExcelSheet< Item >()?.GetRow( id ),
- ChangedItemType.Action => ObjectIdentification.DataManager?.GetExcelSheet< Action >()?.GetRow( id ),
+ ChangedItemType.Item => manager.GetExcelSheet< Item >()?.GetRow( id ),
+ ChangedItemType.Action => manager.GetExcelSheet< Action >()?.GetRow( id ),
ChangedItemType.Customization => null,
_ => throw new ArgumentOutOfRangeException( nameof( type ), type, null ),
};
diff --git a/Penumbra.GameData/GameData.cs b/Penumbra.GameData/GameData.cs
index c8885c3c..7eace70e 100644
--- a/Penumbra.GameData/GameData.cs
+++ b/Penumbra.GameData/GameData.cs
@@ -1,48 +1,73 @@
using System;
using System.Collections.Generic;
+using Dalamud;
using Dalamud.Data;
+using Dalamud.Plugin;
using Lumina.Excel.GeneratedSheets;
using Penumbra.GameData.Enums;
using Penumbra.GameData.Structs;
-using Penumbra.GameData.Util;
namespace Penumbra.GameData;
public static class GameData
{
- internal static ObjectIdentification? Identification;
- internal static readonly GamePathParser GamePathParser = new();
+ ///
+ /// Obtain an object identifier that can link a game path to game objects that use it, using your client language.
+ ///
+ public static IObjectIdentifier GetIdentifier(DalamudPluginInterface pluginInterface, DataManager dataManager)
+ => new ObjectIdentification(pluginInterface, dataManager, dataManager.Language);
- public static IObjectIdentifier GetIdentifier( DataManager dataManager )
- {
- Identification ??= new ObjectIdentification( dataManager, dataManager.Language );
- return Identification;
- }
-
- public static IObjectIdentifier GetIdentifier()
- {
- if( Identification == null )
- {
- throw new Exception( "Object Identification was not initialized." );
- }
-
- return Identification;
- }
+ ///
+ /// Obtain an object identifier that can link a game path to game objects that use it using the given language.
+ ///
+ public static IObjectIdentifier GetIdentifier(DalamudPluginInterface pluginInterface, DataManager dataManager, ClientLanguage language)
+ => new ObjectIdentification(pluginInterface, dataManager, language);
+ ///
+ /// Obtain a parser for game paths.
+ ///
public static IGamePathParser GetGamePathParser()
- => GamePathParser;
+ => new GamePathParser();
}
-public interface IObjectIdentifier
-{
- public void Identify( IDictionary< string, object? > set, GamePath path );
- public Dictionary< string, object? > Identify( GamePath path );
- public Item? Identify( SetId setId, WeaponType weaponType, ushort variant, EquipSlot slot );
+public interface IObjectIdentifier : IDisposable
+{
+ ///
+ /// An accessible parser for game paths.
+ ///
+ public IGamePathParser GamePathParser { get; }
+
+ ///
+ /// Add all known game objects using the given game path to the dictionary.
+ ///
+ /// A pre-existing dictionary to which names (and optional linked objects) can be added.
+ /// The game path to identify.
+ public void Identify(IDictionary set, string path);
+
+ ///
+ /// Return named information and possibly linked objects for all known game objects using the given path.
+ ///
+ /// The game path to identify.
+ public Dictionary Identify(string path);
+
+ ///
+ /// Identify an equippable item by its model values.
+ ///
+ /// The primary model ID for the piece of equipment.
+ /// The secondary model ID for weapons, WeaponType.Zero for equipment and accessories.
+ /// The variant ID of the model.
+ /// The equipment slot the piece of equipment uses.
+ ///
+ public IReadOnlyList- ? Identify(SetId setId, WeaponType weaponType, ushort variant, EquipSlot slot);
+
+ ///
+ public IReadOnlyList
- ? Identify(SetId setId, ushort variant, EquipSlot slot)
+ => Identify(setId, 0, variant, slot);
}
public interface IGamePathParser
{
- public ObjectType PathToObjectType( GamePath path );
- public GameObjectInfo GetFileInfo( GamePath path );
- public string VfxToKey( GamePath path );
-}
\ No newline at end of file
+ public ObjectType PathToObjectType(string path);
+ public GameObjectInfo GetFileInfo(string path);
+ public string VfxToKey(string path);
+}
diff --git a/Penumbra.GameData/GamePathParser.cs b/Penumbra.GameData/GamePathParser.cs
index 3a255bdd..d1475a10 100644
--- a/Penumbra.GameData/GamePathParser.cs
+++ b/Penumbra.GameData/GamePathParser.cs
@@ -1,16 +1,66 @@
using System;
using System.Collections.Generic;
+using System.IO;
+using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Dalamud.Logging;
using Penumbra.GameData.Enums;
using Penumbra.GameData.Structs;
-using Penumbra.GameData.Util;
namespace Penumbra.GameData;
internal class GamePathParser : IGamePathParser
{
+ public GameObjectInfo GetFileInfo(string path)
+ {
+ path = path.ToLowerInvariant().Replace('\\', '/');
+
+ var (fileType, objectType, match) = ParseGamePath(path);
+ if (match == null || !match.Success)
+ return new GameObjectInfo
+ {
+ FileType = fileType,
+ ObjectType = objectType,
+ };
+
+ try
+ {
+ var groups = match.Groups;
+ switch (objectType)
+ {
+ case ObjectType.Accessory: return HandleEquipment(fileType, groups);
+ case ObjectType.Equipment: return HandleEquipment(fileType, groups);
+ case ObjectType.Weapon: return HandleWeapon(fileType, groups);
+ case ObjectType.Map: return HandleMap(fileType, groups);
+ case ObjectType.Monster: return HandleMonster(fileType, groups);
+ case ObjectType.DemiHuman: return HandleDemiHuman(fileType, groups);
+ case ObjectType.Character: return HandleCustomization(fileType, groups);
+ case ObjectType.Icon: return HandleIcon(fileType, groups);
+ }
+ }
+ catch (Exception e)
+ {
+ PluginLog.Error($"Could not parse {path}:\n{e}");
+ }
+
+ return new GameObjectInfo
+ {
+ FileType = fileType,
+ ObjectType = objectType,
+ };
+ }
+
+ public string VfxToKey(string path)
+ {
+ var match = _vfxRegexTmb.Match(path);
+ if (match.Success)
+ return match.Groups["key"].Value.ToLowerInvariant();
+
+ match = _vfxRegexPap.Match(path);
+ return match.Success ? match.Groups["key"].Value.ToLowerInvariant() : string.Empty;
+ }
+
private const string CharacterFolder = "chara";
private const string EquipmentFolder = "equipment";
private const string PlayerFolder = "human";
@@ -30,62 +80,74 @@ internal class GamePathParser : IGamePathParser
private const string WorldFolder1 = "bgcommon";
private const string WorldFolder2 = "bg";
- // @formatter:off
- private readonly Dictionary> _regexes = new()
- { { FileType.Font, new Dictionary< ObjectType, Regex[] >(){ { ObjectType.Font, new Regex[]{ new(@"common/font/(?'fontname'.*)_(?'id'\d\d)(_lobby)?\.fdt") } } } }
- , { FileType.Texture, new Dictionary< ObjectType, Regex[] >()
- { { ObjectType.Icon, new Regex[]{ new(@"ui/icon/(?'group'\d*)(/(?'lang'[a-z]{2}))?(/(?'hq'hq))?/(?'id'\d*)(?'hr'_hr1)?\.tex") } }
- , { ObjectType.Map, new Regex[]{ new(@"ui/map/(?'id'[a-z0-9]{4})/(?'variant'\d{2})/\k'id'\k'variant'(?'suffix'[a-z])?(_[a-z])?\.tex") } }
- , { ObjectType.Weapon, new Regex[]{ new(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/texture/v(?'variant'\d{2})_w\k'id'b\k'weapon'(_[a-z])?_[a-z]\.tex") } }
- , { ObjectType.Monster, new Regex[]{ new(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/texture/v(?'variant'\d{2})_m\k'monster'b\k'id'(_[a-z])?_[a-z]\.tex") } }
- , { ObjectType.Equipment, new Regex[]{ new(@"chara/equipment/e(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex") } }
- , { ObjectType.DemiHuman, new Regex[]{ new(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/texture/v(?'variant'\d{2})_d\k'id'e\k'equip'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex") } }
- , { ObjectType.Accessory, new Regex[]{ new(@"chara/accessory/a(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})_[a-z]\.tex") } }
- , { ObjectType.Character, new Regex[]{ new(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture/(?'minus'(--)?)(v(?'variant'\d{2})_)?c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?(_[a-z])?_[a-z]\.tex")
- , new(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture")
- , new(@"chara/common/texture/skin(?'skin'.*)\.tex")
- , new(@"chara/common/texture/(?'catchlight'catchlight)(.*)\.tex")
- , new(@"chara/common/texture/decal_(?'location'[a-z]+)/[-_]?decal_(?'id'\d+).tex") } } } }
- , { FileType.Model, new Dictionary< ObjectType, Regex[] >()
- { { ObjectType.Weapon, new Regex[]{ new(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/model/w\k'id'b\k'weapon'\.mdl") } }
- , { ObjectType.Monster, new Regex[]{ new(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/model/m\k'monster'b\k'id'\.mdl") } }
- , { ObjectType.Equipment, new Regex[]{ new(@"chara/equipment/e(?'id'\d{4})/model/c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})\.mdl") } }
- , { ObjectType.DemiHuman, new Regex[]{ new(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/model/d\k'id'e\k'equip'_(?'slot'[a-z]{3})\.mdl") } }
- , { ObjectType.Accessory, new Regex[]{ new(@"chara/accessory/a(?'id'\d{4})/model/c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})\.mdl") } }
- , { ObjectType.Character, new Regex[]{ new(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/model/c\k'race'\k'typeabr'\k'id'_(?'slot'[a-z]{3})\.mdl") } } } }
- , { FileType.Material, new Dictionary< ObjectType, Regex[] >()
- { { ObjectType.Weapon, new Regex[]{ new(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/material/v(?'variant'\d{4})/mt_w\k'id'b\k'weapon'_[a-z]\.mtrl") } }
- , { ObjectType.Monster, new Regex[]{ new(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/material/v(?'variant'\d{4})/mt_m\k'monster'b\k'id'_[a-z]\.mtrl") } }
- , { ObjectType.Equipment, new Regex[]{ new(@"chara/equipment/e(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})_[a-z]\.mtrl") } }
- , { ObjectType.DemiHuman, new Regex[]{ new(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/material/v(?'variant'\d{4})/mt_d\k'id'e\k'equip'_(?'slot'[a-z]{3})_[a-z]\.mtrl") } }
- , { ObjectType.Accessory, new Regex[]{ new(@"chara/accessory/a(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})_[a-z]\.mtrl") } }
- , { ObjectType.Character, new Regex[]{ new( @"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/material(/v(?'variant'\d{4}))?/mt_c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?_[a-z]\.mtrl" ) } } } }
- , { FileType.Imc, new Dictionary< ObjectType, Regex[] >()
- { { ObjectType.Weapon, new Regex[]{ new(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/b\k'weapon'\.imc") } }
- , { ObjectType.Monster, new Regex[]{ new(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/b\k'id'\.imc") } }
- , { ObjectType.Equipment, new Regex[]{ new(@"chara/equipment/e(?'id'\d{4})/e\k'id'\.imc") } }
- , { ObjectType.DemiHuman, new Regex[]{ new(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/e\k'equip'\.imc") } }
- , { ObjectType.Accessory, new Regex[]{ new(@"chara/accessory/a(?'id'\d{4})/a\k'id'\.imc") } } } },
- };
+ // @formatter:off
+ // language=regex
+ private readonly IReadOnlyDictionary>> _regexes = new Dictionary>>()
+ {
+ [FileType.Font] = new Dictionary>
+ {
+ [ObjectType.Font] = CreateRegexes( @"common/font/(?'fontname'.*)_(?'id'\d\d)(_lobby)?\.fdt"),
+ },
+ [FileType.Texture] = new Dictionary>
+ {
+ [ObjectType.Icon] = CreateRegexes( @"ui/icon/(?'group'\d*)(/(?'lang'[a-z]{2}))?(/(?'hq'hq))?/(?'id'\d*)(?'hr'_hr1)?\.tex"),
+ [ObjectType.Map] = CreateRegexes( @"ui/map/(?'id'[a-z0-9]{4})/(?'variant'\d{2})/\k'id'\k'variant'(?'suffix'[a-z])?(_[a-z])?\.tex"),
+ [ObjectType.Weapon] = CreateRegexes( @"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/texture/v(?'variant'\d{2})_w\k'id'b\k'weapon'(_[a-z])?_[a-z]\.tex"),
+ [ObjectType.Monster] = CreateRegexes( @"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/texture/v(?'variant'\d{2})_m\k'monster'b\k'id'(_[a-z])?_[a-z]\.tex"),
+ [ObjectType.Equipment] = CreateRegexes( @"chara/equipment/e(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex"),
+ [ObjectType.DemiHuman] = CreateRegexes( @"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/texture/v(?'variant'\d{2})_d\k'id'e\k'equip'_(?'slot'[a-z]{3})(_[a-z])?_[a-z]\.tex"),
+ [ObjectType.Accessory] = CreateRegexes( @"chara/accessory/a(?'id'\d{4})/texture/v(?'variant'\d{2})_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})_[a-z]\.tex"),
+ [ObjectType.Character] = CreateRegexes( @"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture/(?'minus'(--)?)(v(?'variant'\d{2})_)?c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?(_[a-z])?_[a-z]\.tex"
+ , @"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/texture"
+ , @"chara/common/texture/skin(?'skin'.*)\.tex"
+ , @"chara/common/texture/(?'catchlight'catchlight)(.*)\.tex"
+ , @"chara/common/texture/decal_(?'location'[a-z]+)/[-_]?decal_(?'id'\d+).tex"),
+ },
+ [FileType.Model] = new Dictionary>
+ {
+ [ObjectType.Weapon] = CreateRegexes(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/model/w\k'id'b\k'weapon'\.mdl"),
+ [ObjectType.Monster] = CreateRegexes(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/model/m\k'monster'b\k'id'\.mdl"),
+ [ObjectType.Equipment] = CreateRegexes(@"chara/equipment/e(?'id'\d{4})/model/c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})\.mdl"),
+ [ObjectType.DemiHuman] = CreateRegexes(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/model/d\k'id'e\k'equip'_(?'slot'[a-z]{3})\.mdl"),
+ [ObjectType.Accessory] = CreateRegexes(@"chara/accessory/a(?'id'\d{4})/model/c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})\.mdl"),
+ [ObjectType.Character] = CreateRegexes(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/model/c\k'race'\k'typeabr'\k'id'_(?'slot'[a-z]{3})\.mdl"),
+ },
+ [FileType.Material] = new Dictionary>
+ {
+ [ObjectType.Weapon] = CreateRegexes(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/material/v(?'variant'\d{4})/mt_w\k'id'b\k'weapon'_[a-z]\.mtrl"),
+ [ObjectType.Monster] = CreateRegexes(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/material/v(?'variant'\d{4})/mt_m\k'monster'b\k'id'_[a-z]\.mtrl"),
+ [ObjectType.Equipment] = CreateRegexes(@"chara/equipment/e(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})e\k'id'_(?'slot'[a-z]{3})_[a-z]\.mtrl"),
+ [ObjectType.DemiHuman] = CreateRegexes(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/material/v(?'variant'\d{4})/mt_d\k'id'e\k'equip'_(?'slot'[a-z]{3})_[a-z]\.mtrl"),
+ [ObjectType.Accessory] = CreateRegexes(@"chara/accessory/a(?'id'\d{4})/material/v(?'variant'\d{4})/mt_c(?'race'\d{4})a\k'id'_(?'slot'[a-z]{3})_[a-z]\.mtrl"),
+ [ObjectType.Character] = CreateRegexes(@"chara/human/c(?'race'\d{4})/obj/(?'type'[a-z]+)/(?'typeabr'[a-z])(?'id'\d{4})/material(/v(?'variant'\d{4}))?/mt_c\k'race'\k'typeabr'\k'id'(_(?'slot'[a-z]{3}))?_[a-z]\.mtrl"),
+ },
+ [FileType.Imc] = new Dictionary>
+ {
+ [ObjectType.Weapon] = CreateRegexes(@"chara/weapon/w(?'id'\d{4})/obj/body/b(?'weapon'\d{4})/b\k'weapon'\.imc"),
+ [ObjectType.Monster] = CreateRegexes(@"chara/monster/m(?'monster'\d{4})/obj/body/b(?'id'\d{4})/b\k'id'\.imc"),
+ [ObjectType.Equipment] = CreateRegexes(@"chara/equipment/e(?'id'\d{4})/e\k'id'\.imc"),
+ [ObjectType.DemiHuman] = CreateRegexes(@"chara/demihuman/d(?'id'\d{4})/obj/equipment/e(?'equip'\d{4})/e\k'equip'\.imc"),
+ [ObjectType.Accessory] = CreateRegexes(@"chara/accessory/a(?'id'\d{4})/a\k'id'\.imc"),
+ },
+ };
// @formatter:on
- public ObjectType PathToObjectType( GamePath path )
+
+ private static IReadOnlyList CreateRegexes(params string[] regexes)
+ => regexes.Select(s => new Regex(s, RegexOptions.Compiled)).ToArray();
+
+ public ObjectType PathToObjectType(string path)
{
- if( path.Empty )
- {
+ if (path.Length == 0)
return ObjectType.Unknown;
- }
- string p = path;
- var folders = p.Split( '/' );
- if( folders.Length < 2 )
- {
+ var folders = path.Split('/');
+ if (folders.Length < 2)
return ObjectType.Unknown;
- }
- return folders[ 0 ] switch
+ return folders[0] switch
{
- CharacterFolder => folders[ 1 ] switch
+ CharacterFolder => folders[1] switch
{
EquipmentFolder => ObjectType.Equipment,
AccessoryFolder => ObjectType.Accessory,
@@ -96,7 +158,7 @@ internal class GamePathParser : IGamePathParser
CommonFolder => ObjectType.Character,
_ => ObjectType.Unknown,
},
- UiFolder => folders[ 1 ] switch
+ UiFolder => folders[1] switch
{
IconFolder => ObjectType.Icon,
LoadingFolder => ObjectType.LoadingScreen,
@@ -104,13 +166,13 @@ internal class GamePathParser : IGamePathParser
InterfaceFolder => ObjectType.Interface,
_ => ObjectType.Unknown,
},
- CommonFolder => folders[ 1 ] switch
+ CommonFolder => folders[1] switch
{
FontFolder => ObjectType.Font,
_ => ObjectType.Unknown,
},
HousingFolder => ObjectType.Housing,
- WorldFolder1 => folders[ 1 ] switch
+ WorldFolder1 => folders[1] switch
{
HousingFolder => ObjectType.Housing,
_ => ObjectType.World,
@@ -121,152 +183,120 @@ internal class GamePathParser : IGamePathParser
};
}
- private (FileType, ObjectType, Match?) ParseGamePath( GamePath path )
+ private (FileType, ObjectType, Match?) ParseGamePath(string path)
{
- if( !Names.ExtensionToFileType.TryGetValue( Extension( path ), out var fileType ) )
- {
+ if (!Names.ExtensionToFileType.TryGetValue(Path.GetExtension(path), out var fileType))
fileType = FileType.Unknown;
- }
- var objectType = PathToObjectType( path );
+ var objectType = PathToObjectType(path);
- if( !_regexes.TryGetValue( fileType, out var objectDict ) )
+ if (!_regexes.TryGetValue(fileType, out var objectDict))
+ return (fileType, objectType, null);
+
+ if (!objectDict.TryGetValue(objectType, out var regexes))
+ return (fileType, objectType, null);
+
+ foreach (var regex in regexes)
{
- return ( fileType, objectType, null );
+ var match = regex.Match(path);
+ if (match.Success)
+ return (fileType, objectType, match);
}
- if( !objectDict.TryGetValue( objectType, out var regexes ) )
- {
- return ( fileType, objectType, null );
- }
-
- foreach( var regex in regexes )
- {
- var match = regex.Match( path );
- if( match.Success )
- {
- return ( fileType, objectType, match );
- }
- }
-
- return ( fileType, objectType, null );
+ return (fileType, objectType, null);
}
- private static string Extension( string filename )
+ private static GameObjectInfo HandleEquipment(FileType fileType, GroupCollection groups)
{
- var extIdx = filename.LastIndexOf( '.' );
- return extIdx < 0 ? "" : filename.Substring( extIdx );
+ var setId = ushort.Parse(groups["id"].Value);
+ if (fileType == FileType.Imc)
+ return GameObjectInfo.Equipment(fileType, setId);
+
+ var gr = Names.GenderRaceFromCode(groups["race"].Value);
+ var slot = Names.SuffixToEquipSlot[groups["slot"].Value];
+ if (fileType == FileType.Model)
+ return GameObjectInfo.Equipment(fileType, setId, gr, slot);
+
+ var variant = byte.Parse(groups["variant"].Value);
+ return GameObjectInfo.Equipment(fileType, setId, gr, slot, variant);
}
- private static GameObjectInfo HandleEquipment( FileType fileType, GroupCollection groups )
+ private static GameObjectInfo HandleWeapon(FileType fileType, GroupCollection groups)
{
- var setId = ushort.Parse( groups[ "id" ].Value );
- if( fileType == FileType.Imc )
- {
- return GameObjectInfo.Equipment( fileType, setId );
- }
+ var weaponId = ushort.Parse(groups["weapon"].Value);
+ var setId = ushort.Parse(groups["id"].Value);
+ if (fileType == FileType.Imc || fileType == FileType.Model)
+ return GameObjectInfo.Weapon(fileType, setId, weaponId);
- var gr = Names.GenderRaceFromCode( groups[ "race" ].Value );
- var slot = Names.SuffixToEquipSlot[ groups[ "slot" ].Value ];
- if( fileType == FileType.Model )
- {
- return GameObjectInfo.Equipment( fileType, setId, gr, slot );
- }
-
- var variant = byte.Parse( groups[ "variant" ].Value );
- return GameObjectInfo.Equipment( fileType, setId, gr, slot, variant );
+ var variant = byte.Parse(groups["variant"].Value);
+ return GameObjectInfo.Weapon(fileType, setId, weaponId, variant);
}
- private static GameObjectInfo HandleWeapon( FileType fileType, GroupCollection groups )
+ private static GameObjectInfo HandleMonster(FileType fileType, GroupCollection groups)
{
- var weaponId = ushort.Parse( groups[ "weapon" ].Value );
- var setId = ushort.Parse( groups[ "id" ].Value );
- if( fileType == FileType.Imc || fileType == FileType.Model )
- {
- return GameObjectInfo.Weapon( fileType, setId, weaponId );
- }
+ var monsterId = ushort.Parse(groups["monster"].Value);
+ var bodyId = ushort.Parse(groups["id"].Value);
+ if (fileType == FileType.Imc || fileType == FileType.Model)
+ return GameObjectInfo.Monster(fileType, monsterId, bodyId);
- var variant = byte.Parse( groups[ "variant" ].Value );
- return GameObjectInfo.Weapon( fileType, setId, weaponId, variant );
+ var variant = byte.Parse(groups["variant"].Value);
+ return GameObjectInfo.Monster(fileType, monsterId, bodyId, variant);
}
- private static GameObjectInfo HandleMonster( FileType fileType, GroupCollection groups )
+ private static GameObjectInfo HandleDemiHuman(FileType fileType, GroupCollection groups)
{
- var monsterId = ushort.Parse( groups[ "monster" ].Value );
- var bodyId = ushort.Parse( groups[ "id" ].Value );
- if( fileType == FileType.Imc || fileType == FileType.Model )
- {
- return GameObjectInfo.Monster( fileType, monsterId, bodyId );
- }
+ var demiHumanId = ushort.Parse(groups["id"].Value);
+ var equipId = ushort.Parse(groups["equip"].Value);
+ if (fileType == FileType.Imc)
+ return GameObjectInfo.DemiHuman(fileType, demiHumanId, equipId);
- var variant = byte.Parse( groups[ "variant" ].Value );
- return GameObjectInfo.Monster( fileType, monsterId, bodyId, variant );
+ var slot = Names.SuffixToEquipSlot[groups["slot"].Value];
+ if (fileType == FileType.Model)
+ return GameObjectInfo.DemiHuman(fileType, demiHumanId, equipId, slot);
+
+ var variant = byte.Parse(groups["variant"].Value);
+ return GameObjectInfo.DemiHuman(fileType, demiHumanId, equipId, slot, variant);
}
- private static GameObjectInfo HandleDemiHuman( FileType fileType, GroupCollection groups )
+ private static GameObjectInfo HandleCustomization(FileType fileType, GroupCollection groups)
{
- var demiHumanId = ushort.Parse( groups[ "id" ].Value );
- var equipId = ushort.Parse( groups[ "equip" ].Value );
- if( fileType == FileType.Imc )
+ if (groups["catchlight"].Success)
+ return GameObjectInfo.Customization(fileType, CustomizationType.Iris);
+
+ if (groups["skin"].Success)
+ return GameObjectInfo.Customization(fileType, CustomizationType.Skin);
+
+ var id = ushort.Parse(groups["id"].Value);
+ if (groups["location"].Success)
{
- return GameObjectInfo.DemiHuman( fileType, demiHumanId, equipId );
+ var tmpType = groups["location"].Value == "face" ? CustomizationType.DecalFace
+ : groups["location"].Value == "equip" ? CustomizationType.DecalEquip : CustomizationType.Unknown;
+ return GameObjectInfo.Customization(fileType, tmpType, id);
}
- var slot = Names.SuffixToEquipSlot[ groups[ "slot" ].Value ];
- if( fileType == FileType.Model )
- {
- return GameObjectInfo.DemiHuman( fileType, demiHumanId, equipId, slot );
- }
-
- var variant = byte.Parse( groups[ "variant" ].Value );
- return GameObjectInfo.DemiHuman( fileType, demiHumanId, equipId, slot, variant );
- }
-
- private static GameObjectInfo HandleCustomization( FileType fileType, GroupCollection groups )
- {
- if( groups[ "catchlight" ].Success )
- {
- return GameObjectInfo.Customization( fileType, CustomizationType.Iris );
- }
-
- if( groups[ "skin" ].Success )
- {
- return GameObjectInfo.Customization( fileType, CustomizationType.Skin );
- }
-
- var id = ushort.Parse( groups[ "id" ].Value );
- if( groups[ "location" ].Success )
- {
- var tmpType = groups[ "location" ].Value == "face" ? CustomizationType.DecalFace
- : groups[ "location" ].Value == "equip" ? CustomizationType.DecalEquip : CustomizationType.Unknown;
- return GameObjectInfo.Customization( fileType, tmpType, id );
- }
-
- var gr = Names.GenderRaceFromCode( groups[ "race" ].Value );
- var bodySlot = Names.StringToBodySlot[ groups[ "type" ].Value ];
- var type = groups[ "slot" ].Success
- ? Names.SuffixToCustomizationType[ groups[ "slot" ].Value ]
+ var gr = Names.GenderRaceFromCode(groups["race"].Value);
+ var bodySlot = Names.StringToBodySlot[groups["type"].Value];
+ var type = groups["slot"].Success
+ ? Names.SuffixToCustomizationType[groups["slot"].Value]
: CustomizationType.Skin;
- if( fileType == FileType.Material )
+ if (fileType == FileType.Material)
{
- var variant = groups[ "variant" ].Success ? byte.Parse( groups[ "variant" ].Value ) : ( byte )0;
- return GameObjectInfo.Customization( fileType, type, id, gr, bodySlot, variant );
+ var variant = groups["variant"].Success ? byte.Parse(groups["variant"].Value) : (byte)0;
+ return GameObjectInfo.Customization(fileType, type, id, gr, bodySlot, variant);
}
- return GameObjectInfo.Customization( fileType, type, id, gr, bodySlot );
+ return GameObjectInfo.Customization(fileType, type, id, gr, bodySlot);
}
- private static GameObjectInfo HandleIcon( FileType fileType, GroupCollection groups )
+ private static GameObjectInfo HandleIcon(FileType fileType, GroupCollection groups)
{
- var hq = groups[ "hq" ].Success;
- var hr = groups[ "hr" ].Success;
- var id = uint.Parse( groups[ "id" ].Value );
- if( !groups[ "lang" ].Success )
- {
- return GameObjectInfo.Icon( fileType, id, hq, hr );
- }
+ var hq = groups["hq"].Success;
+ var hr = groups["hr"].Success;
+ var id = uint.Parse(groups["id"].Value);
+ if (!groups["lang"].Success)
+ return GameObjectInfo.Icon(fileType, id, hq, hr);
- var language = groups[ "lang" ].Value switch
+ var language = groups["lang"].Value switch
{
"en" => Dalamud.ClientLanguage.English,
"ja" => Dalamud.ClientLanguage.Japanese,
@@ -274,65 +304,23 @@ internal class GamePathParser : IGamePathParser
"fr" => Dalamud.ClientLanguage.French,
_ => Dalamud.ClientLanguage.English,
};
- return GameObjectInfo.Icon( fileType, id, hq, hr, language );
+ return GameObjectInfo.Icon(fileType, id, hq, hr, language);
}
- private static GameObjectInfo HandleMap( FileType fileType, GroupCollection groups )
+ private static GameObjectInfo HandleMap(FileType fileType, GroupCollection groups)
{
- var map = Encoding.ASCII.GetBytes( groups[ "id" ].Value );
- var variant = byte.Parse( groups[ "variant" ].Value );
- if( groups[ "suffix" ].Success )
+ var map = Encoding.ASCII.GetBytes(groups["id"].Value);
+ var variant = byte.Parse(groups["variant"].Value);
+ if (groups["suffix"].Success)
{
- var suffix = Encoding.ASCII.GetBytes( groups[ "suffix" ].Value )[ 0 ];
- return GameObjectInfo.Map( fileType, map[ 0 ], map[ 1 ], map[ 2 ], map[ 3 ], variant, suffix );
+ var suffix = Encoding.ASCII.GetBytes(groups["suffix"].Value)[0];
+ return GameObjectInfo.Map(fileType, map[0], map[1], map[2], map[3], variant, suffix);
}
- return GameObjectInfo.Map( fileType, map[ 0 ], map[ 1 ], map[ 2 ], map[ 3 ], variant );
+ return GameObjectInfo.Map(fileType, map[0], map[1], map[2], map[3], variant);
}
- public GameObjectInfo GetFileInfo( GamePath path )
- {
- var (fileType, objectType, match) = ParseGamePath( path );
- if( match == null || !match.Success )
- {
- return new GameObjectInfo { FileType = fileType, ObjectType = objectType };
- }
- try
- {
- var groups = match.Groups;
- switch( objectType )
- {
- case ObjectType.Accessory: return HandleEquipment( fileType, groups );
- case ObjectType.Equipment: return HandleEquipment( fileType, groups );
- case ObjectType.Weapon: return HandleWeapon( fileType, groups );
- case ObjectType.Map: return HandleMap( fileType, groups );
- case ObjectType.Monster: return HandleMonster( fileType, groups );
- case ObjectType.DemiHuman: return HandleDemiHuman( fileType, groups );
- case ObjectType.Character: return HandleCustomization( fileType, groups );
- case ObjectType.Icon: return HandleIcon( fileType, groups );
- }
- }
- catch( Exception e )
- {
- PluginLog.Error( $"Could not parse {path}:\n{e}" );
- }
-
- return new GameObjectInfo { FileType = fileType, ObjectType = objectType };
- }
-
- private readonly Regex _vfxRegexTmb = new(@"chara/action/(?'key'[^\s]+?)\.tmb");
- private readonly Regex _vfxRegexPap = new(@"chara/human/c0101/animation/a0001/[^\s]+?/(?'key'[^\s]+?)\.pap");
-
- public string VfxToKey( GamePath path )
- {
- var match = _vfxRegexTmb.Match( path );
- if( match.Success )
- {
- return match.Groups[ "key" ].Value.ToLowerInvariant();
- }
-
- match = _vfxRegexPap.Match( path );
- return match.Success ? match.Groups[ "key" ].Value.ToLowerInvariant() : string.Empty;
- }
-}
\ No newline at end of file
+ private readonly Regex _vfxRegexTmb = new(@"chara[\/]action[\/](?'key'[^\s]+?)\.tmb", RegexOptions.Compiled | RegexOptions.IgnoreCase);
+ private readonly Regex _vfxRegexPap = new(@"chara[\/]human[\/]c0101[\/]animation[\/]a0001[\/][^\s]+?[\/](?'key'[^\s]+?)\.pap", RegexOptions.Compiled | RegexOptions.IgnoreCase);
+}
diff --git a/Penumbra.GameData/ObjectIdentification.cs b/Penumbra.GameData/ObjectIdentification.cs
index fa137006..20642156 100644
--- a/Penumbra.GameData/ObjectIdentification.cs
+++ b/Penumbra.GameData/ObjectIdentification.cs
@@ -1,101 +1,193 @@
+using System;
using Dalamud;
using Dalamud.Data;
using Lumina.Excel.GeneratedSheets;
using Penumbra.GameData.Enums;
using Penumbra.GameData.Structs;
-using Penumbra.GameData.Util;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
+using Dalamud.Logging;
+using Dalamud.Plugin;
+using Dalamud.Utility;
using Action = Lumina.Excel.GeneratedSheets.Action;
namespace Penumbra.GameData;
internal class ObjectIdentification : IObjectIdentifier
{
- public static DataManager? DataManager = null!;
- private readonly List< (ulong, HashSet< Item >) > _weapons;
- private readonly List< (ulong, HashSet< Item >) > _equipment;
- private readonly Dictionary< string, HashSet< Action > > _actions;
+ public IGamePathParser GamePathParser { get; } = new GamePathParser();
- private static bool Add( IDictionary< ulong, HashSet< Item > > dict, ulong key, Item item )
+ public void Identify(IDictionary set, string path)
{
- if( dict.TryGetValue( key, out var list ) )
+ if (path.EndsWith(".pap", StringComparison.OrdinalIgnoreCase) || path.EndsWith(".tmb", StringComparison.OrdinalIgnoreCase))
{
- return list.Add( item );
- }
-
- dict[ key ] = new HashSet< Item > { item };
- return true;
- }
-
- private static ulong EquipmentKey( Item i )
- {
- var model = ( ulong )( ( Lumina.Data.Parsing.Quad )i.ModelMain ).A;
- var variant = ( ulong )( ( Lumina.Data.Parsing.Quad )i.ModelMain ).B;
- var slot = ( ulong )( ( EquipSlot )i.EquipSlotCategory.Row ).ToSlot();
- return ( model << 32 ) | ( slot << 16 ) | variant;
- }
-
- private static ulong WeaponKey( Item i, bool offhand )
- {
- var quad = offhand ? ( Lumina.Data.Parsing.Quad )i.ModelSub : ( Lumina.Data.Parsing.Quad )i.ModelMain;
- var model = ( ulong )quad.A;
- var type = ( ulong )quad.B;
- var variant = ( ulong )quad.C;
-
- return ( model << 32 ) | ( type << 16 ) | variant;
- }
-
- private void AddAction( string key, Action action )
- {
- if( key.Length == 0 )
- {
- return;
- }
-
- key = key.ToLowerInvariant();
- if( _actions.TryGetValue( key, out var actions ) )
- {
- actions.Add( action );
+ IdentifyVfx(set, path);
}
else
{
- _actions[ key ] = new HashSet< Action > { action };
+ var info = GamePathParser.GetFileInfo(path);
+ IdentifyParsed(set, info);
}
}
- public ObjectIdentification( DataManager dataManager, ClientLanguage clientLanguage )
+ public Dictionary Identify(string path)
{
- DataManager = dataManager;
- var items = dataManager.GetExcelSheet< Item >( clientLanguage )!;
- SortedList< ulong, HashSet< Item > > weapons = new();
- SortedList< ulong, HashSet< Item > > equipment = new();
- foreach( var item in items )
+ Dictionary ret = new();
+ Identify(ret, path);
+ return ret;
+ }
+
+ public IReadOnlyList
- ? Identify(SetId setId, WeaponType weaponType, ushort variant, EquipSlot slot)
+ {
+ switch (slot)
{
- switch( ( EquipSlot )item.EquipSlotCategory.Row )
+ case EquipSlot.MainHand:
+ case EquipSlot.OffHand:
{
- case EquipSlot.MainHand:
- case EquipSlot.OffHand:
- case EquipSlot.BothHand:
- if( item.ModelMain != 0 )
- {
- Add( weapons, WeaponKey( item, false ), item );
- }
+ var (begin, _) = FindIndexRange((List<(ulong, IReadOnlyList
- )>)_weapons,
+ ((ulong)setId << 32) | ((ulong)weaponType << 16) | variant,
+ 0xFFFFFFFFFFFF);
+ return begin >= 0 ? _weapons[begin].Item2 : null;
+ }
+ default:
+ {
+ var (begin, _) = FindIndexRange((List<(ulong, IReadOnlyList
- )>)_equipment,
+ ((ulong)setId << 32) | ((ulong)slot.ToSlot() << 16) | variant,
+ 0xFFFFFFFFFFFF);
+ return begin >= 0 ? _equipment[begin].Item2 : null;
+ }
+ }
+ }
- if( item.ModelSub != 0 )
- {
- Add( weapons, WeaponKey( item, true ), item );
- }
+ private const int Version = 1;
- break;
+ private readonly DataManager _dataManager;
+ private readonly DalamudPluginInterface _pluginInterface;
+ private readonly ClientLanguage _language;
+
+ private readonly IReadOnlyList<(ulong Key, IReadOnlyList
- Values)> _weapons;
+ private readonly IReadOnlyList<(ulong Key, IReadOnlyList
- Values)> _equipment;
+ private readonly IReadOnlyDictionary> _actions;
+
+ private readonly string _weaponsTag;
+ private readonly string _equipmentTag;
+ private readonly string _actionsTag;
+ private bool _disposed = false;
+
+ public ObjectIdentification(DalamudPluginInterface pluginInterface, DataManager dataManager, ClientLanguage language)
+ {
+ _pluginInterface = pluginInterface;
+ _dataManager = dataManager;
+ _language = language;
+
+ _weaponsTag = $"Penumbra.Identification.Weapons.{_language}.V{Version}";
+ _equipmentTag = $"Penumbra.Identification.Equipment.{_language}.V{Version}";
+ _actionsTag = $"Penumbra.Identification.Actions.{_language}.V{Version}";
+
+ try
+ {
+ _weapons = pluginInterface.GetOrCreateData(_weaponsTag, CreateWeaponList);
+ }
+ catch (Exception ex)
+ {
+ PluginLog.Error($"Error creating shared identification data for weapons:\n{ex}");
+ _weapons = CreateWeaponList();
+ }
+
+ try
+ {
+ _equipment = pluginInterface.GetOrCreateData(_equipmentTag, CreateEquipmentList);
+ }
+ catch (Exception ex)
+ {
+ PluginLog.Error($"Error creating shared identification data for equipment:\n{ex}");
+ _equipment = CreateEquipmentList();
+ }
+
+ try
+ {
+ _actions = pluginInterface.GetOrCreateData(_actionsTag, CreateActionList);
+ }
+ catch (Exception ex)
+ {
+ PluginLog.Error($"Error creating shared identification data for actions:\n{ex}");
+ _actions = CreateActionList();
+ }
+ }
+
+ public void Dispose()
+ {
+ if (_disposed)
+ return;
+
+ GC.SuppressFinalize(this);
+ _pluginInterface.RelinquishData(_weaponsTag);
+ _pluginInterface.RelinquishData(_equipmentTag);
+ _pluginInterface.RelinquishData(_actionsTag);
+ _disposed = true;
+ }
+
+ ~ObjectIdentification()
+ => Dispose();
+
+ private static bool Add(IDictionary> dict, ulong key, Item item)
+ {
+ if (dict.TryGetValue(key, out var list))
+ return list.Add(item);
+
+ dict[key] = new HashSet
- { item };
+ return true;
+ }
+
+ private static ulong EquipmentKey(Item i)
+ {
+ var model = (ulong)((Lumina.Data.Parsing.Quad)i.ModelMain).A;
+ var variant = (ulong)((Lumina.Data.Parsing.Quad)i.ModelMain).B;
+ var slot = (ulong)((EquipSlot)i.EquipSlotCategory.Row).ToSlot();
+ return (model << 32) | (slot << 16) | variant;
+ }
+
+ private static ulong WeaponKey(Item i, bool offhand)
+ {
+ var quad = offhand ? (Lumina.Data.Parsing.Quad)i.ModelSub : (Lumina.Data.Parsing.Quad)i.ModelMain;
+ var model = (ulong)quad.A;
+ var type = (ulong)quad.B;
+ var variant = (ulong)quad.C;
+
+ return (model << 32) | (type << 16) | variant;
+ }
+
+ private IReadOnlyList<(ulong Key, IReadOnlyList
- Values)> CreateWeaponList()
+ {
+ var items = _dataManager.GetExcelSheet
- (_language)!;
+ var storage = new SortedList>();
+ foreach (var item in items.Where(i
+ => (EquipSlot)i.EquipSlotCategory.Row is EquipSlot.MainHand or EquipSlot.OffHand or EquipSlot.BothHand))
+ {
+ if (item.ModelMain != 0)
+ Add(storage, WeaponKey(item, false), item);
+
+ if (item.ModelSub != 0)
+ Add(storage, WeaponKey(item, true), item);
+ }
+
+ return storage.Select(kvp => (kvp.Key, (IReadOnlyList
- )kvp.Value.ToArray())).ToList();
+ }
+
+ private IReadOnlyList<(ulong Key, IReadOnlyList
- Values)> CreateEquipmentList()
+ {
+ var items = _dataManager.GetExcelSheet
- (_language)!;
+ var storage = new SortedList>();
+ foreach (var item in items)
+ {
+ switch (((EquipSlot)item.EquipSlotCategory.Row).ToSlot())
+ {
// Accessories
case EquipSlot.RFinger:
case EquipSlot.Wrists:
case EquipSlot.Ears:
case EquipSlot.Neck:
- Add( equipment, EquipmentKey( item ), item );
- break;
// Equipment
case EquipSlot.Head:
case EquipSlot.Body:
@@ -108,147 +200,148 @@ internal class ObjectIdentification : IObjectIdentifier
case EquipSlot.FullBody:
case EquipSlot.HeadBody:
case EquipSlot.LegsFeet:
- Add( equipment, EquipmentKey( item ), item );
+ case EquipSlot.ChestHands:
+ Add(storage, EquipmentKey(item), item);
break;
- default: continue;
}
}
- _actions = new Dictionary< string, HashSet< Action > >();
- foreach( var action in dataManager.GetExcelSheet< Action >( clientLanguage )!
- .Where( a => a.Name.ToString().Any() ) )
+ return storage.Select(kvp => (kvp.Key, (IReadOnlyList
- )kvp.Value.ToArray())).ToList();
+ }
+
+ private IReadOnlyDictionary> CreateActionList()
+ {
+ var sheet = _dataManager.GetExcelSheet(_language)!;
+ var storage = new Dictionary>((int)sheet.RowCount);
+
+ void AddAction(string? key, Action action)
{
- var startKey = action.AnimationStart?.Value?.Name?.Value?.Key.ToString() ?? string.Empty;
- var endKey = action.AnimationEnd?.Value?.Key.ToString() ?? string.Empty;
- var hitKey = action.ActionTimelineHit?.Value?.Key.ToString() ?? string.Empty;
- AddAction( startKey, action );
- AddAction( endKey, action );
- AddAction( hitKey, action );
+ if (key.IsNullOrEmpty())
+ return;
+
+ key = key.ToLowerInvariant();
+ if (storage.TryGetValue(key, out var actions))
+ actions.Add(action);
+ else
+ storage[key] = new HashSet { action };
}
- _weapons = weapons.Select( kvp => ( kvp.Key, kvp.Value ) ).ToList();
- _equipment = equipment.Select( kvp => ( kvp.Key, kvp.Value ) ).ToList();
+ foreach (var action in sheet.Where(a => !a.Name.RawData.IsEmpty))
+ {
+ var startKey = action.AnimationStart?.Value?.Name?.Value?.Key.ToDalamudString().ToString();
+ var endKey = action.AnimationEnd?.Value?.Key.ToDalamudString().ToString();
+ var hitKey = action.ActionTimelineHit?.Value?.Key.ToDalamudString().ToString();
+ AddAction(startKey, action);
+ AddAction(endKey, action);
+ AddAction(hitKey, action);
+ }
+
+ return storage.ToDictionary(kvp => kvp.Key, kvp => (IReadOnlyList)kvp.Value.ToArray());
}
- private class Comparer : IComparer< (ulong, HashSet< Item >) >
+ private class Comparer : IComparer<(ulong, IReadOnlyList
- )>
{
- public int Compare( (ulong, HashSet< Item >) x, (ulong, HashSet< Item >) y )
- => x.Item1.CompareTo( y.Item1 );
+ public int Compare((ulong, IReadOnlyList
- ) x, (ulong, IReadOnlyList
- ) y)
+ => x.Item1.CompareTo(y.Item1);
}
- private static (int, int) FindIndexRange( List< (ulong, HashSet< Item >) > list, ulong key, ulong mask )
+ private static (int, int) FindIndexRange(List<(ulong, IReadOnlyList
- )> list, ulong key, ulong mask)
{
var maskedKey = key & mask;
- var idx = list.BinarySearch( 0, list.Count, ( key, null! ), new Comparer() );
- if( idx < 0 )
+ var idx = list.BinarySearch(0, list.Count, (key, null!), new Comparer());
+ if (idx < 0)
{
- if( ~idx == list.Count || maskedKey != ( list[ ~idx ].Item1 & mask ) )
- {
- return ( -1, -1 );
- }
+ if (~idx == list.Count || maskedKey != (list[~idx].Item1 & mask))
+ return (-1, -1);
idx = ~idx;
}
var endIdx = idx + 1;
- while( endIdx < list.Count && maskedKey == ( list[ endIdx ].Item1 & mask ) )
- {
+ while (endIdx < list.Count && maskedKey == (list[endIdx].Item1 & mask))
++endIdx;
- }
- return ( idx, endIdx );
+ return (idx, endIdx);
}
- private void FindEquipment( IDictionary< string, object? > set, GameObjectInfo info )
+ private void FindEquipment(IDictionary set, GameObjectInfo info)
{
- var key = ( ulong )info.PrimaryId << 32;
+ var key = (ulong)info.PrimaryId << 32;
var mask = 0xFFFF00000000ul;
- if( info.EquipSlot != EquipSlot.Unknown )
+ if (info.EquipSlot != EquipSlot.Unknown)
{
- key |= ( ulong )info.EquipSlot.ToSlot() << 16;
+ key |= (ulong)info.EquipSlot.ToSlot() << 16;
mask |= 0xFFFF0000;
}
- if( info.Variant != 0 )
+ if (info.Variant != 0)
{
key |= info.Variant;
mask |= 0xFFFF;
}
- var (start, end) = FindIndexRange( _equipment, key, mask );
- if( start == -1 )
- {
+ var (start, end) = FindIndexRange((List<(ulong, IReadOnlyList
- )>)_equipment, key, mask);
+ if (start == -1)
return;
- }
- for( ; start < end; ++start )
+ for (; start < end; ++start)
{
- foreach( var item in _equipment[ start ].Item2 )
- {
- set[ item.Name.ToString() ] = item;
- }
+ foreach (var item in _equipment[start].Item2)
+ set[item.Name.ToString()] = item;
}
}
- private void FindWeapon( IDictionary< string, object? > set, GameObjectInfo info )
+ private void FindWeapon(IDictionary set, GameObjectInfo info)
{
- var key = ( ulong )info.PrimaryId << 32;
+ var key = (ulong)info.PrimaryId << 32;
var mask = 0xFFFF00000000ul;
- if( info.SecondaryId != 0 )
+ if (info.SecondaryId != 0)
{
- key |= ( ulong )info.SecondaryId << 16;
+ key |= (ulong)info.SecondaryId << 16;
mask |= 0xFFFF0000;
}
- if( info.Variant != 0 )
+ if (info.Variant != 0)
{
key |= info.Variant;
mask |= 0xFFFF;
}
- var (start, end) = FindIndexRange( _weapons, key, mask );
- if( start == -1 )
- {
+ var (start, end) = FindIndexRange((List<(ulong, IReadOnlyList
- )>)_weapons, key, mask);
+ if (start == -1)
return;
- }
- for( ; start < end; ++start )
+ for (; start < end; ++start)
{
- foreach( var item in _weapons[ start ].Item2 )
- {
- set[ item.Name.ToString() ] = item;
- }
+ foreach (var item in _weapons[start].Item2)
+ set[item.Name.ToString()] = item;
}
}
- private static void AddCounterString( IDictionary< string, object? > set, string data )
+ private static void AddCounterString(IDictionary set, string data)
{
- if( set.TryGetValue( data, out var obj ) && obj is int counter )
- {
- set[ data ] = counter + 1;
- }
+ if (set.TryGetValue(data, out var obj) && obj is int counter)
+ set[data] = counter + 1;
else
- {
- set[ data ] = 1;
- }
+ set[data] = 1;
}
- private void IdentifyParsed( IDictionary< string, object? > set, GameObjectInfo info )
+ private void IdentifyParsed(IDictionary set, GameObjectInfo info)
{
- switch( info.ObjectType )
+ switch (info.ObjectType)
{
case ObjectType.Unknown:
- switch( info.FileType )
+ switch (info.FileType)
{
case FileType.Sound:
- AddCounterString( set, FileType.Sound.ToString() );
+ AddCounterString(set, FileType.Sound.ToString());
break;
case FileType.Animation:
case FileType.Pap:
- AddCounterString( set, FileType.Animation.ToString() );
+ AddCounterString(set, FileType.Animation.ToString());
break;
case FileType.Shader:
- AddCounterString( set, FileType.Shader.ToString() );
+ AddCounterString(set, FileType.Shader.ToString());
break;
}
@@ -260,50 +353,50 @@ internal class ObjectIdentification : IObjectIdentifier
case ObjectType.World:
case ObjectType.Housing:
case ObjectType.Font:
- AddCounterString( set, info.ObjectType.ToString() );
+ AddCounterString(set, info.ObjectType.ToString());
break;
case ObjectType.DemiHuman:
- set[ $"Demi Human: {info.PrimaryId}" ] = null;
+ set[$"Demi Human: {info.PrimaryId}"] = null;
break;
case ObjectType.Monster:
- set[ $"Monster: {info.PrimaryId}" ] = null;
+ set[$"Monster: {info.PrimaryId}"] = null;
break;
case ObjectType.Icon:
- set[ $"Icon: {info.IconId}" ] = null;
+ set[$"Icon: {info.IconId}"] = null;
break;
case ObjectType.Accessory:
case ObjectType.Equipment:
- FindEquipment( set, info );
+ FindEquipment(set, info);
break;
case ObjectType.Weapon:
- FindWeapon( set, info );
+ FindWeapon(set, info);
break;
case ObjectType.Character:
var (gender, race) = info.GenderRace.Split();
- var raceString = race != ModelRace.Unknown ? race.ToName() + " " : "";
- var genderString = gender != Gender.Unknown ? gender.ToName() + " " : "Player ";
- switch( info.CustomizationType )
+ var raceString = race != ModelRace.Unknown ? race.ToName() + " " : "";
+ var genderString = gender != Gender.Unknown ? gender.ToName() + " " : "Player ";
+ switch (info.CustomizationType)
{
case CustomizationType.Skin:
- set[ $"Customization: {raceString}{genderString}Skin Textures" ] = null;
+ set[$"Customization: {raceString}{genderString}Skin Textures"] = null;
break;
case CustomizationType.DecalFace:
- set[ $"Customization: Face Decal {info.PrimaryId}" ] = null;
+ set[$"Customization: Face Decal {info.PrimaryId}"] = null;
break;
case CustomizationType.Iris when race == ModelRace.Unknown:
- set[ $"Customization: All Eyes (Catchlight)" ] = null;
+ set[$"Customization: All Eyes (Catchlight)"] = null;
break;
case CustomizationType.DecalEquip:
- set[ $"Equipment Decal {info.PrimaryId}" ] = null;
+ set[$"Equipment Decal {info.PrimaryId}"] = null;
break;
default:
{
var customizationString = race == ModelRace.Unknown
- || info.BodySlot == BodySlot.Unknown
- || info.CustomizationType == CustomizationType.Unknown
+ || info.BodySlot == BodySlot.Unknown
+ || info.CustomizationType == CustomizationType.Unknown
? "Customization: Unknown"
: $"Customization: {race} {gender} {info.BodySlot} ({info.CustomizationType}) {info.PrimaryId}";
- set[ customizationString ] = null;
+ set[customizationString] = null;
break;
}
}
@@ -314,58 +407,13 @@ internal class ObjectIdentification : IObjectIdentifier
}
}
- private void IdentifyVfx( IDictionary< string, object? > set, GamePath path )
+ private void IdentifyVfx(IDictionary set, string path)
{
- var key = GameData.GamePathParser.VfxToKey( path );
- if( key.Length == 0 || !_actions.TryGetValue( key, out var actions ) )
- {
+ var key = GamePathParser.VfxToKey(path);
+ if (key.Length == 0 || !_actions.TryGetValue(key, out var actions))
return;
- }
- foreach( var action in actions )
- {
- set[ $"Action: {action.Name}" ] = action;
- }
+ foreach (var action in actions)
+ set[$"Action: {action.Name}"] = action;
}
-
- public void Identify( IDictionary< string, object? > set, GamePath path )
- {
- if( ( ( string )path ).EndsWith( ".pap" ) || ( ( string )path ).EndsWith( ".tmb" ) )
- {
- IdentifyVfx( set, path );
- }
- else
- {
- var info = GameData.GamePathParser.GetFileInfo( path );
- IdentifyParsed( set, info );
- }
- }
-
- public Dictionary< string, object? > Identify( GamePath path )
- {
- Dictionary< string, object? > ret = new();
- Identify( ret, path );
- return ret;
- }
-
- public Item? Identify( SetId setId, WeaponType weaponType, ushort variant, EquipSlot slot )
- {
- switch( slot )
- {
- case EquipSlot.MainHand:
- case EquipSlot.OffHand:
- {
- var (begin, _) = FindIndexRange( _weapons, ( ( ulong )setId << 32 ) | ( ( ulong )weaponType << 16 ) | variant,
- 0xFFFFFFFFFFFF );
- return begin >= 0 ? _weapons[ begin ].Item2.FirstOrDefault() : null;
- }
- default:
- {
- var (begin, _) = FindIndexRange( _equipment,
- ( ( ulong )setId << 32 ) | ( ( ulong )slot.ToSlot() << 16 ) | variant,
- 0xFFFFFFFFFFFF );
- return begin >= 0 ? _equipment[ begin ].Item2.FirstOrDefault() : null;
- }
- }
- }
-}
\ No newline at end of file
+}
diff --git a/Penumbra.GameData/Structs/CharacterEquip.cs b/Penumbra.GameData/Structs/CharacterEquip.cs
index 58a3b317..dc8801d8 100644
--- a/Penumbra.GameData/Structs/CharacterEquip.cs
+++ b/Penumbra.GameData/Structs/CharacterEquip.cs
@@ -1,6 +1,5 @@
using System;
using Penumbra.GameData.Enums;
-using Penumbra.GameData.Util;
using Penumbra.String.Functions;
namespace Penumbra.GameData.Structs;
diff --git a/Penumbra.GameData/Util/GamePath.cs b/Penumbra.GameData/Util/GamePath.cs
deleted file mode 100644
index 591b79fc..00000000
--- a/Penumbra.GameData/Util/GamePath.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using System;
-using System.IO;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using JsonSerializer = Newtonsoft.Json.JsonSerializer;
-
-namespace Penumbra.GameData.Util;
-
-public readonly struct GamePath : IComparable
-{
- public const int MaxGamePathLength = 256;
-
- private readonly string _path;
-
- private GamePath( string path, bool _ )
- => _path = path;
-
- public GamePath( string? path )
- {
- if( path is { Length: < MaxGamePathLength } )
- {
- _path = Lower( Trim( ReplaceSlash( path ) ) );
- }
- else
- {
- _path = string.Empty;
- }
- }
-
- public GamePath( FileInfo file, DirectoryInfo baseDir )
- => _path = CheckPre( file, baseDir ) ? Lower( Trim( ReplaceSlash( Substring( file, baseDir ) ) ) ) : "";
-
- private static bool CheckPre( FileInfo file, DirectoryInfo baseDir )
- => file.FullName.StartsWith( baseDir.FullName ) && file.FullName.Length < MaxGamePathLength;
-
- private static string Substring( FileInfo file, DirectoryInfo baseDir )
- => file.FullName.Substring( baseDir.FullName.Length );
-
- private static string ReplaceSlash( string path )
- => path.Replace( '\\', '/' );
-
- private static string Trim( string path )
- => path.TrimStart( '/' );
-
- private static string Lower( string path )
- => path.ToLowerInvariant();
-
- public static GamePath GenerateUnchecked( string path )
- => new(path, true);
-
- public static GamePath GenerateUncheckedLower( string path )
- => new(Lower( path ), true);
-
- public static implicit operator string( GamePath gamePath )
- => gamePath._path;
-
- public static explicit operator GamePath( string gamePath )
- => new(gamePath);
-
- public bool Empty
- => _path.Length == 0;
-
- public string Filename()
- {
- var idx = _path.LastIndexOf( "/", StringComparison.Ordinal );
- return idx == -1 ? _path : idx == _path.Length - 1 ? "" : _path[ ( idx + 1 ).. ];
- }
-
- public int CompareTo( object? rhs )
- {
- return rhs switch
- {
- string path => string.Compare( _path, path, StringComparison.Ordinal ),
- GamePath path => string.Compare( _path, path._path, StringComparison.Ordinal ),
- _ => -1,
- };
- }
-
- public override string ToString()
- => _path;
-}
-
-public class GamePathConverter : JsonConverter
-{
- public override bool CanConvert( Type objectType )
- => objectType == typeof( GamePath );
-
- public override object ReadJson( JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer )
- {
- var token = JToken.Load( reader );
- return token.ToObject< GamePath >();
- }
-
- public override bool CanWrite
- => true;
-
- public override void WriteJson( JsonWriter writer, object? value, JsonSerializer serializer )
- {
- if( value != null )
- {
- var v = ( GamePath )value;
- serializer.Serialize( writer, v.ToString() );
- }
- }
-}
-
diff --git a/Penumbra/Collections/ModCollection.Cache.cs b/Penumbra/Collections/ModCollection.Cache.cs
index acf3b9b6..055d9f43 100644
--- a/Penumbra/Collections/ModCollection.Cache.cs
+++ b/Penumbra/Collections/ModCollection.Cache.cs
@@ -7,7 +7,6 @@ using System;
using System.Collections.Generic;
using System.Linq;
using Penumbra.Api.Enums;
-using Penumbra.GameData.Util;
using Penumbra.String.Classes;
namespace Penumbra.Collections;
@@ -474,10 +473,10 @@ public partial class ModCollection
_changedItems.Clear();
// Skip IMCs because they would result in far too many false-positive items,
// since they are per set instead of per item-slot/item/variant.
- var identifier = GameData.GameData.GetIdentifier();
+ var identifier = Penumbra.Identifier;
foreach( var (resolved, modPath) in ResolvedFiles.Where( file => !file.Key.Path.EndsWith( "imc"u8 ) ) )
{
- foreach( var (name, obj) in identifier.Identify( new GamePath( resolved.ToString() ) ) )
+ foreach( var (name, obj) in identifier.Identify( resolved.ToString() ) )
{
if( !_changedItems.TryGetValue( name, out var data ) )
{
diff --git a/Penumbra/Import/MetaFileInfo.cs b/Penumbra/Import/MetaFileInfo.cs
index 53c23496..3fe881bc 100644
--- a/Penumbra/Import/MetaFileInfo.cs
+++ b/Penumbra/Import/MetaFileInfo.cs
@@ -1,5 +1,4 @@
using Penumbra.GameData.Enums;
-using Penumbra.GameData.Util;
using System.Text.RegularExpressions;
namespace Penumbra.Import;
@@ -54,10 +53,6 @@ public class MetaFileInfo
}
public MetaFileInfo( string fileName )
- : this( new GamePath( fileName ) )
- { }
-
- public MetaFileInfo( GamePath fileName )
{
// Set the primary type from the gamePath start.
PrimaryType = GameData.GameData.GetGamePathParser().PathToObjectType( fileName );
diff --git a/Penumbra/Meta/Files/CmpFile.cs b/Penumbra/Meta/Files/CmpFile.cs
index 5a4919bf..6f4b4842 100644
--- a/Penumbra/Meta/Files/CmpFile.cs
+++ b/Penumbra/Meta/Files/CmpFile.cs
@@ -1,7 +1,6 @@
using System;
using Penumbra.GameData.Enums;
using Penumbra.GameData.Structs;
-using Penumbra.GameData.Util;
using Penumbra.Interop.Structs;
using System.Collections.Generic;
using Penumbra.String.Functions;
diff --git a/Penumbra/Meta/Files/EqdpFile.cs b/Penumbra/Meta/Files/EqdpFile.cs
index 5290fb04..f3c54ca6 100644
--- a/Penumbra/Meta/Files/EqdpFile.cs
+++ b/Penumbra/Meta/Files/EqdpFile.cs
@@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using Penumbra.GameData.Enums;
using Penumbra.GameData.Structs;
-using Penumbra.GameData.Util;
using Penumbra.Interop.Structs;
using Penumbra.String.Functions;
diff --git a/Penumbra/Meta/Files/EqpGmpFile.cs b/Penumbra/Meta/Files/EqpGmpFile.cs
index 5d15031b..8134ed60 100644
--- a/Penumbra/Meta/Files/EqpGmpFile.cs
+++ b/Penumbra/Meta/Files/EqpGmpFile.cs
@@ -3,7 +3,6 @@ using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using Penumbra.GameData.Structs;
-using Penumbra.GameData.Util;
using Penumbra.Interop.Structs;
using Penumbra.String.Functions;
diff --git a/Penumbra/Meta/Files/EstFile.cs b/Penumbra/Meta/Files/EstFile.cs
index 5c76ff71..d0ab8510 100644
--- a/Penumbra/Meta/Files/EstFile.cs
+++ b/Penumbra/Meta/Files/EstFile.cs
@@ -1,7 +1,6 @@
using System;
using System.Runtime.InteropServices;
using Penumbra.GameData.Enums;
-using Penumbra.GameData.Util;
using Penumbra.Interop.Structs;
using Penumbra.Meta.Manipulations;
using Penumbra.String.Functions;
diff --git a/Penumbra/Meta/Files/MetaBaseFile.cs b/Penumbra/Meta/Files/MetaBaseFile.cs
index dbe8a35b..f90ac48d 100644
--- a/Penumbra/Meta/Files/MetaBaseFile.cs
+++ b/Penumbra/Meta/Files/MetaBaseFile.cs
@@ -1,6 +1,5 @@
using System;
using Dalamud.Memory;
-using Penumbra.GameData.Util;
using Penumbra.String.Functions;
using CharacterUtility = Penumbra.Interop.CharacterUtility;
diff --git a/Penumbra/Meta/Manipulations/MetaManipulation.cs b/Penumbra/Meta/Manipulations/MetaManipulation.cs
index 9029800a..f388ea8e 100644
--- a/Penumbra/Meta/Manipulations/MetaManipulation.cs
+++ b/Penumbra/Meta/Manipulations/MetaManipulation.cs
@@ -2,7 +2,6 @@ using System;
using System.Runtime.InteropServices;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
-using Penumbra.GameData.Util;
using Penumbra.Interop.Structs;
using Penumbra.String.Functions;
diff --git a/Penumbra/Mods/Mod.ChangedItems.cs b/Penumbra/Mods/Mod.ChangedItems.cs
index 1057bf0d..549422a1 100644
--- a/Penumbra/Mods/Mod.ChangedItems.cs
+++ b/Penumbra/Mods/Mod.ChangedItems.cs
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using System.Linq;
-using Penumbra.GameData.Util;
namespace Penumbra.Mods;
@@ -11,11 +10,10 @@ public sealed partial class Mod
private void ComputeChangedItems()
{
- var identifier = GameData.GameData.GetIdentifier();
ChangedItems.Clear();
foreach( var gamePath in AllRedirects )
{
- identifier.Identify( ChangedItems, new GamePath(gamePath.ToString()) );
+ Penumbra.Identifier.Identify( ChangedItems, gamePath.ToString() );
}
// TODO: manipulations
diff --git a/Penumbra/Penumbra.cs b/Penumbra/Penumbra.cs
index e0ed235b..0ede3d33 100644
--- a/Penumbra/Penumbra.cs
+++ b/Penumbra/Penumbra.cs
@@ -59,6 +59,7 @@ public class Penumbra : IDalamudPlugin
public static ResourceLoader ResourceLoader { get; private set; } = null!;
public static FrameworkManager Framework { get; private set; } = null!;
public static ActorManager Actors { get; private set; } = null!;
+ public static IObjectIdentifier Identifier { get; private set; } = null!;
public static readonly List< Exception > ImcExceptions = new();
@@ -80,8 +81,8 @@ public class Penumbra : IDalamudPlugin
try
{
Dalamud.Initialize( pluginInterface );
- Log = new Logger();
- GameData.GameData.GetIdentifier( Dalamud.GameData );
+ Log = new Logger();
+ Identifier = GameData.GameData.GetIdentifier( Dalamud.PluginInterface, Dalamud.GameData );
DevPenumbraExists = CheckDevPluginPenumbra();
IsNotInstalledPenumbra = CheckIsNotInstalled();