diff --git a/.editorconfig b/.editorconfig
index 238bb1dc..0bbaa114 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,27 +1,346 @@
-[*]
-charset=utf-8
-end_of_line=lf
-trim_trailing_whitespace=true
-insert_final_newline=false
+[*.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_new_line_before_members_in_object_initializers=false
+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_prefer_braces=true:none
+csharp_preserve_single_line_blocks=true
csharp_space_after_cast=false
-csharp_space_after_keywords_in_control_flow_statements=false
-csharp_space_between_method_call_parameter_list_parentheses=true
-csharp_space_between_method_declaration_parameter_list_parentheses=true
-csharp_space_between_parentheses=control_flow_statements,expressions,type_casts
+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
-dotnet_style_parentheses_in_arithmetic_binary_operators=never_if_unnecessary:none
-dotnet_style_parentheses_in_other_binary_operators=never_if_unnecessary:none
-dotnet_style_parentheses_in_relational_binary_operators=never_if_unnecessary:none
+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
@@ -29,57 +348,3276 @@ 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_calls_chain=false
-resharper_autodetect_indent_settings=true
+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_max_line_length=180
-resharper_csharp_space_within_array_access_brackets=true
-resharper_enforce_line_ending_style=true
+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_comments=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_invocations=false
+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_properties=false
+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_within_checked_parentheses=true
-resharper_space_within_default_parentheses=true
-resharper_space_within_nameof_parentheses=true
+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=true
-resharper_space_within_typeof_parentheses=true
-resharper_space_within_type_argument_angles=true
-resharper_space_within_type_parameter_angles=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_wrap_lines=true
+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_web_config_module_not_resolved_highlighting=warning
-resharper_web_config_type_not_resolved_highlighting=warning
-resharper_web_config_wrong_module_highlighting=warning
+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
-[*.{appxmanifest,asax,ascx,aspx,build,cg,cginc,compute,cs,cshtml,dtd,hlsl,hlsli,hlslinc,master,nuspec,razor,resw,resx,shader,skin,usf,ush,vb,xaml,xamlx,xoml,xsd}]
+# 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/Data/GamePathParser.cs b/Penumbra.GameData/Data/GamePathParser.cs
index 2f267d0a..3f2f54a1 100644
--- a/Penumbra.GameData/Data/GamePathParser.cs
+++ b/Penumbra.GameData/Data/GamePathParser.cs
@@ -8,8 +8,9 @@ using Penumbra.GameData.Structs;
namespace Penumbra.GameData.Data;
-internal class GamePathParser : IGamePathParser
-{
+public class GamePathParser : IGamePathParser
+{
+ /// Obtain basic information about a file path.
public GameObjectInfo GetFileInfo(string path)
{
path = path.ToLowerInvariant().Replace('\\', '/');
@@ -49,6 +50,8 @@ internal class GamePathParser : IGamePathParser
};
}
+ /// Get the key of a VFX symbol.
+ /// The lower-case key or an empty string if no match is found.
public string VfxToKey(string path)
{
var match = GamePaths.Vfx.Tmb().Match(path);
@@ -59,25 +62,7 @@ internal class GamePathParser : IGamePathParser
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";
- private const string WeaponFolder = "weapon";
- private const string AccessoryFolder = "accessory";
- private const string DemiHumanFolder = "demihuman";
- private const string MonsterFolder = "monster";
- private const string CommonFolder = "common";
- private const string UiFolder = "ui";
- private const string IconFolder = "icon";
- private const string LoadingFolder = "loadingimage";
- private const string MapFolder = "map";
- private const string InterfaceFolder = "uld";
- private const string FontFolder = "font";
- private const string HousingFolder = "hou";
- private const string VfxFolder = "vfx";
- private const string WorldFolder1 = "bgcommon";
- private const string WorldFolder2 = "bg";
-
+ /// Obtain the ObjectType from a given path.
public ObjectType PathToObjectType(string path)
{
if (path.Length == 0)
@@ -125,6 +110,25 @@ internal class GamePathParser : IGamePathParser
};
}
+ private const string CharacterFolder = "chara";
+ private const string EquipmentFolder = "equipment";
+ private const string PlayerFolder = "human";
+ private const string WeaponFolder = "weapon";
+ private const string AccessoryFolder = "accessory";
+ private const string DemiHumanFolder = "demihuman";
+ private const string MonsterFolder = "monster";
+ private const string CommonFolder = "common";
+ private const string UiFolder = "ui";
+ private const string IconFolder = "icon";
+ private const string LoadingFolder = "loadingimage";
+ private const string MapFolder = "map";
+ private const string InterfaceFolder = "uld";
+ private const string FontFolder = "font";
+ private const string HousingFolder = "hou";
+ private const string VfxFolder = "vfx";
+ private const string WorldFolder1 = "bgcommon";
+ private const string WorldFolder2 = "bg";
+
private (FileType, ObjectType, Match?) ParseGamePath(string path)
{
if (!Names.ExtensionToFileType.TryGetValue(Path.GetExtension(path), out var fileType))
diff --git a/Penumbra/Api/IpcTester.cs b/Penumbra/Api/IpcTester.cs
index aa0392a0..6c097704 100644
--- a/Penumbra/Api/IpcTester.cs
+++ b/Penumbra/Api/IpcTester.cs
@@ -16,7 +16,8 @@ using Penumbra.Collections;
using Penumbra.String;
using Penumbra.String.Classes;
using Penumbra.Meta.Manipulations;
-
+using Penumbra.Services;
+
namespace Penumbra.Api;
public class IpcTester : IDisposable
@@ -458,17 +459,17 @@ public class IpcTester : IDisposable
}
DrawIntro( Ipc.RedrawObject.Label, "Redraw Player Character" );
- if( ImGui.Button( "Redraw##pc" ) && Dalamud.ClientState.LocalPlayer != null )
+ if( ImGui.Button( "Redraw##pc" ) && DalamudServices.ClientState.LocalPlayer != null )
{
- Ipc.RedrawObject.Subscriber( _pi ).Invoke( Dalamud.ClientState.LocalPlayer, RedrawType.Redraw );
+ Ipc.RedrawObject.Subscriber( _pi ).Invoke( DalamudServices.ClientState.LocalPlayer, RedrawType.Redraw );
}
DrawIntro( Ipc.RedrawObjectByIndex.Label, "Redraw by Index" );
var tmp = _redrawIndex;
ImGui.SetNextItemWidth( 100 * ImGuiHelpers.GlobalScale );
- if( ImGui.DragInt( "##redrawIndex", ref tmp, 0.1f, 0, Dalamud.Objects.Length ) )
+ if( ImGui.DragInt( "##redrawIndex", ref tmp, 0.1f, 0, DalamudServices.Objects.Length ) )
{
- _redrawIndex = Math.Clamp( tmp, 0, Dalamud.Objects.Length );
+ _redrawIndex = Math.Clamp( tmp, 0, DalamudServices.Objects.Length );
}
ImGui.SameLine();
@@ -489,12 +490,12 @@ public class IpcTester : IDisposable
private void SetLastRedrawn( IntPtr address, int index )
{
- if( index < 0 || index > Dalamud.Objects.Length || address == IntPtr.Zero || Dalamud.Objects[ index ]?.Address != address )
+ if( index < 0 || index > DalamudServices.Objects.Length || address == IntPtr.Zero || DalamudServices.Objects[ index ]?.Address != address )
{
_lastRedrawnString = "Invalid";
}
- _lastRedrawnString = $"{Dalamud.Objects[ index ]!.Name} (0x{address:X}, {index})";
+ _lastRedrawnString = $"{DalamudServices.Objects[ index ]!.Name} (0x{address:X}, {index})";
}
}
diff --git a/Penumbra/Api/PenumbraApi.cs b/Penumbra/Api/PenumbraApi.cs
index da560ca9..88181927 100644
--- a/Penumbra/Api/PenumbraApi.cs
+++ b/Penumbra/Api/PenumbraApi.cs
@@ -18,7 +18,8 @@ using Penumbra.Api.Enums;
using Penumbra.GameData.Actors;
using Penumbra.String;
using Penumbra.String.Classes;
-
+using Penumbra.Services;
+
namespace Penumbra.Api;
public class PenumbraApi : IDisposable, IPenumbraApi
@@ -84,9 +85,9 @@ public class PenumbraApi : IDisposable, IPenumbraApi
public unsafe PenumbraApi( Penumbra penumbra )
{
_penumbra = penumbra;
- _lumina = ( Lumina.GameData? )Dalamud.GameData.GetType()
+ _lumina = ( Lumina.GameData? )DalamudServices.GameData.GetType()
.GetField( "gameData", BindingFlags.Instance | BindingFlags.NonPublic )
- ?.GetValue( Dalamud.GameData );
+ ?.GetValue( DalamudServices.GameData );
foreach( var collection in Penumbra.CollectionManager )
{
SubscribeToCollection( collection );
@@ -889,12 +890,12 @@ public class PenumbraApi : IDisposable, IPenumbraApi
{
CheckInitialized();
- if( actorIndex < 0 || actorIndex >= Dalamud.Objects.Length )
+ if( actorIndex < 0 || actorIndex >= DalamudServices.Objects.Length )
{
return PenumbraApiEc.InvalidArgument;
}
- var identifier = Penumbra.Actors.FromObject( Dalamud.Objects[ actorIndex ], false, false, true );
+ var identifier = Penumbra.Actors.FromObject( DalamudServices.Objects[ actorIndex ], false, false, true );
if( !identifier.IsValid )
{
return PenumbraApiEc.InvalidArgument;
@@ -1064,12 +1065,12 @@ public class PenumbraApi : IDisposable, IPenumbraApi
private static unsafe bool AssociatedCollection( int gameObjectIdx, out ModCollection collection )
{
collection = Penumbra.CollectionManager.Default;
- if( gameObjectIdx < 0 || gameObjectIdx >= Dalamud.Objects.Length )
+ if( gameObjectIdx < 0 || gameObjectIdx >= DalamudServices.Objects.Length )
{
return false;
}
- var ptr = ( FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject* )Dalamud.Objects.GetObjectAddress( gameObjectIdx );
+ var ptr = ( FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject* )DalamudServices.Objects.GetObjectAddress( gameObjectIdx );
var data = PathResolver.IdentifyCollection( ptr, false );
if( data.Valid )
{
@@ -1082,12 +1083,12 @@ public class PenumbraApi : IDisposable, IPenumbraApi
[MethodImpl( MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization )]
private static unsafe ActorIdentifier AssociatedIdentifier( int gameObjectIdx )
{
- if( gameObjectIdx < 0 || gameObjectIdx >= Dalamud.Objects.Length )
+ if( gameObjectIdx < 0 || gameObjectIdx >= DalamudServices.Objects.Length )
{
return ActorIdentifier.Invalid;
}
- var ptr = ( FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject* )Dalamud.Objects.GetObjectAddress( gameObjectIdx );
+ var ptr = ( FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject* )DalamudServices.Objects.GetObjectAddress( gameObjectIdx );
return Penumbra.Actors.FromObject( ptr, out _, false, true, true );
}
@@ -1116,7 +1117,7 @@ public class PenumbraApi : IDisposable, IPenumbraApi
return _lumina?.GetFileFromDisk< T >( resolvedPath );
}
- return Dalamud.GameData.GetFile< T >( resolvedPath );
+ return DalamudServices.GameData.GetFile< T >( resolvedPath );
}
catch( Exception e )
{
diff --git a/Penumbra/Collections/CollectionManager.Active.cs b/Penumbra/Collections/CollectionManager.Active.cs
index 3726d9dc..81750870 100644
--- a/Penumbra/Collections/CollectionManager.Active.cs
+++ b/Penumbra/Collections/CollectionManager.Active.cs
@@ -11,7 +11,8 @@ using System.Threading.Tasks;
using Dalamud.Interface.Internal.Notifications;
using Penumbra.GameData.Actors;
using Penumbra.Util;
-
+using Penumbra.Services;
+
namespace Penumbra.Collections;
public partial class ModCollection
@@ -205,7 +206,7 @@ public partial class ModCollection
=> name.Length == 0 ? Empty.Index : _collections.IndexOf( c => c.Name == name );
public static string ActiveCollectionFile
- => Path.Combine( Dalamud.PluginInterface.ConfigDirectory.FullName, "active_collections.json" );
+ => Path.Combine( DalamudServices.PluginInterface.ConfigDirectory.FullName, "active_collections.json" );
// Load default, current, special, and character collections from config.
// Then create caches. If a collection does not exist anymore, reset it to an appropriate default.
diff --git a/Penumbra/Collections/ModCollection.File.cs b/Penumbra/Collections/ModCollection.File.cs
index 150382ad..60ab44e0 100644
--- a/Penumbra/Collections/ModCollection.File.cs
+++ b/Penumbra/Collections/ModCollection.File.cs
@@ -2,6 +2,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using OtterGui.Filesystem;
using Penumbra.Mods;
+using Penumbra.Services;
using System;
using System.Collections.Generic;
using System.IO;
@@ -14,7 +15,7 @@ namespace Penumbra.Collections;
public partial class ModCollection
{
public static string CollectionDirectory
- => Path.Combine( Dalamud.PluginInterface.GetPluginConfigDirectory(), "collections" );
+ => Path.Combine( DalamudServices.PluginInterface.GetPluginConfigDirectory(), "collections" );
// We need to remove all invalid path symbols from the collection name to be able to save it to file.
public FileInfo FileName
diff --git a/Penumbra/CommandHandler.cs b/Penumbra/CommandHandler.cs
index 4f53a7b6..63922566 100644
--- a/Penumbra/CommandHandler.cs
+++ b/Penumbra/CommandHandler.cs
@@ -9,6 +9,7 @@ using Penumbra.Collections;
using Penumbra.GameData.Actors;
using Penumbra.Interop;
using Penumbra.Mods;
+using Penumbra.Services;
using Penumbra.UI;
namespace Penumbra;
@@ -120,27 +121,27 @@ public class CommandHandler : IDisposable
{
if( !string.Equals( arguments, "help", StringComparison.OrdinalIgnoreCase ) && arguments == "?" )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "The given argument " ).AddRed( arguments, true ).AddText( " is not valid. Valid arguments are:" ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "The given argument " ).AddRed( arguments, true ).AddText( " is not valid. Valid arguments are:" ).BuiltString );
}
else
{
- Dalamud.Chat.Print( "Valid arguments for /penumbra are:" );
+ DalamudServices.Chat.Print( "Valid arguments for /penumbra are:" );
}
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "window",
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "window",
"Toggle the Penumbra main config window. Can be used with [on|off] to force specific state. Also used when no argument is provided." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "enable", "Enable modding and force a redraw of all game objects if it was previously disabled." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "disable", "Disable modding and force a redraw of all game objects if it was previously enabled." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "toggle", "Toggle modding and force a redraw of all game objects." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "reload", "Rediscover the mod directory and reload all mods." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "redraw", "Redraw all game objects. Specify a placeholder or a name to redraw specific objects." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "lockui", "Toggle the locked state of the main Penumbra window. Can be used with [on|off] to force specific state." )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "enable", "Enable modding and force a redraw of all game objects if it was previously disabled." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "disable", "Disable modding and force a redraw of all game objects if it was previously enabled." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "toggle", "Toggle modding and force a redraw of all game objects." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "reload", "Rediscover the mod directory and reload all mods." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "redraw", "Redraw all game objects. Specify a placeholder or a name to redraw specific objects." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "lockui", "Toggle the locked state of the main Penumbra window. Can be used with [on|off] to force specific state." )
.BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "debug", "Toggle debug mode for Penumbra. Can be used with [on|off] to force specific state." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "collection", "Change your active collection setup. Use without further parameters for more detailed help." )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "debug", "Toggle debug mode for Penumbra. Can be used with [on|off] to force specific state." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "collection", "Change your active collection setup. Use without further parameters for more detailed help." )
.BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddCommand( "mod", "Change a specific mods settings. Use without further parameters for more detailed help." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder()
+ DalamudServices.Chat.Print( new SeStringBuilder().AddCommand( "mod", "Change a specific mods settings. Use without further parameters for more detailed help." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder()
.AddCommand( "bulktag", "Change multiple mods settings based on their tags. Use without further parameters for more detailed help." )
.BuiltString );
return true;
@@ -240,26 +241,26 @@ public class CommandHandler : IDisposable
{
if( arguments.Length == 0 )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "Use with /penumbra collection " ).AddBlue( "[Collection Type]" ).AddText( " | " ).AddYellow( "[Collection Name]" )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "Use with /penumbra collection " ).AddBlue( "[Collection Type]" ).AddText( " | " ).AddYellow( "[Collection Name]" )
.AddText( " | " ).AddGreen( "" ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》 Valid Collection Types are " ).AddBlue( "Base" ).AddText( ", " ).AddBlue( "Ui" ).AddText( ", " )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》 Valid Collection Types are " ).AddBlue( "Base" ).AddText( ", " ).AddBlue( "Ui" ).AddText( ", " )
.AddBlue( "Selected" ).AddText( ", " )
.AddBlue( "Individual" ).AddText( ", and all those selectable in Character Groups." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》 Valid Collection Names are " ).AddYellow( "None" )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》 Valid Collection Names are " ).AddYellow( "None" )
.AddText( ", all collections you have created by their full names, and " ).AddYellow( "Delete" ).AddText( " to remove assignments (not valid for all types)." )
.BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》 If the type is " ).AddBlue( "Individual" )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》 If the type is " ).AddBlue( "Individual" )
.AddText( " you need to specify an individual with an identifier of the form:" ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "" ).AddText( " or " ).AddGreen( "" ).AddText( " or " ).AddGreen( "" )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "" ).AddText( " or " ).AddGreen( "" ).AddText( " or " ).AddGreen( "" )
.AddText( " or " ).AddGreen( "" ).AddText( " as placeholders for your character, your target, your mouseover or your focus, if they exist." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "p" ).AddText( " | " ).AddWhite( "[Player Name]@" )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "p" ).AddText( " | " ).AddWhite( "[Player Name]@" )
.AddText( ", if no @ is provided, Any World is used." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "r" ).AddText( " | " ).AddWhite( "[Retainer Name]" ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "n" ).AddText( " | " ).AddPurple( "[NPC Type]" ).AddText( " : " )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "r" ).AddText( " | " ).AddWhite( "[Retainer Name]" ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "n" ).AddText( " | " ).AddPurple( "[NPC Type]" ).AddText( " : " )
.AddRed( "[NPC Name]" ).AddText( ", where NPC Type can be " ).AddInitialPurple( "Mount" ).AddInitialPurple( "Companion" ).AddInitialPurple( "Accessory" )
.AddInitialPurple( "Event NPC" ).AddText( "or " )
.AddInitialPurple( "Battle NPC", false ).AddText( "." ).BuiltString );
- Dalamud.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "o" ).AddText( " | " ).AddPurple( "[NPC Type]" ).AddText( " : " )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( " 》》》 " ).AddGreen( "o" ).AddText( " | " ).AddPurple( "[NPC Type]" ).AddText( " : " )
.AddRed( "[NPC Name]" ).AddText( " | " ).AddWhite( "[Player Name]@" ).AddText( "." ).BuiltString );
return true;
}
@@ -269,13 +270,13 @@ public class CommandHandler : IDisposable
if( !CollectionTypeExtensions.TryParse( typeName, out var type ) )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "The argument " ).AddRed( typeName, true ).AddText( " is not a valid collection type." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "The argument " ).AddRed( typeName, true ).AddText( " is not a valid collection type." ).BuiltString );
return false;
}
if( split.Length == 1 )
{
- Dalamud.Chat.Print( "There was no collection name provided." );
+ DalamudServices.Chat.Print( "There was no collection name provided." );
return false;
}
@@ -289,7 +290,7 @@ public class CommandHandler : IDisposable
{
if( split.Length == 2 )
{
- Dalamud.Chat.Print( "Setting an individual collection requires a collection name and an identifier, but no identifier was provided." );
+ DalamudServices.Chat.Print( "Setting an individual collection requires a collection name and an identifier, but no identifier was provided." );
return false;
}
@@ -300,7 +301,7 @@ public class CommandHandler : IDisposable
identifier = _actors.FromObject( obj, false, true, true );
if( !identifier.IsValid )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "The placeholder " ).AddGreen( split[ 2 ] )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "The placeholder " ).AddGreen( split[ 2 ] )
.AddText( " did not resolve to a game object with a valid identifier." ).BuiltString );
return false;
}
@@ -312,7 +313,7 @@ public class CommandHandler : IDisposable
}
catch( ActorManager.IdentifierParseError e )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "The argument " ).AddRed( split[ 2 ], true ).AddText( $" could not be converted to an identifier. {e.Message}" )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "The argument " ).AddRed( split[ 2 ], true ).AddText( $" could not be converted to an identifier. {e.Message}" )
.BuiltString );
return false;
}
@@ -321,7 +322,7 @@ public class CommandHandler : IDisposable
var oldCollection = _collectionManager.ByType( type, identifier );
if( collection == oldCollection )
{
- Dalamud.Chat.Print( collection == null
+ DalamudServices.Chat.Print( collection == null
? $"The {type.ToName()} Collection{( identifier.IsValid ? $" for {identifier}" : string.Empty )} is already unassigned"
: $"{collection.Name} already is the {type.ToName()} Collection{( identifier.IsValid ? $" for {identifier}." : "." )}" );
return false;
@@ -354,7 +355,7 @@ public class CommandHandler : IDisposable
}
else
{
- Dalamud.Chat.Print( $"Can not remove the {type.ToName()} Collection assignment {( identifier.IsValid ? $" for {identifier}." : "." )}" );
+ DalamudServices.Chat.Print( $"Can not remove the {type.ToName()} Collection assignment {( identifier.IsValid ? $" for {identifier}." : "." )}" );
return false;
}
@@ -374,7 +375,7 @@ public class CommandHandler : IDisposable
var seString = new SeStringBuilder()
.AddText( "Use with /penumbra mod " ).AddBlue( "[enable|disable|inherit|toggle]" ).AddText( " " ).AddYellow( "[Collection Name]" ).AddText( " | " )
.AddPurple( "[Mod Name or Mod Directory Name]" );
- Dalamud.Chat.Print( seString.BuiltString );
+ DalamudServices.Chat.Print( seString.BuiltString );
return true;
}
@@ -382,14 +383,14 @@ public class CommandHandler : IDisposable
var nameSplit = split.Length != 2 ? Array.Empty< string >() : split[ 1 ].Split( '|', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries );
if( nameSplit.Length != 2 )
{
- Dalamud.Chat.Print( "Not enough arguments provided." );
+ DalamudServices.Chat.Print( "Not enough arguments provided." );
return false;
}
var state = ConvertToSettingState( split[ 0 ] );
if( state == -1 )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddRed( split[ 0 ], true ).AddText( " is not a valid type of setting." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddRed( split[ 0 ], true ).AddText( " is not a valid type of setting." ).BuiltString );
return false;
}
@@ -400,7 +401,7 @@ public class CommandHandler : IDisposable
if( !_modManager.TryGetMod( nameSplit[ 1 ], nameSplit[ 1 ], out var mod ) )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "The mod " ).AddRed( nameSplit[ 1 ], true ).AddText( " does not exist." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "The mod " ).AddRed( nameSplit[ 1 ], true ).AddText( " does not exist." ).BuiltString );
return false;
}
@@ -409,7 +410,7 @@ public class CommandHandler : IDisposable
return true;
}
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "Mod " ).AddPurple( mod.Name, true ).AddText( "already had the desired state in collection " )
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "Mod " ).AddPurple( mod.Name, true ).AddText( "already had the desired state in collection " )
.AddYellow( collection!.Name, true ).AddText( "." ).BuiltString );
return false;
}
@@ -421,7 +422,7 @@ public class CommandHandler : IDisposable
var seString = new SeStringBuilder()
.AddText( "Use with /penumbra bulktag " ).AddBlue( "[enable|disable|toggle|inherit]" ).AddText( " " ).AddYellow( "[Collection Name]" ).AddText( " | " )
.AddPurple( "[Local Tag]" );
- Dalamud.Chat.Print( seString.BuiltString );
+ DalamudServices.Chat.Print( seString.BuiltString );
return true;
}
@@ -429,7 +430,7 @@ public class CommandHandler : IDisposable
var nameSplit = split.Length != 2 ? Array.Empty< string >() : split[ 1 ].Split( '|', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries );
if( nameSplit.Length != 2 )
{
- Dalamud.Chat.Print( "Not enough arguments provided." );
+ DalamudServices.Chat.Print( "Not enough arguments provided." );
return false;
}
@@ -437,7 +438,7 @@ public class CommandHandler : IDisposable
if( state == -1 )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddRed( split[ 0 ], true ).AddText( " is not a valid type of setting." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddRed( split[ 0 ], true ).AddText( " is not a valid type of setting." ).BuiltString );
return false;
}
@@ -450,7 +451,7 @@ public class CommandHandler : IDisposable
if( mods.Count == 0 )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "The tag " ).AddRed( nameSplit[ 1 ], true ).AddText( " does not match any mods." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "The tag " ).AddRed( nameSplit[ 1 ], true ).AddText( " does not match any mods." ).BuiltString );
return false;
}
@@ -482,7 +483,7 @@ public class CommandHandler : IDisposable
: _collectionManager[ lowerName ];
if( collection == null )
{
- Dalamud.Chat.Print( new SeStringBuilder().AddText( "The collection " ).AddRed( collectionName, true ).AddText( " does not exist." ).BuiltString );
+ DalamudServices.Chat.Print( new SeStringBuilder().AddText( "The collection " ).AddRed( collectionName, true ).AddText( " does not exist." ).BuiltString );
return false;
}
@@ -574,7 +575,7 @@ public class CommandHandler : IDisposable
{
if( Penumbra.Config.PrintSuccessfulCommandsToChat )
{
- Dalamud.Chat.Print( text );
+ DalamudServices.Chat.Print( text );
}
}
@@ -582,7 +583,7 @@ public class CommandHandler : IDisposable
{
if( Penumbra.Config.PrintSuccessfulCommandsToChat )
{
- Dalamud.Chat.Print( text.ToStringAndClear() );
+ DalamudServices.Chat.Print( text.ToStringAndClear() );
}
}
@@ -590,7 +591,7 @@ public class CommandHandler : IDisposable
{
if( Penumbra.Config.PrintSuccessfulCommandsToChat )
{
- Dalamud.Chat.Print( text() );
+ DalamudServices.Chat.Print( text() );
}
}
}
\ No newline at end of file
diff --git a/Penumbra/Configuration.Migration.cs b/Penumbra/Configuration.Migration.cs
index ee1ee6ac..a4b368dd 100644
--- a/Penumbra/Configuration.Migration.cs
+++ b/Penumbra/Configuration.Migration.cs
@@ -7,7 +7,8 @@ using Newtonsoft.Json.Linq;
using OtterGui.Filesystem;
using Penumbra.Collections;
using Penumbra.Mods;
-
+using Penumbra.Services;
+
namespace Penumbra;
public partial class Configuration
@@ -30,7 +31,7 @@ public partial class Configuration
public static void Migrate( Configuration config )
{
- if( !File.Exists( Dalamud.PluginInterface.ConfigFile.FullName ) )
+ if( !File.Exists( DalamudServices.PluginInterface.ConfigFile.FullName ) )
{
return;
}
@@ -38,7 +39,7 @@ public partial class Configuration
var m = new Migration
{
_config = config,
- _data = JObject.Parse( File.ReadAllText( Dalamud.PluginInterface.ConfigFile.FullName ) ),
+ _data = JObject.Parse( File.ReadAllText( DalamudServices.PluginInterface.ConfigFile.FullName ) ),
};
CreateBackup();
@@ -342,7 +343,7 @@ public partial class Configuration
// Create a backup of the configuration file specifically.
private static void CreateBackup()
{
- var name = Dalamud.PluginInterface.ConfigFile.FullName;
+ var name = DalamudServices.PluginInterface.ConfigFile.FullName;
var bakName = name + ".bak";
try
{
diff --git a/Penumbra/Configuration.cs b/Penumbra/Configuration.cs
index 878b4a3b..1821ca1f 100644
--- a/Penumbra/Configuration.cs
+++ b/Penumbra/Configuration.cs
@@ -11,6 +11,7 @@ using OtterGui.Widgets;
using Penumbra.GameData.Enums;
using Penumbra.Import;
using Penumbra.Mods;
+using Penumbra.Services;
using Penumbra.UI;
using Penumbra.UI.Classes;
using ErrorEventArgs = Newtonsoft.Json.Serialization.ErrorEventArgs;
@@ -97,9 +98,9 @@ public partial class Configuration : IPluginConfiguration
}
Configuration? configuration = null;
- if( File.Exists( Dalamud.PluginInterface.ConfigFile.FullName ) )
+ if( File.Exists( DalamudServices.PluginInterface.ConfigFile.FullName ) )
{
- var text = File.ReadAllText( Dalamud.PluginInterface.ConfigFile.FullName );
+ var text = File.ReadAllText( DalamudServices.PluginInterface.ConfigFile.FullName );
configuration = JsonConvert.DeserializeObject< Configuration >( text, new JsonSerializerSettings
{
Error = HandleDeserializationError,
@@ -125,7 +126,7 @@ public partial class Configuration : IPluginConfiguration
try
{
var text = JsonConvert.SerializeObject( this, Formatting.Indented );
- File.WriteAllText( Dalamud.PluginInterface.ConfigFile.FullName, text );
+ File.WriteAllText( DalamudServices.PluginInterface.ConfigFile.FullName, text );
}
catch( Exception e )
{
diff --git a/Penumbra/Dalamud.cs b/Penumbra/Dalamud.cs
deleted file mode 100644
index e9366d9a..00000000
--- a/Penumbra/Dalamud.cs
+++ /dev/null
@@ -1,150 +0,0 @@
-using System;
-using Dalamud.Data;
-using Dalamud.Game;
-using Dalamud.Game.ClientState;
-using Dalamud.Game.ClientState.Conditions;
-using Dalamud.Game.ClientState.Keys;
-using Dalamud.Game.ClientState.Objects;
-using Dalamud.Game.Command;
-using Dalamud.Game.Gui;
-using Dalamud.Interface;
-using Dalamud.IoC;
-using Dalamud.Plugin;
-using System.Linq;
-using System.Reflection;
-
-// ReSharper disable AutoPropertyCanBeMadeGetOnly.Local
-
-namespace Penumbra;
-
-public class Dalamud
-{
- public static void Initialize( DalamudPluginInterface pluginInterface )
- => pluginInterface.Create< Dalamud >();
-
- // @formatter:off
- [PluginService][RequiredVersion("1.0")] public static DalamudPluginInterface PluginInterface { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static CommandManager Commands { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static DataManager GameData { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static ClientState ClientState { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static ChatGui Chat { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static Framework Framework { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static Condition Conditions { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static TargetManager Targets { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static ObjectTable Objects { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static TitleScreenMenu TitleScreenMenu { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static GameGui GameGui { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static KeyState KeyState { get; private set; } = null!;
- [PluginService][RequiredVersion("1.0")] public static SigScanner SigScanner { get; private set; } = null!;
- // @formatter:on
-
- private static readonly object? DalamudConfig;
- private static readonly MethodInfo? InterfaceGetter;
- private static readonly MethodInfo? SaveDalamudConfig;
- public const string WaitingForPluginsOption = "IsResumeGameAfterPluginLoad";
-
- static Dalamud()
- {
- try
- {
- var serviceType = typeof( DalamudPluginInterface ).Assembly.DefinedTypes.FirstOrDefault( t => t.Name == "Service`1" && t.IsGenericType );
- var configType = typeof( DalamudPluginInterface ).Assembly.DefinedTypes.FirstOrDefault( t => t.Name == "DalamudConfiguration" );
- var interfaceType = typeof( DalamudPluginInterface ).Assembly.DefinedTypes.FirstOrDefault( t => t.Name == "DalamudInterface" );
- if( serviceType == null || configType == null || interfaceType == null )
- {
- return;
- }
-
- var configService = serviceType.MakeGenericType( configType );
- var interfaceService = serviceType.MakeGenericType( interfaceType );
- var configGetter = configService.GetMethod( "Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic );
- InterfaceGetter = interfaceService.GetMethod( "Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic );
- if( configGetter == null || InterfaceGetter == null )
- {
- return;
- }
-
- DalamudConfig = configGetter.Invoke( null, null );
- if( DalamudConfig != null )
- {
- SaveDalamudConfig = DalamudConfig.GetType().GetMethod( "Save", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic );
- if( SaveDalamudConfig == null )
- {
- DalamudConfig = null;
- InterfaceGetter = null;
- }
- }
- }
- catch
- {
- DalamudConfig = null;
- SaveDalamudConfig = null;
- InterfaceGetter = null;
- }
- }
-
- public static bool GetDalamudConfig< T >( string fieldName, out T? value )
- {
- value = default;
- try
- {
- if( DalamudConfig == null )
- {
- return false;
- }
-
- var getter = DalamudConfig.GetType().GetProperty( fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic );
- if( getter == null )
- {
- return false;
- }
-
- var result = getter.GetValue( DalamudConfig );
- if( result is not T v )
- {
- return false;
- }
-
- value = v;
- return true;
- }
- catch( Exception e )
- {
- Penumbra.Log.Error( $"Error while fetching Dalamud Config {fieldName}:\n{e}" );
- return false;
- }
- }
-
- public static bool SetDalamudConfig< T >( string fieldName, in T? value, string? windowFieldName = null )
- {
- try
- {
- if( DalamudConfig == null )
- {
- return false;
- }
-
- var getter = DalamudConfig.GetType().GetProperty( fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic );
- if( getter == null )
- {
- return false;
- }
-
- getter.SetValue( DalamudConfig, value );
- if( windowFieldName != null )
- {
- var inter = InterfaceGetter!.Invoke( null, null );
- var settingsWindow = inter?.GetType().GetField( "settingsWindow", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic )?.GetValue( inter );
- settingsWindow?.GetType().GetField( windowFieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic )?.SetValue( settingsWindow, value );
- }
-
- SaveDalamudConfig!.Invoke( DalamudConfig, null );
- return true;
- }
- catch( Exception e )
- {
- Penumbra.Log.Error( $"Error while fetching Dalamud Config {fieldName}:\n{e}" );
- return false;
- }
- }
-}
\ No newline at end of file
diff --git a/Penumbra/Import/Textures/CombinedTexture.cs b/Penumbra/Import/Textures/CombinedTexture.cs
index 4b82da4b..bd9154a0 100644
--- a/Penumbra/Import/Textures/CombinedTexture.cs
+++ b/Penumbra/Import/Textures/CombinedTexture.cs
@@ -3,6 +3,7 @@ using System.IO;
using System.Numerics;
using Lumina.Data.Files;
using OtterTex;
+using Penumbra.Services;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.PixelFormats;
@@ -48,7 +49,7 @@ public partial class CombinedTexture : IDisposable
{
var (width, height) = CombineImage();
_centerStorage.TextureWrap =
- Dalamud.PluginInterface.UiBuilder.LoadImageRaw( _centerStorage.RGBAPixels, width, height, 4 );
+ DalamudServices.PluginInterface.UiBuilder.LoadImageRaw( _centerStorage.RGBAPixels, width, height, 4 );
}
_current?.Draw( size );
diff --git a/Penumbra/Import/Textures/Texture.cs b/Penumbra/Import/Textures/Texture.cs
index c54218d5..f6bb9866 100644
--- a/Penumbra/Import/Textures/Texture.cs
+++ b/Penumbra/Import/Textures/Texture.cs
@@ -10,6 +10,7 @@ using Lumina.Data.Files;
using OtterGui;
using OtterGui.Raii;
using OtterTex;
+using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.UI.Classes;
using SixLabors.ImageSharp.PixelFormats;
@@ -195,12 +196,12 @@ public sealed class Texture : IDisposable
return File.OpenRead( Path );
}
- var file = Dalamud.GameData.GetFile( Path );
+ var file = DalamudServices.GameData.GetFile( Path );
return file != null ? new MemoryStream( file.Data ) : throw new Exception( $"Unable to obtain \"{Path}\" from game files." );
}
private void CreateTextureWrap( int width, int height )
- => TextureWrap = Dalamud.PluginInterface.UiBuilder.LoadImageRaw( RGBAPixels, width, height, 4 );
+ => TextureWrap = DalamudServices.PluginInterface.UiBuilder.LoadImageRaw( RGBAPixels, width, height, 4 );
private string? _tmpPath;
@@ -215,7 +216,7 @@ public sealed class Texture : IDisposable
{
if( game )
{
- if( !Dalamud.GameData.FileExists( path ) )
+ if( !DalamudServices.GameData.FileExists( path ) )
{
continue;
}
diff --git a/Penumbra/Interop/CharacterUtility.cs b/Penumbra/Interop/CharacterUtility.cs
index de02f091..307e55c3 100644
--- a/Penumbra/Interop/CharacterUtility.cs
+++ b/Penumbra/Interop/CharacterUtility.cs
@@ -3,7 +3,8 @@ using System.Collections.Generic;
using System.Linq;
using Dalamud.Utility.Signatures;
using Penumbra.GameData;
-
+using Penumbra.Services;
+
namespace Penumbra.Interop;
public unsafe partial class CharacterUtility : IDisposable
@@ -58,7 +59,7 @@ public unsafe partial class CharacterUtility : IDisposable
LoadDefaultResources( null! );
if( !Ready )
{
- Dalamud.Framework.Update += LoadDefaultResources;
+ DalamudServices.Framework.Update += LoadDefaultResources;
}
}
@@ -98,7 +99,7 @@ public unsafe partial class CharacterUtility : IDisposable
if( !anyMissing )
{
Ready = true;
- Dalamud.Framework.Update -= LoadDefaultResources;
+ DalamudServices.Framework.Update -= LoadDefaultResources;
LoadingFinished.Invoke();
}
}
diff --git a/Penumbra/Interop/GameEventManager.cs b/Penumbra/Interop/GameEventManager.cs
index 1549f888..1080e7b8 100644
--- a/Penumbra/Interop/GameEventManager.cs
+++ b/Penumbra/Interop/GameEventManager.cs
@@ -4,18 +4,22 @@ using Penumbra.GameData;
using System;
using FFXIVClientStructs.FFXIV.Client.Game.Character;
using FFXIVClientStructs.FFXIV.Client.Game.Object;
+using OtterGui.Log;
using Penumbra.Interop.Structs;
namespace Penumbra.Interop;
public unsafe class GameEventManager : IDisposable
{
+ private const string Prefix = $"[{nameof(GameEventManager)}]";
+
public GameEventManager()
{
- SignatureHelper.Initialise( this );
+ SignatureHelper.Initialise(this);
_characterDtorHook.Enable();
_copyCharacterHook.Enable();
_resourceHandleDestructorHook.Enable();
+ Penumbra.Log.Verbose($"{Prefix} Created.");
}
public void Dispose()
@@ -23,104 +27,102 @@ public unsafe class GameEventManager : IDisposable
_characterDtorHook.Dispose();
_copyCharacterHook.Dispose();
_resourceHandleDestructorHook.Dispose();
+ Penumbra.Log.Verbose($"{Prefix} Disposed.");
}
#region Character Destructor
- private delegate void CharacterDestructorDelegate( Character* character );
+ private delegate void CharacterDestructorDelegate(Character* character);
- [Signature( Sigs.CharacterDestructor, DetourName = nameof( CharacterDestructorDetour ) )]
- private readonly Hook< CharacterDestructorDelegate > _characterDtorHook = null!;
+ [Signature(Sigs.CharacterDestructor, DetourName = nameof(CharacterDestructorDetour))]
+ private readonly Hook _characterDtorHook = null!;
- private void CharacterDestructorDetour( Character* character )
+ private void CharacterDestructorDetour(Character* character)
{
- if( CharacterDestructor != null )
- {
- foreach( var subscriber in CharacterDestructor.GetInvocationList() )
+ if (CharacterDestructor != null)
+ foreach (var subscriber in CharacterDestructor.GetInvocationList())
{
try
{
- ( ( CharacterDestructorEvent )subscriber ).Invoke( character );
+ ((CharacterDestructorEvent)subscriber).Invoke(character);
}
- catch( Exception ex )
+ catch (Exception ex)
{
- Penumbra.Log.Error( $"Error in {nameof( CharacterDestructor )} event when executing {subscriber.Method.Name}:\n{ex}" );
+ Penumbra.Log.Error($"{Prefix} Error in {nameof(CharacterDestructor)} event when executing {subscriber.Method.Name}:\n{ex}");
}
}
- }
- Penumbra.Log.Verbose( $"{nameof( CharacterDestructor )} triggered with 0x{( nint )character:X}." );
- _characterDtorHook.Original( character );
+ Penumbra.Log.Verbose($"{Prefix} {nameof(CharacterDestructor)} triggered with 0x{(nint)character:X}.");
+ _characterDtorHook.Original(character);
}
- public delegate void CharacterDestructorEvent( Character* character );
+ public delegate void CharacterDestructorEvent(Character* character);
public event CharacterDestructorEvent? CharacterDestructor;
#endregion
#region Copy Character
- private unsafe delegate ulong CopyCharacterDelegate( GameObject* target, GameObject* source, uint unk );
+ private unsafe delegate ulong CopyCharacterDelegate(GameObject* target, GameObject* source, uint unk);
- [Signature( Sigs.CopyCharacter, DetourName = nameof( CopyCharacterDetour ) )]
- private readonly Hook< CopyCharacterDelegate > _copyCharacterHook = null!;
+ [Signature(Sigs.CopyCharacter, DetourName = nameof(CopyCharacterDetour))]
+ private readonly Hook _copyCharacterHook = null!;
- private ulong CopyCharacterDetour( GameObject* target, GameObject* source, uint unk )
+ private ulong CopyCharacterDetour(GameObject* target, GameObject* source, uint unk)
{
- if( CopyCharacter != null )
- {
- foreach( var subscriber in CopyCharacter.GetInvocationList() )
+ if (CopyCharacter != null)
+ foreach (var subscriber in CopyCharacter.GetInvocationList())
{
try
{
- ( ( CopyCharacterEvent )subscriber ).Invoke( ( Character* )target, ( Character* )source );
+ ((CopyCharacterEvent)subscriber).Invoke((Character*)target, (Character*)source);
}
- catch( Exception ex )
+ catch (Exception ex)
{
- Penumbra.Log.Error( $"Error in {nameof( CopyCharacter )} event when executing {subscriber.Method.Name}:\n{ex}" );
+ Penumbra.Log.Error(
+ $"{Prefix} Error in {nameof(CopyCharacter)} event when executing {subscriber.Method.Name}:\n{ex}");
}
}
- }
- Penumbra.Log.Verbose( $"{nameof( CopyCharacter )} triggered with target 0x{( nint )target:X} and source 0x{( nint )source:X}." );
- return _copyCharacterHook.Original( target, source, unk );
+ Penumbra.Log.Verbose(
+ $"{Prefix} {nameof(CopyCharacter)} triggered with target 0x{(nint)target:X} and source 0x{(nint)source:X}.");
+ return _copyCharacterHook.Original(target, source, unk);
}
- public delegate void CopyCharacterEvent( Character* target, Character* source );
+ public delegate void CopyCharacterEvent(Character* target, Character* source);
public event CopyCharacterEvent? CopyCharacter;
#endregion
#region ResourceHandle Destructor
- private delegate IntPtr ResourceHandleDestructorDelegate( ResourceHandle* handle );
+ private delegate IntPtr ResourceHandleDestructorDelegate(ResourceHandle* handle);
- [Signature( Sigs.ResourceHandleDestructor, DetourName = nameof( ResourceHandleDestructorDetour ) )]
- private readonly Hook< ResourceHandleDestructorDelegate > _resourceHandleDestructorHook = null!;
+ [Signature(Sigs.ResourceHandleDestructor, DetourName = nameof(ResourceHandleDestructorDetour))]
+ private readonly Hook _resourceHandleDestructorHook = null!;
- private IntPtr ResourceHandleDestructorDetour( ResourceHandle* handle )
+ private IntPtr ResourceHandleDestructorDetour(ResourceHandle* handle)
{
- if( ResourceHandleDestructor != null )
- {
- foreach( var subscriber in ResourceHandleDestructor.GetInvocationList() )
+ if (ResourceHandleDestructor != null)
+ foreach (var subscriber in ResourceHandleDestructor.GetInvocationList())
{
try
{
- ( ( ResourceHandleDestructorEvent )subscriber ).Invoke( handle );
+ ((ResourceHandleDestructorEvent)subscriber).Invoke(handle);
}
- catch( Exception ex )
+ catch (Exception ex)
{
- Penumbra.Log.Error( $"Error in {nameof( ResourceHandleDestructor )} event when executing {subscriber.Method.Name}:\n{ex}" );
+ Penumbra.Log.Error(
+ $"{Prefix} Error in {nameof(ResourceHandleDestructor)} event when executing {subscriber.Method.Name}:\n{ex}");
}
}
- }
- Penumbra.Log.Verbose( $"{nameof( ResourceHandleDestructor )} triggered with 0x{( nint )handle:X}." );
- return _resourceHandleDestructorHook!.Original( handle );
+ Penumbra.Log.Verbose($"{Prefix} {nameof(ResourceHandleDestructor)} triggered with 0x{(nint)handle:X}.");
+ return _resourceHandleDestructorHook!.Original(handle);
}
- public delegate void ResourceHandleDestructorEvent( ResourceHandle* handle );
+ public delegate void ResourceHandleDestructorEvent(ResourceHandle* handle);
public event ResourceHandleDestructorEvent? ResourceHandleDestructor;
#endregion
-}
\ No newline at end of file
+}
diff --git a/Penumbra/Interop/ObjectReloader.cs b/Penumbra/Interop/ObjectReloader.cs
index 5f466b95..ba24f155 100644
--- a/Penumbra/Interop/ObjectReloader.cs
+++ b/Penumbra/Interop/ObjectReloader.cs
@@ -10,7 +10,8 @@ using Penumbra.Api.Enums;
using Penumbra.GameData;
using Penumbra.GameData.Actors;
using Penumbra.Interop.Structs;
-
+using Penumbra.Services;
+
namespace Penumbra.Interop;
public unsafe partial class ObjectReloader
@@ -34,7 +35,7 @@ public unsafe partial class ObjectReloader
// Also clear the name list.
private void SetGPose()
{
- _inGPose = Dalamud.Objects[ GPosePlayerIdx ] != null;
+ _inGPose = DalamudServices.Objects[ GPosePlayerIdx ] != null;
_gPoseNameCounter = 0;
}
@@ -49,7 +50,7 @@ public unsafe partial class ObjectReloader
// this will be in obj and true will be returned.
private bool FindCorrectActor( int idx, out GameObject? obj )
{
- obj = Dalamud.Objects[ idx ];
+ obj = DalamudServices.Objects[ idx ];
if( !_inGPose || obj == null || IsGPoseActor( idx ) )
{
return false;
@@ -66,14 +67,14 @@ public unsafe partial class ObjectReloader
if( name == gPoseName )
{
- obj = Dalamud.Objects[ GPosePlayerIdx + i ];
+ obj = DalamudServices.Objects[ GPosePlayerIdx + i ];
return true;
}
}
for( ; _gPoseNameCounter < GPoseSlots; ++_gPoseNameCounter )
{
- var gPoseName = Dalamud.Objects[ GPosePlayerIdx + _gPoseNameCounter ]?.Name.ToString();
+ var gPoseName = DalamudServices.Objects[ GPosePlayerIdx + _gPoseNameCounter ]?.Name.ToString();
_gPoseNames[ _gPoseNameCounter ] = gPoseName;
if( gPoseName == null )
{
@@ -82,7 +83,7 @@ public unsafe partial class ObjectReloader
if( name == gPoseName )
{
- obj = Dalamud.Objects[ GPosePlayerIdx + _gPoseNameCounter ];
+ obj = DalamudServices.Objects[ GPosePlayerIdx + _gPoseNameCounter ];
return true;
}
}
@@ -113,10 +114,10 @@ public sealed unsafe partial class ObjectReloader : IDisposable
public event GameObjectRedrawnDelegate? GameObjectRedrawn;
public ObjectReloader()
- => Dalamud.Framework.Update += OnUpdateEvent;
+ => DalamudServices.Framework.Update += OnUpdateEvent;
public void Dispose()
- => Dalamud.Framework.Update -= OnUpdateEvent;
+ => DalamudServices.Framework.Update -= OnUpdateEvent;
public static DrawState* ActorDrawState( GameObject actor )
=> ( DrawState* )( &( ( FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject* )actor.Address )->RenderFlags );
@@ -139,7 +140,7 @@ public sealed unsafe partial class ObjectReloader : IDisposable
DisableDraw( actor! );
}
- if( actor is PlayerCharacter && Dalamud.Objects[ tableIndex + 1 ] is { ObjectKind: ObjectKind.MountType } mount )
+ if( actor is PlayerCharacter && DalamudServices.Objects[ tableIndex + 1 ] is { ObjectKind: ObjectKind.MountType } mount )
{
*ActorDrawState( mount ) |= DrawState.Invisibility;
if( gPose )
@@ -164,7 +165,7 @@ public sealed unsafe partial class ObjectReloader : IDisposable
EnableDraw( actor! );
}
- if( actor is PlayerCharacter && Dalamud.Objects[ tableIndex + 1 ] is { ObjectKind: ObjectKind.MountType } mount )
+ if( actor is PlayerCharacter && DalamudServices.Objects[ tableIndex + 1 ] is { ObjectKind: ObjectKind.MountType } mount )
{
*ActorDrawState( mount ) &= ~DrawState.Invisibility;
if( gPose )
@@ -183,7 +184,7 @@ public sealed unsafe partial class ObjectReloader : IDisposable
return;
}
- if( actor!.Address == Dalamud.Targets.Target?.Address )
+ if( actor!.Address == DalamudServices.Targets.Target?.Address )
{
_target = tableIndex;
}
@@ -193,7 +194,7 @@ public sealed unsafe partial class ObjectReloader : IDisposable
private void ReloadActorAfterGPose( GameObject? actor )
{
- if( Dalamud.Objects[ GPosePlayerIdx ] != null )
+ if( DalamudServices.Objects[ GPosePlayerIdx ] != null )
{
ReloadActor( actor );
return;
@@ -213,13 +214,13 @@ public sealed unsafe partial class ObjectReloader : IDisposable
return;
}
- var actor = Dalamud.Objects[ _target ];
- if( actor == null || Dalamud.Targets.Target != null )
+ var actor = DalamudServices.Objects[ _target ];
+ if( actor == null || DalamudServices.Targets.Target != null )
{
return;
}
- Dalamud.Targets.SetTarget( actor );
+ DalamudServices.Targets.SetTarget( actor );
_target = -1;
}
@@ -270,12 +271,12 @@ public sealed unsafe partial class ObjectReloader : IDisposable
if( idx < 0 )
{
var newIdx = ~idx;
- WriteInvisible( Dalamud.Objects[ newIdx ] );
+ WriteInvisible( DalamudServices.Objects[ newIdx ] );
_afterGPoseQueue[ numKept++ ] = newIdx;
}
else
{
- WriteVisible( Dalamud.Objects[ idx ] );
+ WriteVisible( DalamudServices.Objects[ idx ] );
}
}
@@ -284,9 +285,9 @@ public sealed unsafe partial class ObjectReloader : IDisposable
private void OnUpdateEvent( object framework )
{
- if( Dalamud.Conditions[ ConditionFlag.BetweenAreas51 ]
- || Dalamud.Conditions[ ConditionFlag.BetweenAreas ]
- || Dalamud.Conditions[ ConditionFlag.OccupiedInCutSceneEvent ] )
+ if( DalamudServices.Conditions[ ConditionFlag.BetweenAreas51 ]
+ || DalamudServices.Conditions[ ConditionFlag.BetweenAreas ]
+ || DalamudServices.Conditions[ ConditionFlag.OccupiedInCutSceneEvent ] )
{
return;
}
@@ -313,8 +314,8 @@ public sealed unsafe partial class ObjectReloader : IDisposable
private static GameObject? GetLocalPlayer()
{
- var gPosePlayer = Dalamud.Objects[ GPosePlayerIdx ];
- return gPosePlayer ?? Dalamud.Objects[ 0 ];
+ var gPosePlayer = DalamudServices.Objects[ GPosePlayerIdx ];
+ return gPosePlayer ?? DalamudServices.Objects[ 0 ];
}
public static bool GetName( string lowerName, out GameObject? actor )
@@ -324,12 +325,12 @@ public sealed unsafe partial class ObjectReloader : IDisposable
"" => ( null, true ),
"" => ( GetLocalPlayer(), true ),
"self" => ( GetLocalPlayer(), true ),
- "" => ( Dalamud.Targets.Target, true ),
- "target" => ( Dalamud.Targets.Target, true ),
- "" => ( Dalamud.Targets.FocusTarget, true ),
- "focus" => ( Dalamud.Targets.FocusTarget, true ),
- "" => ( Dalamud.Targets.MouseOverTarget, true ),
- "mouseover" => ( Dalamud.Targets.MouseOverTarget, true ),
+ "" => ( DalamudServices.Targets.Target, true ),
+ "target" => ( DalamudServices.Targets.Target, true ),
+ "" => ( DalamudServices.Targets.FocusTarget, true ),
+ "focus" => ( DalamudServices.Targets.FocusTarget, true ),
+ "" => ( DalamudServices.Targets.MouseOverTarget, true ),
+ "mouseover" => ( DalamudServices.Targets.MouseOverTarget, true ),
_ => ( null, false ),
};
return ret;
@@ -337,9 +338,9 @@ public sealed unsafe partial class ObjectReloader : IDisposable
public void RedrawObject( int tableIndex, RedrawType settings )
{
- if( tableIndex >= 0 && tableIndex < Dalamud.Objects.Length )
+ if( tableIndex >= 0 && tableIndex < DalamudServices.Objects.Length )
{
- RedrawObject( Dalamud.Objects[ tableIndex ], settings );
+ RedrawObject( DalamudServices.Objects[ tableIndex ], settings );
}
}
@@ -352,7 +353,7 @@ public sealed unsafe partial class ObjectReloader : IDisposable
}
else
{
- foreach( var actor in Dalamud.Objects.Where( a => a.Name.ToString().ToLowerInvariant() == lowerName ) )
+ foreach( var actor in DalamudServices.Objects.Where( a => a.Name.ToString().ToLowerInvariant() == lowerName ) )
{
RedrawObject( actor, settings );
}
@@ -361,7 +362,7 @@ public sealed unsafe partial class ObjectReloader : IDisposable
public void RedrawAll( RedrawType settings )
{
- foreach( var actor in Dalamud.Objects )
+ foreach( var actor in DalamudServices.Objects )
{
RedrawObject( actor, settings );
}
diff --git a/Penumbra/Interop/Resolver/CutsceneCharacters.cs b/Penumbra/Interop/Resolver/CutsceneCharacters.cs
index a1e2961b..71e54d07 100644
--- a/Penumbra/Interop/Resolver/CutsceneCharacters.cs
+++ b/Penumbra/Interop/Resolver/CutsceneCharacters.cs
@@ -3,7 +3,8 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using FFXIVClientStructs.FFXIV.Client.Game.Character;
-
+using Penumbra.Services;
+
namespace Penumbra.Interop.Resolver;
public class CutsceneCharacters : IDisposable
@@ -17,8 +18,8 @@ public class CutsceneCharacters : IDisposable
public IEnumerable< KeyValuePair< int, global::Dalamud.Game.ClientState.Objects.Types.GameObject > > Actors
=> Enumerable.Range( CutsceneStartIdx, CutsceneSlots )
- .Where( i => Dalamud.Objects[ i ] != null )
- .Select( i => KeyValuePair.Create( i, this[ i ] ?? Dalamud.Objects[ i ]! ) );
+ .Where( i => DalamudServices.Objects[ i ] != null )
+ .Select( i => KeyValuePair.Create( i, this[ i ] ?? DalamudServices.Objects[ i ]! ) );
public CutsceneCharacters(GameEventManager events)
{
@@ -35,7 +36,7 @@ public class CutsceneCharacters : IDisposable
{
Debug.Assert( idx is >= CutsceneStartIdx and < CutsceneEndIdx );
idx = _copiedCharacters[ idx - CutsceneStartIdx ];
- return idx < 0 ? null : Dalamud.Objects[ idx ];
+ return idx < 0 ? null : DalamudServices.Objects[ idx ];
}
}
diff --git a/Penumbra/Interop/Resolver/IdentifiedCollectionCache.cs b/Penumbra/Interop/Resolver/IdentifiedCollectionCache.cs
index b3ffc5d3..efdb67c5 100644
--- a/Penumbra/Interop/Resolver/IdentifiedCollectionCache.cs
+++ b/Penumbra/Interop/Resolver/IdentifiedCollectionCache.cs
@@ -5,7 +5,8 @@ using FFXIVClientStructs.FFXIV.Client.Game.Character;
using FFXIVClientStructs.FFXIV.Client.Game.Object;
using Penumbra.Collections;
using Penumbra.GameData.Actors;
-
+using Penumbra.Services;
+
namespace Penumbra.Interop.Resolver;
public unsafe class IdentifiedCollectionCache : IDisposable, IEnumerable< (IntPtr Address, ActorIdentifier Identifier, ModCollection Collection) >
@@ -29,7 +30,7 @@ public unsafe class IdentifiedCollectionCache : IDisposable, IEnumerable< (IntPt
Penumbra.CollectionManager.CollectionChanged += CollectionChangeClear;
Penumbra.TempMods.CollectionChanged += CollectionChangeClear;
- Dalamud.ClientState.TerritoryChanged += TerritoryClear;
+ DalamudServices.ClientState.TerritoryChanged += TerritoryClear;
_events.CharacterDestructor += OnCharacterDestruct;
_enabled = true;
}
@@ -43,7 +44,7 @@ public unsafe class IdentifiedCollectionCache : IDisposable, IEnumerable< (IntPt
Penumbra.CollectionManager.CollectionChanged -= CollectionChangeClear;
Penumbra.TempMods.CollectionChanged -= CollectionChangeClear;
- Dalamud.ClientState.TerritoryChanged -= TerritoryClear;
+ DalamudServices.ClientState.TerritoryChanged -= TerritoryClear;
_events.CharacterDestructor -= OnCharacterDestruct;
_enabled = false;
}
diff --git a/Penumbra/Interop/Resolver/PathResolver.AnimationState.cs b/Penumbra/Interop/Resolver/PathResolver.AnimationState.cs
index 60822ad0..65d032de 100644
--- a/Penumbra/Interop/Resolver/PathResolver.AnimationState.cs
+++ b/Penumbra/Interop/Resolver/PathResolver.AnimationState.cs
@@ -5,6 +5,7 @@ using Penumbra.Collections;
using Penumbra.GameData;
using Penumbra.GameData.Enums;
using Penumbra.Interop.Structs;
+using Penumbra.Services;
using Penumbra.String;
using Penumbra.String.Classes;
using Penumbra.Util;
@@ -137,9 +138,9 @@ public unsafe partial class PathResolver
{
var getGameObjectIdx = ( ( delegate* unmanaged< IntPtr, int >** )timeline )[ 0 ][ Offsets.GetGameObjectIdxVfunc ];
var idx = getGameObjectIdx( timeline );
- if( idx >= 0 && idx < Dalamud.Objects.Length )
+ if( idx >= 0 && idx < DalamudServices.Objects.Length )
{
- var obj = Dalamud.Objects[ idx ];
+ var obj = DalamudServices.Objects[ idx ];
return obj != null ? IdentifyCollection( ( GameObject* )obj.Address, true ) : ResolveData.Invalid;
}
}
@@ -203,9 +204,9 @@ public unsafe partial class PathResolver
if( timelinePtr != IntPtr.Zero )
{
var actorIdx = ( int )( *( *( ulong** )timelinePtr + 1 ) >> 3 );
- if( actorIdx >= 0 && actorIdx < Dalamud.Objects.Length )
+ if( actorIdx >= 0 && actorIdx < DalamudServices.Objects.Length )
{
- _animationLoadData = IdentifyCollection( ( GameObject* )( Dalamud.Objects[ actorIdx ]?.Address ?? IntPtr.Zero ), true );
+ _animationLoadData = IdentifyCollection( ( GameObject* )( DalamudServices.Objects[ actorIdx ]?.Address ?? IntPtr.Zero ), true );
}
}
@@ -233,14 +234,14 @@ public unsafe partial class PathResolver
private global::Dalamud.Game.ClientState.Objects.Types.GameObject? GetOwnedObject( uint id )
{
- var owner = Dalamud.Objects.SearchById( id );
+ var owner = DalamudServices.Objects.SearchById( id );
if( owner == null )
{
return null;
}
var idx = ( ( GameObject* )owner.Address )->ObjectIndex;
- return Dalamud.Objects[ idx + 1 ];
+ return DalamudServices.Objects[ idx + 1 ];
}
private IntPtr LoadCharacterVfxDetour( byte* vfxPath, VfxParams* vfxParams, byte unk1, byte unk2, float unk3, int unk4 )
@@ -251,8 +252,8 @@ public unsafe partial class PathResolver
{
var obj = vfxParams->GameObjectType switch
{
- 0 => Dalamud.Objects.SearchById( vfxParams->GameObjectId ),
- 2 => Dalamud.Objects[ ( int )vfxParams->GameObjectId ],
+ 0 => DalamudServices.Objects.SearchById( vfxParams->GameObjectId ),
+ 2 => DalamudServices.Objects[ ( int )vfxParams->GameObjectId ],
4 => GetOwnedObject( vfxParams->GameObjectId ),
_ => null,
};
diff --git a/Penumbra/Interop/Resolver/PathResolver.DrawObjectState.cs b/Penumbra/Interop/Resolver/PathResolver.DrawObjectState.cs
index 16c321d4..efb7e61c 100644
--- a/Penumbra/Interop/Resolver/PathResolver.DrawObjectState.cs
+++ b/Penumbra/Interop/Resolver/PathResolver.DrawObjectState.cs
@@ -12,7 +12,8 @@ using Penumbra.GameData;
using Penumbra.GameData.Enums;
using Penumbra.String.Classes;
using Penumbra.Util;
-
+using Penumbra.Services;
+
namespace Penumbra.Interop.Resolver;
public unsafe partial class PathResolver
@@ -113,7 +114,7 @@ public unsafe partial class PathResolver
// Check that a linked DrawObject still corresponds to the correct actor and that it still exists, otherwise remove it.
private bool VerifyEntry( IntPtr drawObject, int gameObjectIdx, out GameObject* gameObject )
{
- gameObject = ( GameObject* )Dalamud.Objects.GetObjectAddress( gameObjectIdx );
+ gameObject = ( GameObject* )DalamudServices.Objects.GetObjectAddress( gameObjectIdx );
var draw = ( DrawObject* )drawObject;
if( gameObject != null
&& ( gameObject->DrawObject == draw || draw != null && gameObject->DrawObject == draw->Object.ParentObject ) )
@@ -251,9 +252,9 @@ public unsafe partial class PathResolver
// We do not iterate the Dalamud table because it does not work when not logged in.
private void InitializeDrawObjects()
{
- for( var i = 0; i < Dalamud.Objects.Length; ++i )
+ for( var i = 0; i < DalamudServices.Objects.Length; ++i )
{
- var ptr = ( GameObject* )Dalamud.Objects.GetObjectAddress( i );
+ var ptr = ( GameObject* )DalamudServices.Objects.GetObjectAddress( i );
if( ptr != null && ptr->IsCharacter() && ptr->DrawObject != null )
{
_drawObjectToObject[ ( IntPtr )ptr->DrawObject ] = ( IdentifyCollection( ptr, false ), ptr->ObjectIndex );
diff --git a/Penumbra/Interop/Resolver/PathResolver.Identification.cs b/Penumbra/Interop/Resolver/PathResolver.Identification.cs
index 85839f24..cacd3b20 100644
--- a/Penumbra/Interop/Resolver/PathResolver.Identification.cs
+++ b/Penumbra/Interop/Resolver/PathResolver.Identification.cs
@@ -8,6 +8,7 @@ using OtterGui;
using Penumbra.Collections;
using Penumbra.GameData.Actors;
using Penumbra.GameData.Enums;
+using Penumbra.Services;
using Penumbra.Util;
using Character = FFXIVClientStructs.FFXIV.Client.Game.Character.Character;
using GameObject = FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject;
@@ -37,7 +38,7 @@ public unsafe partial class PathResolver
// Login screen. Names are populated after actors are drawn,
// so it is not possible to fetch names from the ui list.
// Actors are also not named. So use Yourself > Players > Racial > Default.
- if( !Dalamud.ClientState.IsLoggedIn )
+ if( !DalamudServices.ClientState.IsLoggedIn )
{
var collection2 = Penumbra.CollectionManager.ByType( CollectionType.Yourself )
?? CollectionByAttributes( gameObject )
@@ -46,7 +47,7 @@ public unsafe partial class PathResolver
}
// Aesthetician. The relevant actor is yourself, so use player collection when possible.
- if( Dalamud.GameGui.GetAddonByName( "ScreenLog" ) == IntPtr.Zero )
+ if( DalamudServices.GameGui.GetAddonByName( "ScreenLog" ) == IntPtr.Zero )
{
var player = Penumbra.Actors.GetCurrentPlayer();
var collection2 = ( player.IsValid ? CollectionByIdentifier( player ) : null )
@@ -86,7 +87,7 @@ public unsafe partial class PathResolver
public static ModCollection PlayerCollection()
{
using var performance = Penumbra.Performance.Measure( PerformanceType.IdentifyCollection );
- var gameObject = ( GameObject* )Dalamud.Objects.GetObjectAddress( 0 );
+ var gameObject = ( GameObject* )DalamudServices.Objects.GetObjectAddress( 0 );
if( gameObject == null )
{
return Penumbra.CollectionManager.ByType( CollectionType.Yourself )
diff --git a/Penumbra/Interop/Resolver/PathResolver.cs b/Penumbra/Interop/Resolver/PathResolver.cs
index 8e60cf91..b64323a2 100644
--- a/Penumbra/Interop/Resolver/PathResolver.cs
+++ b/Penumbra/Interop/Resolver/PathResolver.cs
@@ -8,6 +8,7 @@ using FFXIVClientStructs.FFXIV.Client.System.Resource;
using Penumbra.Collections;
using Penumbra.GameData.Enums;
using Penumbra.Interop.Loader;
+using Penumbra.Services;
using Penumbra.String;
using Penumbra.String.Classes;
using Penumbra.Util;
@@ -34,7 +35,7 @@ public partial class PathResolver : IDisposable
private readonly SubfileHelper _subFiles;
static PathResolver()
- => ValidHumanModels = GetValidHumanModels( Dalamud.GameData );
+ => ValidHumanModels = GetValidHumanModels( DalamudServices.GameData );
public unsafe PathResolver( ResourceLoader loader )
{
diff --git a/Penumbra/Meta/Files/ImcFile.cs b/Penumbra/Meta/Files/ImcFile.cs
index 07dc0aff..cc3add2d 100644
--- a/Penumbra/Meta/Files/ImcFile.cs
+++ b/Penumbra/Meta/Files/ImcFile.cs
@@ -5,6 +5,7 @@ using Penumbra.GameData.Enums;
using Penumbra.GameData.Structs;
using Penumbra.Interop.Structs;
using Penumbra.Meta.Manipulations;
+using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.String.Functions;
@@ -140,7 +141,7 @@ public unsafe class ImcFile : MetaBaseFile
public override void Reset()
{
- var file = Dalamud.GameData.GetFile( Path.ToString() );
+ var file = DalamudServices.GameData.GetFile( Path.ToString() );
fixed( byte* ptr = file!.Data )
{
MemoryUtility.MemCpyUnchecked( Data, ptr, file.Data.Length );
@@ -152,7 +153,7 @@ public unsafe class ImcFile : MetaBaseFile
: base( 0 )
{
Path = manip.GamePath();
- var file = Dalamud.GameData.GetFile( Path.ToString() );
+ var file = DalamudServices.GameData.GetFile( Path.ToString() );
if( file == null )
{
throw new ImcException( manip, Path );
@@ -171,7 +172,7 @@ public unsafe class ImcFile : MetaBaseFile
public static ImcEntry GetDefault( string path, EquipSlot slot, int variantIdx, out bool exists )
{
- var file = Dalamud.GameData.GetFile( path );
+ var file = DalamudServices.GameData.GetFile( path );
exists = false;
if( file == null )
{
diff --git a/Penumbra/Mods/ItemSwap/ItemSwap.cs b/Penumbra/Mods/ItemSwap/ItemSwap.cs
index e479afc1..8358b97d 100644
--- a/Penumbra/Mods/ItemSwap/ItemSwap.cs
+++ b/Penumbra/Mods/ItemSwap/ItemSwap.cs
@@ -8,6 +8,7 @@ using Penumbra.GameData.Files;
using Penumbra.GameData.Structs;
using Penumbra.Meta.Files;
using Penumbra.Meta.Manipulations;
+using Penumbra.Services;
using Penumbra.String.Classes;
namespace Penumbra.Mods.ItemSwap;
@@ -38,7 +39,7 @@ public static class ItemSwap
return true;
}
- var file = Dalamud.GameData.GetFile( path.InternalName.ToString() );
+ var file = DalamudServices.GameData.GetFile( path.InternalName.ToString() );
if( file != null )
{
data = file.Data;
diff --git a/Penumbra/Mods/ItemSwap/Swaps.cs b/Penumbra/Mods/ItemSwap/Swaps.cs
index 332aa6ac..6cca0356 100644
--- a/Penumbra/Mods/ItemSwap/Swaps.cs
+++ b/Penumbra/Mods/ItemSwap/Swaps.cs
@@ -8,7 +8,8 @@ using System.Linq;
using System.Security.Cryptography;
using Penumbra.GameData.Enums;
using static Penumbra.Mods.ItemSwap.ItemSwap;
-
+using Penumbra.Services;
+
namespace Penumbra.Mods.ItemSwap;
public class Swap
@@ -139,7 +140,7 @@ public sealed class FileSwap : Swap
}
swap.SwapToModded = redirections( swap.SwapToRequestPath );
- swap.SwapToModdedExistsInGame = !swap.SwapToModded.IsRooted && Dalamud.GameData.FileExists( swap.SwapToModded.InternalName.ToString() );
+ swap.SwapToModdedExistsInGame = !swap.SwapToModded.IsRooted && DalamudServices.GameData.FileExists( swap.SwapToModded.InternalName.ToString() );
swap.SwapToModdedEqualsOriginal = !swap.SwapToModded.IsRooted && swap.SwapToModded.InternalName.Equals( swap.SwapFromRequestPath.Path );
swap.FileData = type switch
diff --git a/Penumbra/Mods/Mod.LocalData.cs b/Penumbra/Mods/Mod.LocalData.cs
index 21841d3a..ad321b5e 100644
--- a/Penumbra/Mods/Mod.LocalData.cs
+++ b/Penumbra/Mods/Mod.LocalData.cs
@@ -4,13 +4,14 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using Newtonsoft.Json;
-
+using Penumbra.Services;
+
namespace Penumbra.Mods;
public sealed partial class Mod
{
public static DirectoryInfo LocalDataDirectory
- => new(Path.Combine( Dalamud.PluginInterface.ConfigDirectory.FullName, "mod_data" ));
+ => new(Path.Combine( DalamudServices.PluginInterface.ConfigDirectory.FullName, "mod_data" ));
public long ImportDate { get; private set; } = DateTimeOffset.UnixEpoch.ToUnixTimeMilliseconds();
@@ -21,7 +22,7 @@ public sealed partial class Mod
public bool Favorite { get; private set; } = false;
private FileInfo LocalDataFile
- => new(Path.Combine( Dalamud.PluginInterface.ConfigDirectory.FullName, "mod_data", $"{ModPath.Name}.json" ));
+ => new(Path.Combine( DalamudServices.PluginInterface.ConfigDirectory.FullName, "mod_data", $"{ModPath.Name}.json" ));
private ModDataChangeType LoadLocalData()
{
@@ -113,8 +114,8 @@ public sealed partial class Mod
private static void MoveDataFile( DirectoryInfo oldMod, DirectoryInfo newMod )
{
- var oldFile = Path.Combine( Dalamud.PluginInterface.ConfigDirectory.FullName, "mod_data", $"{oldMod.Name}.json" );
- var newFile = Path.Combine( Dalamud.PluginInterface.ConfigDirectory.FullName, "mod_data", $"{newMod.Name}.json" );
+ var oldFile = Path.Combine( DalamudServices.PluginInterface.ConfigDirectory.FullName, "mod_data", $"{oldMod.Name}.json" );
+ var newFile = Path.Combine( DalamudServices.PluginInterface.ConfigDirectory.FullName, "mod_data", $"{newMod.Name}.json" );
if( File.Exists( oldFile ) )
{
try
diff --git a/Penumbra/Mods/ModFileSystem.cs b/Penumbra/Mods/ModFileSystem.cs
index 9b75dbc4..977db6f3 100644
--- a/Penumbra/Mods/ModFileSystem.cs
+++ b/Penumbra/Mods/ModFileSystem.cs
@@ -5,13 +5,14 @@ using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using OtterGui.Filesystem;
-
+using Penumbra.Services;
+
namespace Penumbra.Mods;
public sealed class ModFileSystem : FileSystem< Mod >, IDisposable
{
public static string ModFileSystemFile
- => Path.Combine( Dalamud.PluginInterface.GetPluginConfigDirectory(), "sort_order.json" );
+ => Path.Combine( DalamudServices.PluginInterface.GetPluginConfigDirectory(), "sort_order.json" );
// Save the current sort order.
// Does not save or copy the backup in the current mod directory,
diff --git a/Penumbra/Penumbra.cs b/Penumbra/Penumbra.cs
index 8d8c70d2..d14f94e3 100644
--- a/Penumbra/Penumbra.cs
+++ b/Penumbra/Penumbra.cs
@@ -9,6 +9,7 @@ using Dalamud.Interface.Windowing;
using Dalamud.Plugin;
using ImGuiNET;
using Lumina.Excel.GeneratedSheets;
+using Microsoft.Extensions.DependencyInjection;
using OtterGui;
using OtterGui.Classes;
using OtterGui.Log;
@@ -31,6 +32,42 @@ using ResidentResourceManager = Penumbra.Interop.ResidentResourceManager;
namespace Penumbra;
+public class PenumbraNew
+{
+ public string Name
+ => "Penumbra";
+
+ public static readonly Logger Log = new();
+ public readonly StartTimeTracker< StartTimeType > StartTimer = new();
+
+ public readonly IServiceCollection Services = new ServiceCollection();
+
+
+ public PenumbraNew( DalamudPluginInterface pi )
+ {
+ using var time = StartTimer.Measure( StartTimeType.Total );
+
+ // Add meta services.
+ Services.AddSingleton( Log );
+ Services.AddSingleton( StartTimer );
+ Services.AddSingleton< ValidityChecker >();
+ Services.AddSingleton< PerformanceTracker< PerformanceType > >();
+
+ // Add Dalamud services
+ var dalamud = new DalamudServices( pi );
+ dalamud.AddServices( Services );
+
+ // Add Game Data
+
+
+ // Add Configuration
+ Services.AddSingleton< Configuration >();
+ }
+
+ public void Dispose()
+ { }
+}
+
public class Penumbra : IDalamudPlugin
{
public string Name
@@ -87,22 +124,24 @@ public class Penumbra : IDalamudPlugin
try
{
- Dalamud.Initialize( pluginInterface );
+ DalamudServices.Initialize( pluginInterface );
- Performance = new PerformanceTracker< PerformanceType >( Dalamud.Framework );
+ Performance = new PerformanceTracker< PerformanceType >( DalamudServices.Framework );
Log = new Logger();
- ValidityChecker = new ValidityChecker( Dalamud.PluginInterface );
+ ValidityChecker = new ValidityChecker( DalamudServices.PluginInterface );
GameEvents = new GameEventManager();
- StartTimer.Measure( StartTimeType.Identifier, () => Identifier = GameData.GameData.GetIdentifier( Dalamud.PluginInterface, Dalamud.GameData ) );
+ StartTimer.Measure( StartTimeType.Identifier, () => Identifier = GameData.GameData.GetIdentifier( DalamudServices.PluginInterface, DalamudServices.GameData ) );
StartTimer.Measure( StartTimeType.GamePathParser, () => GamePathParser = GameData.GameData.GetGamePathParser() );
- StartTimer.Measure( StartTimeType.Stains, () => StainManager = new StainManager( Dalamud.PluginInterface, Dalamud.GameData ) );
- ItemData = StartTimer.Measure( StartTimeType.Items, () => new ItemData( Dalamud.PluginInterface, Dalamud.GameData, Dalamud.GameData.Language ) );
+ StartTimer.Measure( StartTimeType.Stains, () => StainManager = new StainManager( DalamudServices.PluginInterface, DalamudServices.GameData ) );
+ ItemData = StartTimer.Measure( StartTimeType.Items,
+ () => new ItemData( DalamudServices.PluginInterface, DalamudServices.GameData, DalamudServices.GameData.Language ) );
StartTimer.Measure( StartTimeType.Actors,
- () => Actors = new ActorManager( Dalamud.PluginInterface, Dalamud.Objects, Dalamud.ClientState, Dalamud.Framework, Dalamud.GameData, Dalamud.GameGui,
+ () => Actors = new ActorManager( DalamudServices.PluginInterface, DalamudServices.Objects, DalamudServices.ClientState, DalamudServices.Framework,
+ DalamudServices.GameData, DalamudServices.GameGui,
ResolveCutscene ) );
- Framework = new FrameworkManager( Dalamud.Framework, Log );
+ Framework = new FrameworkManager( DalamudServices.Framework, Log );
CharacterUtility = new CharacterUtility();
StartTimer.Measure( StartTimeType.Backup, () => Backup.CreateBackup( pluginInterface.ConfigDirectory, PenumbraBackupFiles() ) );
@@ -147,7 +186,7 @@ public class Penumbra : IDalamudPlugin
using( var tApi = StartTimer.Measure( StartTimeType.Api ) )
{
Api = new PenumbraApi( this );
- IpcProviders = new PenumbraIpcProviders( Dalamud.PluginInterface, Api );
+ IpcProviders = new PenumbraIpcProviders( DalamudServices.PluginInterface, Api );
HttpApi = new HttpApi( Api );
if( Config.EnableHttpApi )
{
@@ -159,7 +198,7 @@ public class Penumbra : IDalamudPlugin
ValidityChecker.LogExceptions();
Log.Information( $"Penumbra Version {Version}, Commit #{CommitHash} successfully Loaded from {pluginInterface.SourceRepository}." );
- OtterTex.NativeDll.Initialize( Dalamud.PluginInterface.AssemblyLocation.DirectoryName );
+ OtterTex.NativeDll.Initialize( DalamudServices.PluginInterface.AssemblyLocation.DirectoryName );
Log.Information( $"Loading native OtterTex assembly from {OtterTex.NativeDll.Directory}." );
if( CharacterUtility.Ready )
@@ -186,19 +225,19 @@ public class Penumbra : IDalamudPlugin
};
var btn = new LaunchButton( cfg );
var system = new WindowSystem( Name );
- var cmd = new CommandHandler( Dalamud.Commands, ObjectReloader, Config, this, cfg, ModManager, CollectionManager, Actors );
+ var cmd = new CommandHandler( DalamudServices.Commands, ObjectReloader, Config, this, cfg, ModManager, CollectionManager, Actors );
system.AddWindow( cfg );
system.AddWindow( cfg.ModEditPopup );
system.AddWindow( changelog );
if( !_disposed )
{
- _changelog = changelog;
- ConfigWindow = cfg;
- _windowSystem = system;
- _launchButton = btn;
- _commandHandler = cmd;
- Dalamud.PluginInterface.UiBuilder.OpenConfigUi += cfg.Toggle;
- Dalamud.PluginInterface.UiBuilder.Draw += _windowSystem.Draw;
+ _changelog = changelog;
+ ConfigWindow = cfg;
+ _windowSystem = system;
+ _launchButton = btn;
+ _commandHandler = cmd;
+ DalamudServices.PluginInterface.UiBuilder.OpenConfigUi += cfg.Toggle;
+ DalamudServices.PluginInterface.UiBuilder.Draw += _windowSystem.Draw;
}
else
{
@@ -214,13 +253,13 @@ public class Penumbra : IDalamudPlugin
{
if( _windowSystem != null )
{
- Dalamud.PluginInterface.UiBuilder.Draw -= _windowSystem.Draw;
+ DalamudServices.PluginInterface.UiBuilder.Draw -= _windowSystem.Draw;
}
_launchButton?.Dispose();
if( ConfigWindow != null )
{
- Dalamud.PluginInterface.UiBuilder.OpenConfigUi -= ConfigWindow.Toggle;
+ DalamudServices.PluginInterface.UiBuilder.OpenConfigUi -= ConfigWindow.Toggle;
ConfigWindow.Dispose();
}
}
@@ -331,7 +370,7 @@ public class Penumbra : IDalamudPlugin
? new DirectoryInfo( collectionDir ).EnumerateFiles( "*.json" ).ToList()
: new List< FileInfo >();
list.AddRange( Mod.LocalDataDirectory.Exists ? Mod.LocalDataDirectory.EnumerateFiles( "*.json" ) : Enumerable.Empty< FileInfo >() );
- list.Add( Dalamud.PluginInterface.ConfigFile );
+ list.Add( DalamudServices.PluginInterface.ConfigFile );
list.Add( new FileInfo( ModFileSystem.ModFileSystemFile ) );
list.Add( new FileInfo( ModCollection.Manager.ActiveCollectionFile ) );
return list;
@@ -352,7 +391,8 @@ public class Penumbra : IDalamudPlugin
sb.Append( $"> **`Free Drive Space: `** {( drive != null ? Functions.HumanReadableSize( drive.AvailableFreeSpace ) : "Unknown" )}\n" );
sb.Append( $"> **`Auto-Deduplication: `** {Config.AutoDeduplicateOnImport}\n" );
sb.Append( $"> **`Debug Mode: `** {Config.DebugMode}\n" );
- sb.Append( $"> **`Synchronous Load (Dalamud): `** {( Dalamud.GetDalamudConfig( Dalamud.WaitingForPluginsOption, out bool v ) ? v.ToString() : "Unknown" )}\n" );
+ sb.Append(
+ $"> **`Synchronous Load (Dalamud): `** {( DalamudServices.GetDalamudConfig( DalamudServices.WaitingForPluginsOption, out bool v ) ? v.ToString() : "Unknown" )}\n" );
sb.Append( $"> **`Logging: `** Log: {Config.EnableResourceLogging}, Watcher: {Config.EnableResourceWatcher} ({Config.MaxResourceWatcherRecords})\n" );
sb.Append( $"> **`Use Ownership: `** {Config.UseOwnerNameForCharacterCollection}\n" );
sb.AppendLine( "**Mods**" );
diff --git a/Penumbra/Penumbra.csproj b/Penumbra/Penumbra.csproj
index a97d1d90..cddc5812 100644
--- a/Penumbra/Penumbra.csproj
+++ b/Penumbra/Penumbra.csproj
@@ -71,6 +71,7 @@
+
diff --git a/Penumbra/PenumbraNew.cs b/Penumbra/PenumbraNew.cs
new file mode 100644
index 00000000..b08055d7
--- /dev/null
+++ b/Penumbra/PenumbraNew.cs
@@ -0,0 +1,50 @@
+using System.IO;
+using Dalamud.Plugin;
+using Microsoft.Extensions.DependencyInjection;
+using OtterGui.Classes;
+using OtterGui.Log;
+using Penumbra.GameData;
+using Penumbra.GameData.Data;
+using Penumbra.Interop;
+using Penumbra.Services;
+using Penumbra.Util;
+
+namespace Penumbra;
+
+public class PenumbraNew
+{
+ public string Name
+ => "Penumbra";
+
+ public static readonly Logger Log = new();
+ public readonly StartTimeTracker StartTimer = new();
+
+ public readonly IServiceCollection Services = new ServiceCollection();
+
+
+ public PenumbraNew(DalamudPluginInterface pi)
+ {
+ using var time = StartTimer.Measure(StartTimeType.Total);
+
+ // Add meta services.
+ Services.AddSingleton(Log);
+ Services.AddSingleton(StartTimer);
+ Services.AddSingleton();
+ Services.AddSingleton>();
+
+ // Add Dalamud services
+ var dalamud = new DalamudServices(pi);
+ dalamud.AddServices(Services);
+
+ // Add Game Data
+ Services.AddSingleton();
+ Services.AddSingleton();
+ Services.AddSingleton();
+
+ // Add Configuration
+ Services.AddSingleton();
+ }
+
+ public void Dispose()
+ { }
+}
\ No newline at end of file
diff --git a/Penumbra/Services/DalamudServices.cs b/Penumbra/Services/DalamudServices.cs
new file mode 100644
index 00000000..42d52067
--- /dev/null
+++ b/Penumbra/Services/DalamudServices.cs
@@ -0,0 +1,168 @@
+using System;
+using Dalamud.Data;
+using Dalamud.Game;
+using Dalamud.Game.ClientState;
+using Dalamud.Game.ClientState.Conditions;
+using Dalamud.Game.ClientState.Keys;
+using Dalamud.Game.ClientState.Objects;
+using Dalamud.Game.Command;
+using Dalamud.Game.Gui;
+using Dalamud.Interface;
+using Dalamud.IoC;
+using Dalamud.Plugin;
+using System.Linq;
+using System.Reflection;
+using Microsoft.Extensions.DependencyInjection;
+
+// ReSharper disable AutoPropertyCanBeMadeGetOnly.Local
+
+namespace Penumbra.Services;
+
+public class DalamudServices
+{
+ public DalamudServices(DalamudPluginInterface pluginInterface)
+ {
+ pluginInterface.Inject(this);
+ try
+ {
+ var serviceType = typeof(DalamudPluginInterface).Assembly.DefinedTypes.FirstOrDefault(t => t.Name == "Service`1" && t.IsGenericType);
+ var configType = typeof(DalamudPluginInterface).Assembly.DefinedTypes.FirstOrDefault(t => t.Name == "DalamudConfiguration");
+ var interfaceType = typeof(DalamudPluginInterface).Assembly.DefinedTypes.FirstOrDefault(t => t.Name == "DalamudInterface");
+ if (serviceType == null || configType == null || interfaceType == null)
+ {
+ return;
+ }
+
+ var configService = serviceType.MakeGenericType(configType);
+ var interfaceService = serviceType.MakeGenericType(interfaceType);
+ var configGetter = configService.GetMethod("Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
+ _interfaceGetter = interfaceService.GetMethod("Get", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
+ if (configGetter == null || _interfaceGetter == null)
+ {
+ return;
+ }
+
+ _dalamudConfig = configGetter.Invoke(null, null);
+ if (_dalamudConfig != null)
+ {
+ _saveDalamudConfig = _dalamudConfig.GetType().GetMethod("Save", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+ if (_saveDalamudConfig == null)
+ {
+ _dalamudConfig = null;
+ _interfaceGetter = null;
+ }
+ }
+ }
+ catch
+ {
+ _dalamudConfig = null;
+ _saveDalamudConfig = null;
+ _interfaceGetter = null;
+ }
+ }
+
+ public void AddServices(IServiceCollection services)
+ {
+ services.AddSingleton(PluginInterface);
+ services.AddSingleton(Commands);
+ services.AddSingleton(GameData);
+ services.AddSingleton(ClientState);
+ services.AddSingleton(Chat);
+ services.AddSingleton(Framework);
+ services.AddSingleton(Conditions);
+ services.AddSingleton(Targets);
+ services.AddSingleton(Objects);
+ services.AddSingleton(TitleScreenMenu);
+ services.AddSingleton(GameGui);
+ services.AddSingleton(KeyState);
+ services.AddSingleton(SigScanner);
+ services.AddSingleton(this);
+ }
+
+ // @formatter:off
+ [PluginService][RequiredVersion("1.0")] public DalamudPluginInterface PluginInterface { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public CommandManager Commands { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public DataManager GameData { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public ClientState ClientState { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public ChatGui Chat { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public Framework Framework { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public Condition Conditions { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public TargetManager Targets { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public ObjectTable Objects { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public TitleScreenMenu TitleScreenMenu { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public GameGui GameGui { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public KeyState KeyState { get; private set; } = null!;
+ [PluginService][RequiredVersion("1.0")] public SigScanner SigScanner { get; private set; } = null!;
+ // @formatter:on
+
+ public const string WaitingForPluginsOption = "IsResumeGameAfterPluginLoad";
+
+ private readonly object? _dalamudConfig;
+ private readonly MethodInfo? _interfaceGetter;
+ private readonly MethodInfo? _saveDalamudConfig;
+
+ public bool GetDalamudConfig(string fieldName, out T? value)
+ {
+ value = default;
+ try
+ {
+ if (_dalamudConfig == null)
+ {
+ return false;
+ }
+
+ var getter = _dalamudConfig.GetType().GetProperty(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+ if (getter == null)
+ {
+ return false;
+ }
+
+ var result = getter.GetValue(_dalamudConfig);
+ if (result is not T v)
+ {
+ return false;
+ }
+
+ value = v;
+ return true;
+ }
+ catch (Exception e)
+ {
+ Penumbra.Log.Error($"Error while fetching Dalamud Config {fieldName}:\n{e}");
+ return false;
+ }
+ }
+
+ public bool SetDalamudConfig(string fieldName, in T? value, string? windowFieldName = null)
+ {
+ try
+ {
+ if (_dalamudConfig == null)
+ {
+ return false;
+ }
+
+ var getter = _dalamudConfig.GetType().GetProperty(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+ if (getter == null)
+ {
+ return false;
+ }
+
+ getter.SetValue(_dalamudConfig, value);
+ if (windowFieldName != null)
+ {
+ var inter = _interfaceGetter!.Invoke(null, null);
+ var settingsWindow = inter?.GetType().GetField("settingsWindow", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)?.GetValue(inter);
+ settingsWindow?.GetType().GetField(windowFieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)?.SetValue(settingsWindow, value);
+ }
+
+ _saveDalamudConfig!.Invoke(_dalamudConfig, null);
+ return true;
+ }
+ catch (Exception e)
+ {
+ Penumbra.Log.Error($"Error while fetching Dalamud Config {fieldName}:\n{e}");
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Penumbra/Services/ObjectIdentifier.cs b/Penumbra/Services/ObjectIdentifier.cs
new file mode 100644
index 00000000..7223017b
--- /dev/null
+++ b/Penumbra/Services/ObjectIdentifier.cs
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Dalamud.Data;
+using Dalamud.Plugin;
+using Lumina.Excel.GeneratedSheets;
+using OtterGui.Classes;
+using Penumbra.GameData;
+using Penumbra.GameData.Enums;
+using Penumbra.GameData.Structs;
+using Penumbra.Util;
+using Action = System.Action;
+
+namespace Penumbra.Services;
+
+public sealed class ObjectIdentifier : IObjectIdentifier
+{
+ private const string Prefix = $"[{nameof(ObjectIdentifier)}]";
+
+ public IObjectIdentifier? Identifier { get; private set; }
+
+ public bool IsDisposed { get; private set; }
+
+ public bool Ready
+ => Identifier != null && !IsDisposed;
+
+ public event Action? FinishedCreation;
+
+ public ObjectIdentifier(StartTimeTracker tracker, DalamudPluginInterface pi, DataManager data)
+ {
+ Task.Run(() =>
+ {
+ using var timer = tracker.Measure(StartTimeType.Identifier);
+ var identifier = GameData.GameData.GetIdentifier(pi, data);
+ if (IsDisposed)
+ {
+ identifier.Dispose();
+ }
+ else
+ {
+ Identifier = identifier;
+ Penumbra.Log.Verbose($"{Prefix} Created.");
+ FinishedCreation?.Invoke();
+ }
+ });
+ }
+
+ public void Dispose()
+ {
+ Identifier?.Dispose();
+ IsDisposed = true;
+ Penumbra.Log.Verbose($"{Prefix} Disposed.");
+ }
+
+ public IGamePathParser GamePathParser
+ => Identifier?.GamePathParser ?? throw new Exception($"{Prefix} Not yet ready.");
+
+ public void Identify(IDictionary set, string path)
+ => Identifier?.Identify(set, path);
+
+ public Dictionary Identify(string path)
+ => Identifier?.Identify(path) ?? new Dictionary();
+
+ public IEnumerable- Identify(SetId setId, WeaponType weaponType, ushort variant, EquipSlot slot)
+ => Identifier?.Identify(setId, weaponType, variant, slot) ?? Array.Empty
- ();
+}
diff --git a/Penumbra/ValidityChecker.cs b/Penumbra/Services/ValidityChecker.cs
similarity index 89%
rename from Penumbra/ValidityChecker.cs
rename to Penumbra/Services/ValidityChecker.cs
index 5e71d998..d86167bc 100644
--- a/Penumbra/ValidityChecker.cs
+++ b/Penumbra/Services/ValidityChecker.cs
@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Reflection;
using Dalamud.Interface.Internal.Notifications;
using Dalamud.Plugin;
using Penumbra.Util;
@@ -20,11 +21,18 @@ public class ValidityChecker
public readonly List ImcExceptions = new();
+ public readonly string Version;
+ public readonly string CommitHash;
+
public ValidityChecker(DalamudPluginInterface pi)
{
DevPenumbraExists = CheckDevPluginPenumbra(pi);
IsNotInstalledPenumbra = CheckIsNotInstalled(pi);
IsValidSourceRepo = CheckSourceRepo(pi);
+
+ var assembly = Assembly.GetExecutingAssembly();
+ Version = assembly.GetName().Version?.ToString() ?? string.Empty;
+ CommitHash = assembly.GetCustomAttribute()?.InformationalVersion ?? "Unknown";
}
public void LogExceptions()
diff --git a/Penumbra/UI/Classes/ModEditWindow.FileEditor.cs b/Penumbra/UI/Classes/ModEditWindow.FileEditor.cs
index 19630beb..1e0b609b 100644
--- a/Penumbra/UI/Classes/ModEditWindow.FileEditor.cs
+++ b/Penumbra/UI/Classes/ModEditWindow.FileEditor.cs
@@ -10,6 +10,7 @@ using OtterGui;
using OtterGui.Raii;
using Penumbra.GameData.Files;
using Penumbra.Mods;
+using Penumbra.Services;
using Penumbra.String.Classes;
namespace Penumbra.UI.Classes;
@@ -82,7 +83,7 @@ public partial class ModEditWindow
_fileDialog.Reset();
try
{
- var file = Dalamud.GameData.GetFile( _defaultPath );
+ var file = DalamudServices.GameData.GetFile( _defaultPath );
if( file != null )
{
_defaultException = null;
diff --git a/Penumbra/UI/Classes/ModEditWindow.Materials.MtrlTab.cs b/Penumbra/UI/Classes/ModEditWindow.Materials.MtrlTab.cs
index 8c8cc508..5bb82fb3 100644
--- a/Penumbra/UI/Classes/ModEditWindow.Materials.MtrlTab.cs
+++ b/Penumbra/UI/Classes/ModEditWindow.Materials.MtrlTab.cs
@@ -10,6 +10,7 @@ using OtterGui.Classes;
using OtterGui.Raii;
using Penumbra.GameData.Data;
using Penumbra.GameData.Files;
+using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.Util;
using static Penumbra.GameData.Files.ShpkFile;
@@ -80,7 +81,7 @@ public partial class ModEditWindow
LoadedShpkPath = path;
var data = LoadedShpkPath.IsRooted
? File.ReadAllBytes( LoadedShpkPath.FullName )
- : Dalamud.GameData.GetFile( LoadedShpkPath.InternalName.ToString() )?.Data;
+ : DalamudServices.GameData.GetFile( LoadedShpkPath.InternalName.ToString() )?.Data;
AssociatedShpk = data?.Length > 0 ? new ShpkFile( data ) : throw new Exception( "Failure to load file data." );
LoadedShpkPathName = path.ToPath();
}
diff --git a/Penumbra/UI/Classes/ModFileSystemSelector.cs b/Penumbra/UI/Classes/ModFileSystemSelector.cs
index 497a2f0e..f1b9dbe3 100644
--- a/Penumbra/UI/Classes/ModFileSystemSelector.cs
+++ b/Penumbra/UI/Classes/ModFileSystemSelector.cs
@@ -14,7 +14,8 @@ using System.IO;
using System.Linq;
using System.Numerics;
using Penumbra.Api.Enums;
-
+using Penumbra.Services;
+
namespace Penumbra.UI.Classes;
public sealed partial class ModFileSystemSelector : FileSystemSelector< Mod, ModFileSystemSelector.ModState >
@@ -25,7 +26,7 @@ public sealed partial class ModFileSystemSelector : FileSystemSelector< Mod, Mod
public ModCollection SelectedSettingCollection { get; private set; } = ModCollection.Empty;
public ModFileSystemSelector( ModFileSystem fileSystem )
- : base( fileSystem, Dalamud.KeyState )
+ : base( fileSystem, DalamudServices.KeyState )
{
SubscribeRightClickFolder( EnableDescendants, 10 );
SubscribeRightClickFolder( DisableDescendants, 10 );
diff --git a/Penumbra/UI/ConfigWindow.CollectionsTab.Individual.cs b/Penumbra/UI/ConfigWindow.CollectionsTab.Individual.cs
index 528329cd..d89d554e 100644
--- a/Penumbra/UI/ConfigWindow.CollectionsTab.Individual.cs
+++ b/Penumbra/UI/ConfigWindow.CollectionsTab.Individual.cs
@@ -11,7 +11,8 @@ using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Interface.Components;
using OtterGui.Widgets;
using Penumbra.GameData.Actors;
-
+using Penumbra.Services;
+
namespace Penumbra.UI;
public partial class ConfigWindow
@@ -287,7 +288,7 @@ public partial class ConfigWindow
private static bool DrawNewTargetCollection( Vector2 width )
{
- var target = Penumbra.Actors.FromObject( Dalamud.Targets.Target, false, true, true );
+ var target = Penumbra.Actors.FromObject( DalamudServices.Targets.Target, false, true, true );
var result = Penumbra.CollectionManager.Individuals.CanAdd( target );
var tt = result switch
{
diff --git a/Penumbra/UI/ConfigWindow.DebugTab.cs b/Penumbra/UI/ConfigWindow.DebugTab.cs
index 6ca18204..b59ce96a 100644
--- a/Penumbra/UI/ConfigWindow.DebugTab.cs
+++ b/Penumbra/UI/ConfigWindow.DebugTab.cs
@@ -14,6 +14,7 @@ using Penumbra.GameData.Files;
using Penumbra.Interop.Loader;
using Penumbra.Interop.Resolver;
using Penumbra.Interop.Structs;
+using Penumbra.Services;
using Penumbra.String;
using Penumbra.Util;
using static OtterGui.Raii.ImRaii;
@@ -207,7 +208,7 @@ public partial class ConfigWindow
DrawSpecial( "Current Card", Penumbra.Actors.GetCardPlayer() );
DrawSpecial( "Current Glamour", Penumbra.Actors.GetGlamourPlayer() );
- foreach( var obj in Dalamud.Objects )
+ foreach( var obj in DalamudServices.Objects )
{
ImGuiUtil.DrawTableColumn( $"{( ( GameObject* )obj.Address )->ObjectIndex}" );
ImGuiUtil.DrawTableColumn( $"0x{obj.Address:X}" );
@@ -243,7 +244,7 @@ public partial class ConfigWindow
ImGui.TableNextColumn();
ImGui.TextUnformatted( idx.ToString() );
ImGui.TableNextColumn();
- var obj = ( GameObject* )Dalamud.Objects.GetObjectAddress( idx );
+ var obj = ( GameObject* )DalamudServices.Objects.GetObjectAddress( idx );
var (address, name) =
obj != null ? ( $"0x{( ulong )obj:X}", new ByteString( obj->Name ).ToString() ) : ( "NULL", "NULL" );
ImGui.TextUnformatted( address );
@@ -541,7 +542,7 @@ public partial class ConfigWindow
// Draw information about the models, materials and resources currently loaded by the local player.
private static unsafe void DrawPlayerModelInfo()
{
- var player = Dalamud.ClientState.LocalPlayer;
+ var player = DalamudServices.ClientState.LocalPlayer;
var name = player?.Name.ToString() ?? "NULL";
if( !ImGui.CollapsingHeader( $"Player Model Info: {name}##Draw" ) || player == null )
{
diff --git a/Penumbra/UI/ConfigWindow.ModPanel.Header.cs b/Penumbra/UI/ConfigWindow.ModPanel.Header.cs
index 4893c6da..6297e807 100644
--- a/Penumbra/UI/ConfigWindow.ModPanel.Header.cs
+++ b/Penumbra/UI/ConfigWindow.ModPanel.Header.cs
@@ -6,6 +6,7 @@ using Dalamud.Interface.GameFonts;
using ImGuiNET;
using OtterGui;
using OtterGui.Raii;
+using Penumbra.Services;
using Penumbra.UI.Classes;
namespace Penumbra.UI;
@@ -16,7 +17,7 @@ public partial class ConfigWindow
{
// We use a big, nice game font for the title.
private readonly GameFontHandle _nameFont =
- Dalamud.PluginInterface.UiBuilder.GetGameFontHandle( new GameFontStyle( GameFontFamilyAndSize.Jupiter23 ) );
+ DalamudServices.PluginInterface.UiBuilder.GetGameFontHandle( new GameFontStyle( GameFontFamilyAndSize.Jupiter23 ) );
// Header data.
private string _modName = string.Empty;
diff --git a/Penumbra/UI/ConfigWindow.ModsTab.cs b/Penumbra/UI/ConfigWindow.ModsTab.cs
index 079db72d..d08a50c6 100644
--- a/Penumbra/UI/ConfigWindow.ModsTab.cs
+++ b/Penumbra/UI/ConfigWindow.ModsTab.cs
@@ -9,7 +9,8 @@ using System.Numerics;
using Dalamud.Interface;
using OtterGui.Widgets;
using Penumbra.Api.Enums;
-
+using Penumbra.Services;
+
namespace Penumbra.UI;
public partial class ConfigWindow
@@ -121,7 +122,7 @@ public partial class ConfigWindow
ImGuiUtil.HoverTooltip( lower.Length > 0 ? $"Execute '/penumbra redraw {lower}'." : $"Execute '/penumbra redraw'." );
}
- using var disabled = ImRaii.Disabled( Dalamud.ClientState.LocalPlayer == null );
+ using var disabled = ImRaii.Disabled( DalamudServices.ClientState.LocalPlayer == null );
ImGui.SameLine();
var buttonWidth = frameHeight with { X = ImGui.GetContentRegionAvail().X / 4 };
DrawButton( buttonWidth, "All", string.Empty );
diff --git a/Penumbra/UI/ConfigWindow.ResourceTab.cs b/Penumbra/UI/ConfigWindow.ResourceTab.cs
index 46a322b5..ecb294b5 100644
--- a/Penumbra/UI/ConfigWindow.ResourceTab.cs
+++ b/Penumbra/UI/ConfigWindow.ResourceTab.cs
@@ -11,6 +11,7 @@ using OtterGui;
using OtterGui.Raii;
using OtterGui.Widgets;
using Penumbra.Interop.Loader;
+using Penumbra.Services;
using Penumbra.String.Classes;
namespace Penumbra.UI;
@@ -50,7 +51,7 @@ public partial class ConfigWindow
ImGui.NewLine();
unsafe
{
- ImGui.TextUnformatted( $"Static Address: 0x{( ulong )ResourceLoader.ResourceManager:X} (+0x{( ulong )ResourceLoader.ResourceManager - ( ulong )Dalamud.SigScanner.Module.BaseAddress:X})" );
+ ImGui.TextUnformatted( $"Static Address: 0x{( ulong )ResourceLoader.ResourceManager:X} (+0x{( ulong )ResourceLoader.ResourceManager - ( ulong )DalamudServices.SigScanner.Module.BaseAddress:X})" );
ImGui.TextUnformatted( $"Actual Address: 0x{( ulong )*ResourceLoader.ResourceManager:X}" );
}
}
diff --git a/Penumbra/UI/ConfigWindow.SettingsTab.Advanced.cs b/Penumbra/UI/ConfigWindow.SettingsTab.Advanced.cs
index f05c52cb..4bc6454e 100644
--- a/Penumbra/UI/ConfigWindow.SettingsTab.Advanced.cs
+++ b/Penumbra/UI/ConfigWindow.SettingsTab.Advanced.cs
@@ -3,7 +3,8 @@ using ImGuiNET;
using OtterGui;
using OtterGui.Raii;
using Penumbra.Interop;
-
+using Penumbra.Services;
+
namespace Penumbra.UI;
public partial class ConfigWindow
@@ -104,7 +105,7 @@ public partial class ConfigWindow
private static void DrawWaitForPluginsReflection()
{
- if( !Dalamud.GetDalamudConfig( Dalamud.WaitingForPluginsOption, out bool value ) )
+ if( !DalamudServices.GetDalamudConfig( DalamudServices.WaitingForPluginsOption, out bool value ) )
{
using var disabled = ImRaii.Disabled();
Checkbox( "Wait for Plugins on Startup (Disabled, can not access Dalamud Configuration)", string.Empty, false, v => { } );
@@ -112,7 +113,7 @@ public partial class ConfigWindow
else
{
Checkbox( "Wait for Plugins on Startup", "This changes a setting in the Dalamud Configuration found at /xlsettings -> General.", value,
- v => Dalamud.SetDalamudConfig( Dalamud.WaitingForPluginsOption, v, "doWaitForPluginsOnStartup" ) );
+ v => DalamudServices.SetDalamudConfig( DalamudServices.WaitingForPluginsOption, v, "doWaitForPluginsOnStartup" ) );
}
}
}
diff --git a/Penumbra/UI/ConfigWindow.SettingsTab.General.cs b/Penumbra/UI/ConfigWindow.SettingsTab.General.cs
index d8f5808d..6995d7a3 100644
--- a/Penumbra/UI/ConfigWindow.SettingsTab.General.cs
+++ b/Penumbra/UI/ConfigWindow.SettingsTab.General.cs
@@ -6,7 +6,8 @@ using ImGuiNET;
using OtterGui;
using OtterGui.Raii;
using OtterGui.Widgets;
-
+using Penumbra.Services;
+
namespace Penumbra.UI;
public partial class ConfigWindow
@@ -76,21 +77,21 @@ public partial class ConfigWindow
v =>
{
Penumbra.Config.HideUiWhenUiHidden = v;
- Dalamud.PluginInterface.UiBuilder.DisableUserUiHide = !v;
+ DalamudServices.PluginInterface.UiBuilder.DisableUserUiHide = !v;
} );
Checkbox( "Hide Config Window when in Cutscenes",
"Hide the penumbra main window when you are currently watching a cutscene.", Penumbra.Config.HideUiInCutscenes,
v =>
{
Penumbra.Config.HideUiInCutscenes = v;
- Dalamud.PluginInterface.UiBuilder.DisableCutsceneUiHide = !v;
+ DalamudServices.PluginInterface.UiBuilder.DisableCutsceneUiHide = !v;
} );
Checkbox( "Hide Config Window when in GPose",
"Hide the penumbra main window when you are currently in GPose mode.", Penumbra.Config.HideUiInGPose,
v =>
{
Penumbra.Config.HideUiInGPose = v;
- Dalamud.PluginInterface.UiBuilder.DisableGposeUiHide = !v;
+ DalamudServices.PluginInterface.UiBuilder.DisableGposeUiHide = !v;
} );
ImGui.Dummy( _window._defaultSpace );
diff --git a/Penumbra/UI/ConfigWindow.SettingsTab.cs b/Penumbra/UI/ConfigWindow.SettingsTab.cs
index 9ac59622..8300e83e 100644
--- a/Penumbra/UI/ConfigWindow.SettingsTab.cs
+++ b/Penumbra/UI/ConfigWindow.SettingsTab.cs
@@ -11,6 +11,7 @@ using ImGuiNET;
using OtterGui;
using OtterGui.Raii;
using OtterGui.Widgets;
+using Penumbra.Services;
using Penumbra.UI.Classes;
namespace Penumbra.UI;
@@ -117,7 +118,7 @@ public partial class ConfigWindow
return ( "Path is not allowed to be in ProgramFiles.", false );
}
- var dalamud = Dalamud.PluginInterface.ConfigDirectory.Parent!.Parent!;
+ var dalamud = DalamudServices.PluginInterface.ConfigDirectory.Parent!.Parent!;
if( IsSubPathOf( dalamud.FullName, newName ) )
{
return ( "Path is not allowed to be inside your Dalamud directories.", false );
@@ -128,7 +129,7 @@ public partial class ConfigWindow
return ( "Path is not allowed to be inside your Downloads folder.", false );
}
- var gameDir = Dalamud.GameData.GameData.DataPath.Parent!.Parent!.FullName;
+ var gameDir = DalamudServices.GameData.GameData.DataPath.Parent!.Parent!.FullName;
if( IsSubPathOf( gameDir, newName ) )
{
return ( "Path is not allowed to be inside your game folder.", false );
diff --git a/Penumbra/UI/ConfigWindow.cs b/Penumbra/UI/ConfigWindow.cs
index f836d7e5..7342037c 100644
--- a/Penumbra/UI/ConfigWindow.cs
+++ b/Penumbra/UI/ConfigWindow.cs
@@ -8,6 +8,7 @@ using OtterGui.Raii;
using OtterGui.Widgets;
using Penumbra.Api.Enums;
using Penumbra.Mods;
+using Penumbra.Services;
using Penumbra.UI.Classes;
using Penumbra.Util;
@@ -54,9 +55,9 @@ public sealed partial class ConfigWindow : Window, IDisposable
Flags |= ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoMove;
}
- Dalamud.PluginInterface.UiBuilder.DisableGposeUiHide = !Penumbra.Config.HideUiInGPose;
- Dalamud.PluginInterface.UiBuilder.DisableCutsceneUiHide = !Penumbra.Config.HideUiInCutscenes;
- Dalamud.PluginInterface.UiBuilder.DisableUserUiHide = !Penumbra.Config.HideUiWhenUiHidden;
+ DalamudServices.PluginInterface.UiBuilder.DisableGposeUiHide = !Penumbra.Config.HideUiInGPose;
+ DalamudServices.PluginInterface.UiBuilder.DisableCutsceneUiHide = !Penumbra.Config.HideUiInCutscenes;
+ DalamudServices.PluginInterface.UiBuilder.DisableUserUiHide = !Penumbra.Config.HideUiWhenUiHidden;
RespectCloseHotkey = true;
SizeConstraints = new WindowSizeConstraints()
{
@@ -96,14 +97,14 @@ public sealed partial class ConfigWindow : Window, IDisposable
else if( !Penumbra.ValidityChecker.IsValidSourceRepo )
{
DrawProblemWindow(
- $"You are loading a release version of Penumbra from the repository \"{Dalamud.PluginInterface.SourceRepository}\" instead of the official repository.\n"
+ $"You are loading a release version of Penumbra from the repository \"{DalamudServices.PluginInterface.SourceRepository}\" instead of the official repository.\n"
+ $"Please use the official repository at {ValidityChecker.Repository}.\n\n"
+ "If you are developing for Penumbra and see this, you should compile your version in debug mode to avoid it.", false );
}
else if( Penumbra.ValidityChecker.IsNotInstalledPenumbra )
{
DrawProblemWindow(
- $"You are loading a release version of Penumbra from \"{Dalamud.PluginInterface.AssemblyLocation.Directory?.FullName ?? "Unknown"}\" instead of the installedPlugins directory.\n\n"
+ $"You are loading a release version of Penumbra from \"{DalamudServices.PluginInterface.AssemblyLocation.Directory?.FullName ?? "Unknown"}\" instead of the installedPlugins directory.\n\n"
+ "You should not install Penumbra manually, but rather add the plugin repository under settings and then install it via the plugin installer.\n\n"
+ "If you do not know how to do this, please take a look at the readme in Penumbras github repository or join us in discord.\n"
+ "If you are developing for Penumbra and see this, you should compile your version in debug mode to avoid it.", false );
@@ -111,7 +112,7 @@ public sealed partial class ConfigWindow : Window, IDisposable
else if( Penumbra.ValidityChecker.DevPenumbraExists )
{
DrawProblemWindow(
- $"You are loading a installed version of Penumbra from \"{Dalamud.PluginInterface.AssemblyLocation.Directory?.FullName ?? "Unknown"}\", "
+ $"You are loading a installed version of Penumbra from \"{DalamudServices.PluginInterface.AssemblyLocation.Directory?.FullName ?? "Unknown"}\", "
+ "but also still have some remnants of a custom install of Penumbra in your devPlugins folder.\n\n"
+ "This can cause some issues, so please go to your \"%%appdata%%\\XIVLauncher\\devPlugins\" folder and delete the Penumbra folder from there.\n\n"
+ "If you are developing for Penumbra, try to avoid mixing versions. This warning will not appear if compiled in Debug mode.", false );
diff --git a/Penumbra/UI/LaunchButton.cs b/Penumbra/UI/LaunchButton.cs
index b25e4646..39f9cdd1 100644
--- a/Penumbra/UI/LaunchButton.cs
+++ b/Penumbra/UI/LaunchButton.cs
@@ -2,7 +2,8 @@ using System;
using System.IO;
using Dalamud.Interface;
using ImGuiScene;
-
+using Penumbra.Services;
+
namespace Penumbra.UI;
// A Launch Button used in the title screen of the game,
@@ -21,17 +22,17 @@ public class LaunchButton : IDisposable
void CreateEntry()
{
- _icon = Dalamud.PluginInterface.UiBuilder.LoadImage( Path.Combine( Dalamud.PluginInterface.AssemblyLocation.DirectoryName!,
+ _icon = DalamudServices.PluginInterface.UiBuilder.LoadImage( Path.Combine( DalamudServices.PluginInterface.AssemblyLocation.DirectoryName!,
"tsmLogo.png" ) );
if( _icon != null )
{
- _entry = Dalamud.TitleScreenMenu.AddEntry( "Manage Penumbra", _icon, OnTriggered );
+ _entry = DalamudServices.TitleScreenMenu.AddEntry( "Manage Penumbra", _icon, OnTriggered );
}
- Dalamud.PluginInterface.UiBuilder.Draw -= CreateEntry;
+ DalamudServices.PluginInterface.UiBuilder.Draw -= CreateEntry;
}
- Dalamud.PluginInterface.UiBuilder.Draw += CreateEntry;
+ DalamudServices.PluginInterface.UiBuilder.Draw += CreateEntry;
}
private void OnTriggered()
@@ -42,7 +43,7 @@ public class LaunchButton : IDisposable
_icon?.Dispose();
if( _entry != null )
{
- Dalamud.TitleScreenMenu.RemoveEntry( _entry );
+ DalamudServices.TitleScreenMenu.RemoveEntry( _entry );
}
}
}
\ No newline at end of file
diff --git a/Penumbra/Util/ChatUtil.cs b/Penumbra/Util/ChatUtil.cs
index ecef1b57..aff2e67b 100644
--- a/Penumbra/Util/ChatUtil.cs
+++ b/Penumbra/Util/ChatUtil.cs
@@ -6,7 +6,8 @@ using Dalamud.Interface.Internal.Notifications;
using Dalamud.Utility;
using Lumina.Excel.GeneratedSheets;
using OtterGui.Log;
-
+using Penumbra.Services;
+
namespace Penumbra.Util;
public static class ChatUtil
@@ -30,7 +31,7 @@ public static class ChatUtil
var payload = new SeString( payloadList );
- Dalamud.Chat.PrintChat( new XivChatEntry
+ DalamudServices.Chat.PrintChat( new XivChatEntry
{
Message = payload,
} );
@@ -47,7 +48,7 @@ public static class ChatUtil
NotificationType.Info => Logger.LogLevel.Information,
_ => Logger.LogLevel.Debug,
};
- Dalamud.PluginInterface.UiBuilder.AddNotification( content, title, type );
+ DalamudServices.PluginInterface.UiBuilder.AddNotification( content, title, type );
Penumbra.Log.Message( logLevel, title.IsNullOrEmpty() ? content : $"[{title}] {content}" );
}
}
\ No newline at end of file
diff --git a/Penumbra/Util/PerformanceType.cs b/Penumbra/Util/PerformanceType.cs
index e5941ea8..de692ad8 100644
--- a/Penumbra/Util/PerformanceType.cs
+++ b/Penumbra/Util/PerformanceType.cs
@@ -6,7 +6,6 @@ public enum StartTimeType
{
Total,
Identifier,
- GamePathParser,
Stains,
Items,
Actors,
@@ -53,7 +52,6 @@ public static class TimingExtensions
{
StartTimeType.Total => "Total Construction",
StartTimeType.Identifier => "Identification Data",
- StartTimeType.GamePathParser => "Game Path Data",
StartTimeType.Stains => "Stain Data",
StartTimeType.Items => "Item Data",
StartTimeType.Actors => "Actor Data",
diff --git a/Penumbra/packages.lock.json b/Penumbra/packages.lock.json
index d116395f..26a67367 100644
--- a/Penumbra/packages.lock.json
+++ b/Penumbra/packages.lock.json
@@ -11,6 +11,15 @@
"Unosquare.Swan.Lite": "3.0.0"
}
},
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "Direct",
+ "requested": "[7.0.0, )",
+ "resolved": "7.0.0",
+ "contentHash": "elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0"
+ }
+ },
"SharpCompress": {
"type": "Direct",
"requested": "[0.32.1, )",
@@ -27,6 +36,11 @@
"System.Text.Encoding.CodePages": "5.0.0"
}
},
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "h3j/QfmFN4S0w4C2A6X7arXij/M/OVw3uQHSOFxnND4DyAzO1F9eMX7Eti7lU/OkSthEE0WzRsfT/Dmx86jzCw=="
+ },
"Microsoft.NETCore.Platforms": {
"type": "Transitive",
"resolved": "5.0.0",
@@ -67,8 +81,8 @@
"penumbra.gamedata": {
"type": "Project",
"dependencies": {
- "Penumbra.Api": "[1.0.5, )",
- "Penumbra.String": "[1.0.1, )"
+ "Penumbra.Api": "[1.0.7, )",
+ "Penumbra.String": "[1.0.3, )"
}
},
"penumbra.string": {