@@ -16,6 +16,187 @@ indent_size = 2
1616[* .cs ]
1717indent_size = 4
1818
19+ # Organize usings
20+ dotnet_sort_system_directives_first = true
21+ dotnet_separate_import_directive_groups = false
22+
23+ # this. preferences
24+ dotnet_style_qualification_for_field = false :suggestion
25+ dotnet_style_qualification_for_property = false :suggestion
26+ dotnet_style_qualification_for_method = false :suggestion
27+ dotnet_style_qualification_for_event = false :suggestion
28+
29+ # Language keywords vs BCL types preferences
30+ dotnet_style_predefined_type_for_locals_parameters_members = true :suggestion
31+ dotnet_style_predefined_type_for_member_access = true :suggestion
32+
33+ # Parentheses preferences
34+ dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion
35+ dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion
36+ dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion
37+ dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion
38+
39+ # Modifier preferences
40+ dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
41+ dotnet_style_readonly_field = true :suggestion
42+
43+ # Expression-level preferences
44+ dotnet_style_object_initializer = true :suggestion
45+ dotnet_style_collection_initializer = true :suggestion
46+ dotnet_style_explicit_tuple_names = true :suggestion
47+ dotnet_style_prefer_inferred_tuple_names = true :suggestion
48+ dotnet_style_prefer_inferred_anonymous_type_member_names = true :suggestion
49+ dotnet_style_prefer_auto_properties = true :suggestion
50+ dotnet_style_prefer_conditional_expression_over_assignment = true :silent
51+ dotnet_style_prefer_conditional_expression_over_return = true :silent
52+ dotnet_style_prefer_compound_assignment = true :suggestion
53+
54+ # Null-checking preferences
55+ dotnet_style_coalesce_expression = true :suggestion
56+ dotnet_style_null_propagation = true :suggestion
57+ dotnet_style_prefer_is_null_check_over_reference_equality_method = true :suggestion
58+
59+ # Parameter preferences
60+ dotnet_code_quality_unused_parameters = all:suggestion
61+
62+ # C# Code Style Rules
63+
64+ # var preferences
65+ csharp_style_var_for_built_in_types = true :suggestion
66+ csharp_style_var_when_type_is_apparent = true :suggestion
67+ csharp_style_var_elsewhere = true :suggestion
68+
69+ # Expression-bodied members
70+ csharp_style_expression_bodied_methods = when_on_single_line:suggestion
71+ csharp_style_expression_bodied_constructors = false :suggestion
72+ csharp_style_expression_bodied_operators = when_on_single_line:suggestion
73+ csharp_style_expression_bodied_properties = true :suggestion
74+ csharp_style_expression_bodied_indexers = true :suggestion
75+ csharp_style_expression_bodied_accessors = true :suggestion
76+ csharp_style_expression_bodied_lambdas = true :suggestion
77+ csharp_style_expression_bodied_local_functions = when_on_single_line:suggestion
78+
79+ # Pattern matching preferences
80+ csharp_style_pattern_matching_over_is_with_cast_check = true :suggestion
81+ csharp_style_pattern_matching_over_as_with_null_check = true :suggestion
82+ csharp_style_prefer_switch_expression = true :suggestion
83+ csharp_style_prefer_pattern_matching = true :suggestion
84+ csharp_style_prefer_not_pattern = true :suggestion
85+
86+ # Null-checking preferences
87+ csharp_style_throw_expression = true :suggestion
88+ csharp_style_conditional_delegate_call = true :suggestion
89+
90+ # Modifier preferences
91+ csharp_prefer_static_local_function = true :suggestion
92+ csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
93+
94+ # Code-block preferences
95+ csharp_prefer_braces = true :suggestion
96+ csharp_prefer_simple_using_statement = true :suggestion
97+
98+ # Expression-level preferences
99+ csharp_prefer_simple_default_expression = true :suggestion
100+ csharp_style_pattern_local_over_anonymous_function = true :suggestion
101+ csharp_style_inlined_variable_declaration = true :suggestion
102+ csharp_style_deconstructed_variable_declaration = true :suggestion
103+ csharp_style_prefer_index_operator = true :suggestion
104+ csharp_style_prefer_range_operator = true :suggestion
105+ csharp_style_implicit_object_creation_when_type_is_apparent = true :suggestion
106+
107+ # 'using' directive preferences
108+ csharp_using_directive_placement = outside_namespace:suggestion
109+
110+ # C# Formatting Rules
111+
112+ # New line preferences
113+ csharp_new_line_before_open_brace = all
114+ csharp_new_line_before_else = true
115+ csharp_new_line_before_catch = true
116+ csharp_new_line_before_finally = true
117+ csharp_new_line_before_members_in_object_initializers = true
118+ csharp_new_line_before_members_in_anonymous_types = true
119+ csharp_new_line_between_query_expression_clauses = true
120+
121+ # Indentation preferences
122+ csharp_indent_case_contents = true
123+ csharp_indent_switch_labels = true
124+ csharp_indent_labels = one_less_than_current
125+ csharp_indent_block_contents = true
126+ csharp_indent_braces = false
127+ csharp_indent_case_contents_when_block = false
128+
129+ # Space preferences
130+ csharp_space_after_cast = false
131+ csharp_space_after_keywords_in_control_flow_statements = true
132+ csharp_space_between_parentheses = false
133+ csharp_space_before_colon_in_inheritance_clause = true
134+ csharp_space_after_colon_in_inheritance_clause = true
135+ csharp_space_around_binary_operators = before_and_after
136+ csharp_space_between_method_declaration_parameter_list_parentheses = false
137+ csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
138+ csharp_space_between_method_declaration_name_and_open_parenthesis = false
139+ csharp_space_between_method_call_parameter_list_parentheses = false
140+ csharp_space_between_method_call_empty_parameter_list_parentheses = false
141+ csharp_space_between_method_call_name_and_opening_parenthesis = false
142+ csharp_space_after_comma = true
143+ csharp_space_before_comma = false
144+ csharp_space_after_dot = false
145+ csharp_space_before_dot = false
146+ csharp_space_after_semicolon_in_for_statement = true
147+ csharp_space_before_semicolon_in_for_statement = false
148+ csharp_space_around_declaration_statements = false
149+ csharp_space_before_open_square_brackets = false
150+ csharp_space_between_empty_square_brackets = false
151+ csharp_space_between_square_brackets = false
152+
153+ # Wrapping preferences
154+ csharp_preserve_single_line_statements = false
155+ csharp_preserve_single_line_blocks = true
156+
157+ # Naming conventions
158+
159+ # Constant fields are PascalCase
160+ dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
161+ dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
162+ dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
163+ dotnet_naming_symbols.constant_fields.applicable_kinds = field
164+ dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
165+ dotnet_naming_symbols.constant_fields.required_modifiers = const
166+ dotnet_naming_style.pascal_case_style.capitalization = pascal_case
167+
168+ # Private fields are _camelCase
169+ dotnet_naming_rule.private_fields_should_be_camel_case_with_underscore.severity = suggestion
170+ dotnet_naming_rule.private_fields_should_be_camel_case_with_underscore.symbols = private_fields
171+ dotnet_naming_rule.private_fields_should_be_camel_case_with_underscore.style = camel_case_underscore_style
172+ dotnet_naming_symbols.private_fields.applicable_kinds = field
173+ dotnet_naming_symbols.private_fields.applicable_accessibilities = private
174+ dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case
175+ dotnet_naming_style.camel_case_underscore_style.required_prefix = _
176+
177+ # Interfaces are IPascalCase
178+ dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
179+ dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
180+ dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
181+ dotnet_naming_symbols.interface.applicable_kinds = interface
182+ dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
183+ dotnet_naming_style.begins_with_i.required_prefix = I
184+ dotnet_naming_style.begins_with_i.capitalization = pascal_case
185+
186+ # Types are PascalCase
187+ dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
188+ dotnet_naming_rule.types_should_be_pascal_case.symbols = types
189+ dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case_style
190+ dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum, delegate
191+ dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
192+
193+ # Non-field members are PascalCase
194+ dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
195+ dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
196+ dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case_style
197+ dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
198+ dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
199+
19200# JSON files
20201[* .json ]
21202indent_size = 2
0 commit comments