diff --git a/.editorconfig b/.editorconfig
index 5ced2cd30..867ace8a7 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -23,150 +23,41 @@ trim_trailing_whitespace = false
[*.cs]
-#### Organize usings ####
+#### Bulk severity: elevate all Style analyzers to suggestion ####
+dotnet_analyzer_diagnostic.category-Style.severity = suggestion
+
+#### Organize usings (non-default) ####
dotnet_sort_system_directives_first = true
-dotnet_separate_import_directive_groups = false
-
-#### this. and Me. preferences ####
-dotnet_style_qualification_for_field = false:warning
-dotnet_style_qualification_for_property = false:warning
-dotnet_style_qualification_for_method = false:warning
-dotnet_style_qualification_for_event = false:warning
-
-#### Language keywords vs BCL types preferences ####
-dotnet_style_predefined_type_for_locals_parameters_members = true:warning
-dotnet_style_predefined_type_for_member_access = true:warning
-
-#### Parentheses preferences ####
-dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
-
-#### Modifier preferences ####
-dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning
-
-#### Expression-level preferences ####
-dotnet_style_object_initializer = true:suggestion
-dotnet_style_collection_initializer = true:suggestion
-dotnet_style_explicit_tuple_names = true:warning
-dotnet_style_prefer_inferred_tuple_names = true:suggestion
-dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
-dotnet_style_prefer_auto_properties = true:suggestion
-dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion
-dotnet_style_prefer_conditional_expression_over_return = true:suggestion
-dotnet_style_prefer_compound_assignment = true:suggestion
-dotnet_style_prefer_simplified_interpolation = true:suggestion
-dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
-
-#### Null-checking preferences ####
-dotnet_style_coalesce_expression = true:suggestion
-dotnet_style_null_propagation = true:suggestion
-dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning
#### File header ####
file_header_template = Copyright (c) GraphZen LLC. All rights reserved.\nLicensed under the GraphZen Community License. See the LICENSE file in the project root for license information.
-###############################
-# C# Code Style Rules #
-###############################
+#### var preferences (non-default: Roslyn defaults to false) ####
+csharp_style_var_for_built_in_types = true
+csharp_style_var_when_type_is_apparent = true
+csharp_style_var_elsewhere = true
-#### var preferences ####
-csharp_style_var_for_built_in_types = true:suggestion
-csharp_style_var_when_type_is_apparent = true:suggestion
-csharp_style_var_elsewhere = true:suggestion
-
-#### Expression-bodied members ####
-csharp_style_expression_bodied_methods = true:suggestion
-csharp_style_expression_bodied_constructors = true:suggestion
-csharp_style_expression_bodied_operators = true:suggestion
-csharp_style_expression_bodied_properties = true:suggestion
-csharp_style_expression_bodied_indexers = true:suggestion
-csharp_style_expression_bodied_accessors = true:suggestion
-csharp_style_expression_bodied_lambdas = true:silent
-csharp_style_expression_bodied_local_functions = true:suggestion
-
-#### Pattern matching preferences ####
-csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
-csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
-csharp_style_prefer_switch_expression = true:suggestion
-csharp_style_prefer_pattern_matching = true:suggestion
-csharp_style_prefer_not_pattern = true:suggestion
-
-#### Null-checking preferences ####
-csharp_style_throw_expression = true:suggestion
-csharp_style_conditional_delegate_call = true:suggestion
-
-#### Modifier preferences ####
-csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:warning
-
-#### Code-block preferences ####
-csharp_prefer_braces = true:warning
-csharp_prefer_simple_using_statement = true:suggestion
-csharp_style_namespace_declarations = file_scoped:warning
-
-#### Expression-level preferences ####
-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_prefer_utf8_string_literals = true:suggestion
-csharp_style_deconstructed_variable_declaration = true:suggestion
-csharp_style_inlined_variable_declaration = true:suggestion
-csharp_style_unused_value_assignment_preference = discard_variable:suggestion
-csharp_style_unused_value_expression_statement_preference = discard_variable:silent
-csharp_using_directive_placement = outside_namespace:warning
+#### Expression-bodied members (non-default: Roslyn defaults to false) ####
+csharp_style_expression_bodied_methods = true
+csharp_style_expression_bodied_constructors = true
+csharp_style_expression_bodied_operators = true
+csharp_style_expression_bodied_local_functions = true
-###############################
-# C# Formatting Rules #
-###############################
+#### Namespace declarations (non-default: Roslyn defaults to block_scoped) ####
+csharp_style_namespace_declarations = file_scoped
-#### New line preferences ####
-csharp_new_line_before_open_brace = all
-csharp_new_line_before_else = true
-csharp_new_line_before_catch = true
-csharp_new_line_before_finally = true
-csharp_new_line_before_members_in_object_initializers = true
-csharp_new_line_before_members_in_anonymous_types = true
-csharp_new_line_between_query_expression_clauses = true
-
-#### Indentation preferences ####
-csharp_indent_case_contents = true
-csharp_indent_switch_labels = true
-csharp_indent_labels = one_less_than_current
-csharp_indent_block_contents = true
-csharp_indent_braces = false
-csharp_indent_case_contents_when_block = true
-
-#### Space preferences ####
-csharp_space_after_cast = false
-csharp_space_after_keywords_in_control_flow_statements = true
-csharp_space_between_parentheses = false
-csharp_space_before_colon_in_inheritance_clause = true
-csharp_space_after_colon_in_inheritance_clause = true
-csharp_space_around_binary_operators = before_and_after
-csharp_space_between_method_declaration_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_call_parameter_list_parentheses = false
-csharp_space_between_method_call_empty_parameter_list_parentheses = false
-csharp_space_between_method_call_name_and_opening_parenthesis = false
-csharp_space_after_comma = true
-csharp_space_before_comma = false
-csharp_space_after_dot = false
-csharp_space_before_dot = false
-csharp_space_after_semicolon_in_for_statement = true
-csharp_space_before_semicolon_in_for_statement = false
-csharp_space_around_declaration_statements = false
-csharp_space_before_open_square_brackets = false
-csharp_space_between_empty_square_brackets = false
-csharp_space_between_square_brackets = false
-
-#### Wrapping preferences ####
+#### Wrapping preferences (non-default: Roslyn defaults to true) ####
csharp_preserve_single_line_statements = false
-csharp_preserve_single_line_blocks = true
+
+#### Modern C# rules (C# 10-13) ####
+csharp_style_prefer_extended_property_pattern = true
+csharp_style_prefer_readonly_struct = true
+csharp_style_prefer_readonly_struct_member = true
+csharp_style_prefer_method_group_conversion = true
+csharp_style_prefer_null_check_over_type_check = true
+csharp_style_prefer_primary_constructors = true
+csharp_style_prefer_top_level_statements = true
+dotnet_style_prefer_collection_expression = when_types_loosely_match
###############################
# Naming Conventions #
@@ -283,24 +174,28 @@ dotnet_naming_rule.namespaces_must_be_pascal_case.symbols = namespace_symbols
dotnet_naming_rule.namespaces_must_be_pascal_case.style = pascal_case_style
###############################
-# Analyzer Severities #
+# Analyzer Severity Overrides #
###############################
-# IDE0005: Remove unnecessary using directives
+# Rules elevated to warning (above bulk suggestion)
+dotnet_diagnostic.IDE0003.severity = warning
dotnet_diagnostic.IDE0005.severity = warning
-
-# IDE0011: Add braces
+dotnet_diagnostic.IDE0009.severity = warning
dotnet_diagnostic.IDE0011.severity = warning
-
-# IDE0160/IDE0161: Namespace declaration preferences
-dotnet_diagnostic.IDE0161.severity = warning
-
-# IDE0065: Using directive placement
+dotnet_diagnostic.IDE0033.severity = warning
+dotnet_diagnostic.IDE0036.severity = warning
+dotnet_diagnostic.IDE0040.severity = warning
+dotnet_diagnostic.IDE0041.severity = warning
+dotnet_diagnostic.IDE0049.severity = warning
dotnet_diagnostic.IDE0065.severity = warning
+dotnet_diagnostic.IDE0161.severity = warning
-# IDE0003/IDE0009: this. and Me. preferences
-dotnet_diagnostic.IDE0003.severity = warning
-dotnet_diagnostic.IDE0009.severity = warning
+# Rules lowered to silent (below bulk suggestion)
+dotnet_diagnostic.IDE0047.severity = silent
+dotnet_diagnostic.IDE0048.severity = silent
+dotnet_diagnostic.IDE0053.severity = silent
+dotnet_diagnostic.IDE0058.severity = silent
+dotnet_diagnostic.IDE0210.severity = silent
###############################
# ReSharper Properties #
@@ -317,6 +212,10 @@ resharper_braces_for_while = required
# Abbreviation overrides (allow AST, QL as valid naming)
resharper_abbreviations = AST QL
+# Formatting alignment with dotnet format (Phase 3: resolve tool conflicts)
+resharper_place_field_attribute_on_same_line = if_owner_is_single_line
+resharper_wrap_object_and_collection_initializer_style = wrap_if_long
+
###############################
# Test Projects #
###############################
diff --git a/GraphZen.slnx.DotSettings b/GraphZen.slnx.DotSettings
index 961182d99..e85439363 100644
--- a/GraphZen.slnx.DotSettings
+++ b/GraphZen.slnx.DotSettings
@@ -24,33 +24,16 @@
True
- SUGGESTION
- SUGGESTION
- SUGGESTION
- WARNING
- WARNING
- SUGGESTION
SUGGESTION
- SUGGESTION
- SUGGESTION
- SUGGESTION
- SUGGESTION
- SUGGESTION
- SUGGESTION
SUGGESTION
SUGGESTION
- SUGGESTION
- SUGGESTION
- SUGGESTION
<?xml version="1.0" encoding="utf-16"?><Profile name="GraphZen: Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CppAddOverrideSpecifier>True</CppAddOverrideSpecifier><CppAddTypenameTemplateKeywords>True</CppAddTypenameTemplateKeywords><CppReplaceImportDirective>True</CppReplaceImportDirective><CppRemoveElseKeyword>True</CppRemoveElseKeyword><CppShortenQualifiedName>True</CppShortenQualifiedName><CppDeleteRedundantSpecifier>True</CppDeleteRedundantSpecifier><CppRemoveStatement>True</CppRemoveStatement><CppDeleteRedundantTypenameTemplateKeywords>True</CppDeleteRedundantTypenameTemplateKeywords><CppCStyleToStaticCastDescriptor>True</CppCStyleToStaticCastDescriptor><CppReplaceExpressionWithBooleanConst>True</CppReplaceExpressionWithBooleanConst><CppMakeIfConstexpr>True</CppMakeIfConstexpr><CppMakePostfixOperatorPrefix>True</CppMakePostfixOperatorPrefix><CppChangeSmartPointerToMakeFunction>True</CppChangeSmartPointerToMakeFunction><CppReplaceThrowWithRethrowFix>True</CppReplaceThrowWithRethrowFix><CppReplaceExpressionWithNullptr>True</CppReplaceExpressionWithNullptr><CppSortMemberInitializers>True</CppSortMemberInitializers><CppClangTidyCleanupDescriptor /><CppReformatCode>True</CppReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" /><RemoveCodeRedundanciesVB>True</RemoveCodeRedundanciesVB><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><VBOptimizeImports>True</VBOptimizeImports><VBShortenReferences>True</VBShortenReferences><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><VBReformatCode>True</VBReformatCode><VBFormatDocComments>True</VBFormatDocComments><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSUpdateFileHeader>True</CSUpdateFileHeader><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags></Profile>
GraphZen: Full Cleanup
-
+
GraphZen.Infrastructure
- JetBrains.Annotations
- System.Diagnostics.CodeAnalysis
Copyright (c) GraphZen LLC. All rights reserved.
@@ -64,4 +47,4 @@ Licensed under the GraphZen Community License. See the LICENSE file in the proje
True
True
True
- True
\ No newline at end of file
+ True