@@ -78,3 +78,291 @@ resharper_web_config_wrong_module_highlighting = warning
7878indent_style = space
7979indent_size = 4
8080tab_width = 4
81+
82+ # ### C# Coding Conventions ####
83+ [* .cs ]
84+
85+ # var preferences
86+ csharp_style_var_elsewhere = false :silent
87+ csharp_style_var_for_built_in_types = false :silent
88+ csharp_style_var_when_type_is_apparent = false :silent
89+
90+ # Expression-bodied members
91+ csharp_style_expression_bodied_accessors = true :silent
92+ csharp_style_expression_bodied_constructors = false :silent
93+ csharp_style_expression_bodied_indexers = true :silent
94+ csharp_style_expression_bodied_lambdas = true :suggestion
95+ csharp_style_expression_bodied_local_functions = false :silent
96+ csharp_style_expression_bodied_methods = false :silent
97+ csharp_style_expression_bodied_operators = false :silent
98+ csharp_style_expression_bodied_properties = true :silent
99+
100+ # Pattern matching preferences
101+ csharp_style_pattern_matching_over_as_with_null_check = true :suggestion
102+ csharp_style_pattern_matching_over_is_with_cast_check = true :suggestion
103+ csharp_style_prefer_not_pattern = true :suggestion
104+ csharp_style_prefer_pattern_matching = true :silent
105+ csharp_style_prefer_switch_expression = true :suggestion
106+
107+ # Null-checking preferences
108+ csharp_style_conditional_delegate_call = true :suggestion
109+
110+ # Modifier preferences
111+ csharp_prefer_static_local_function = true :warning
112+ csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
113+
114+ # Code-block preferences
115+ csharp_prefer_braces = true :silent
116+ csharp_prefer_simple_using_statement = true :suggestion
117+
118+ # Expression-level preferences
119+ csharp_prefer_simple_default_expression = true :suggestion
120+ csharp_style_deconstructed_variable_declaration = true :suggestion
121+ csharp_style_inlined_variable_declaration = true :suggestion
122+ csharp_style_pattern_local_over_anonymous_function = true :suggestion
123+ csharp_style_prefer_index_operator = true :suggestion
124+ csharp_style_prefer_range_operator = true :suggestion
125+ csharp_style_throw_expression = true :suggestion
126+ csharp_style_unused_value_assignment_preference = discard_variable:suggestion
127+ csharp_style_unused_value_expression_statement_preference = discard_variable:silent
128+
129+ # 'using' directive preferences
130+ csharp_using_directive_placement = outside_namespace:silent
131+
132+ # ### C# Formatting Rules ####
133+
134+ # New line preferences
135+ csharp_new_line_before_catch = true
136+ csharp_new_line_before_else = true
137+ csharp_new_line_before_finally = true
138+ csharp_new_line_before_members_in_anonymous_types = true
139+ csharp_new_line_before_members_in_object_initializers = true
140+ csharp_new_line_before_open_brace = all
141+ csharp_new_line_between_query_expression_clauses = true
142+
143+ # Indentation preferences
144+ csharp_indent_block_contents = true
145+ csharp_indent_braces = false
146+ csharp_indent_case_contents = true
147+ csharp_indent_case_contents_when_block = true
148+ csharp_indent_labels = one_less_than_current
149+ csharp_indent_switch_labels = true
150+
151+ # Space preferences
152+ csharp_space_after_cast = false
153+ csharp_space_after_colon_in_inheritance_clause = true
154+ csharp_space_after_comma = true
155+ csharp_space_after_dot = false
156+ csharp_space_after_keywords_in_control_flow_statements = true
157+ csharp_space_after_semicolon_in_for_statement = true
158+ csharp_space_around_binary_operators = before_and_after
159+ csharp_space_around_declaration_statements = false
160+ csharp_space_before_colon_in_inheritance_clause = true
161+ csharp_space_before_comma = false
162+ csharp_space_before_dot = false
163+ csharp_space_before_open_square_brackets = false
164+ csharp_space_before_semicolon_in_for_statement = false
165+ csharp_space_between_empty_square_brackets = false
166+ csharp_space_between_method_call_empty_parameter_list_parentheses = false
167+ csharp_space_between_method_call_name_and_opening_parenthesis = false
168+ csharp_space_between_method_call_parameter_list_parentheses = false
169+ csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
170+ csharp_space_between_method_declaration_name_and_open_parenthesis = false
171+ csharp_space_between_method_declaration_parameter_list_parentheses = false
172+ csharp_space_between_parentheses = false
173+ csharp_space_between_square_brackets = false
174+
175+ # Wrapping preferences
176+ csharp_preserve_single_line_blocks = true
177+ csharp_preserve_single_line_statements = true
178+
179+ # ### Naming styles ####
180+ [* .{cs,vb} ]
181+
182+ # Naming rules
183+
184+ dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.severity = suggestion
185+ dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.symbols = types_and_namespaces
186+ dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.style = pascalcase
187+
188+ dotnet_naming_rule.interfaces_should_be_ipascalcase.severity = suggestion
189+ dotnet_naming_rule.interfaces_should_be_ipascalcase.symbols = interfaces
190+ dotnet_naming_rule.interfaces_should_be_ipascalcase.style = ipascalcase
191+
192+ dotnet_naming_rule.type_parameters_should_be_tpascalcase.severity = suggestion
193+ dotnet_naming_rule.type_parameters_should_be_tpascalcase.symbols = type_parameters
194+ dotnet_naming_rule.type_parameters_should_be_tpascalcase.style = tpascalcase
195+
196+ dotnet_naming_rule.methods_should_be_pascalcase.severity = suggestion
197+ dotnet_naming_rule.methods_should_be_pascalcase.symbols = methods
198+ dotnet_naming_rule.methods_should_be_pascalcase.style = pascalcase
199+
200+ dotnet_naming_rule.properties_should_be_pascalcase.severity = suggestion
201+ dotnet_naming_rule.properties_should_be_pascalcase.symbols = properties
202+ dotnet_naming_rule.properties_should_be_pascalcase.style = pascalcase
203+
204+ dotnet_naming_rule.events_should_be_pascalcase.severity = suggestion
205+ dotnet_naming_rule.events_should_be_pascalcase.symbols = events
206+ dotnet_naming_rule.events_should_be_pascalcase.style = pascalcase
207+
208+ dotnet_naming_rule.local_variables_should_be_camelcase.severity = suggestion
209+ dotnet_naming_rule.local_variables_should_be_camelcase.symbols = local_variables
210+ dotnet_naming_rule.local_variables_should_be_camelcase.style = camelcase
211+
212+ dotnet_naming_rule.local_constants_should_be_camelcase.severity = suggestion
213+ dotnet_naming_rule.local_constants_should_be_camelcase.symbols = local_constants
214+ dotnet_naming_rule.local_constants_should_be_camelcase.style = camelcase
215+
216+ dotnet_naming_rule.parameters_should_be_camelcase.severity = suggestion
217+ dotnet_naming_rule.parameters_should_be_camelcase.symbols = parameters
218+ dotnet_naming_rule.parameters_should_be_camelcase.style = camelcase
219+
220+ dotnet_naming_rule.public_fields_should_be_pascalcase.severity = suggestion
221+ dotnet_naming_rule.public_fields_should_be_pascalcase.symbols = public_fields
222+ dotnet_naming_rule.public_fields_should_be_pascalcase.style = pascalcase
223+
224+ dotnet_naming_rule.private_fields_should_be__camelcase.severity = suggestion
225+ dotnet_naming_rule.private_fields_should_be__camelcase.symbols = private_fields
226+ dotnet_naming_rule.private_fields_should_be__camelcase.style = _camelcase
227+
228+ dotnet_naming_rule.private_static_fields_should_be_s_camelcase.severity = suggestion
229+ dotnet_naming_rule.private_static_fields_should_be_s_camelcase.symbols = private_static_fields
230+ dotnet_naming_rule.private_static_fields_should_be_s_camelcase.style = s_camelcase
231+
232+ dotnet_naming_rule.public_constant_fields_should_be_pascalcase.severity = suggestion
233+ dotnet_naming_rule.public_constant_fields_should_be_pascalcase.symbols = public_constant_fields
234+ dotnet_naming_rule.public_constant_fields_should_be_pascalcase.style = pascalcase
235+
236+ dotnet_naming_rule.private_constant_fields_should_be_pascalcase.severity = suggestion
237+ dotnet_naming_rule.private_constant_fields_should_be_pascalcase.symbols = private_constant_fields
238+ dotnet_naming_rule.private_constant_fields_should_be_pascalcase.style = pascalcase
239+
240+ dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.severity = suggestion
241+ dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.symbols = public_static_readonly_fields
242+ dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.style = pascalcase
243+
244+ dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.severity = suggestion
245+ dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.symbols = private_static_readonly_fields
246+ dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.style = pascalcase
247+
248+ dotnet_naming_rule.enums_should_be_pascalcase.severity = suggestion
249+ dotnet_naming_rule.enums_should_be_pascalcase.symbols = enums
250+ dotnet_naming_rule.enums_should_be_pascalcase.style = pascalcase
251+
252+ dotnet_naming_rule.local_functions_should_be_pascalcase.severity = suggestion
253+ dotnet_naming_rule.local_functions_should_be_pascalcase.symbols = local_functions
254+ dotnet_naming_rule.local_functions_should_be_pascalcase.style = pascalcase
255+
256+ dotnet_naming_rule.non_field_members_should_be_pascalcase.severity = suggestion
257+ dotnet_naming_rule.non_field_members_should_be_pascalcase.symbols = non_field_members
258+ dotnet_naming_rule.non_field_members_should_be_pascalcase.style = pascalcase
259+
260+ # Symbol specifications
261+
262+ dotnet_naming_symbols.interfaces.applicable_kinds = interface
263+ dotnet_naming_symbols.interfaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
264+ dotnet_naming_symbols.interfaces.required_modifiers =
265+
266+ dotnet_naming_symbols.enums.applicable_kinds = enum
267+ dotnet_naming_symbols.enums.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
268+ dotnet_naming_symbols.enums.required_modifiers =
269+
270+ dotnet_naming_symbols.events.applicable_kinds = event
271+ dotnet_naming_symbols.events.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
272+ dotnet_naming_symbols.events.required_modifiers =
273+
274+ dotnet_naming_symbols.methods.applicable_kinds = method
275+ dotnet_naming_symbols.methods.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
276+ dotnet_naming_symbols.methods.required_modifiers =
277+
278+ dotnet_naming_symbols.properties.applicable_kinds = property
279+ dotnet_naming_symbols.properties.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
280+ dotnet_naming_symbols.properties.required_modifiers =
281+
282+ dotnet_naming_symbols.public_fields.applicable_kinds = field
283+ dotnet_naming_symbols.public_fields.applicable_accessibilities = public, internal
284+ dotnet_naming_symbols.public_fields.required_modifiers =
285+
286+ dotnet_naming_symbols.private_fields.applicable_kinds = field
287+ dotnet_naming_symbols.private_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
288+ dotnet_naming_symbols.private_fields.required_modifiers =
289+
290+ dotnet_naming_symbols.private_static_fields.applicable_kinds = field
291+ dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
292+ dotnet_naming_symbols.private_static_fields.required_modifiers = static
293+
294+ dotnet_naming_symbols.types_and_namespaces.applicable_kinds = namespace, class, struct, interface, enum
295+ dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
296+ dotnet_naming_symbols.types_and_namespaces.required_modifiers =
297+
298+ dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
299+ dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
300+ dotnet_naming_symbols.non_field_members.required_modifiers =
301+
302+ dotnet_naming_symbols.type_parameters.applicable_kinds = namespace
303+ dotnet_naming_symbols.type_parameters.applicable_accessibilities = *
304+ dotnet_naming_symbols.type_parameters.required_modifiers =
305+
306+ dotnet_naming_symbols.private_constant_fields.applicable_kinds = field
307+ dotnet_naming_symbols.private_constant_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
308+ dotnet_naming_symbols.private_constant_fields.required_modifiers = const
309+
310+ dotnet_naming_symbols.local_variables.applicable_kinds = local
311+ dotnet_naming_symbols.local_variables.applicable_accessibilities = local
312+ dotnet_naming_symbols.local_variables.required_modifiers =
313+
314+ dotnet_naming_symbols.local_constants.applicable_kinds = local
315+ dotnet_naming_symbols.local_constants.applicable_accessibilities = local
316+ dotnet_naming_symbols.local_constants.required_modifiers = const
317+
318+ dotnet_naming_symbols.parameters.applicable_kinds = parameter
319+ dotnet_naming_symbols.parameters.applicable_accessibilities = *
320+ dotnet_naming_symbols.parameters.required_modifiers =
321+
322+ dotnet_naming_symbols.public_constant_fields.applicable_kinds = field
323+ dotnet_naming_symbols.public_constant_fields.applicable_accessibilities = public, internal
324+ dotnet_naming_symbols.public_constant_fields.required_modifiers = const
325+
326+ dotnet_naming_symbols.public_static_readonly_fields.applicable_kinds = field
327+ dotnet_naming_symbols.public_static_readonly_fields.applicable_accessibilities = public, internal
328+ dotnet_naming_symbols.public_static_readonly_fields.required_modifiers = readonly, static
329+
330+ dotnet_naming_symbols.private_static_readonly_fields.applicable_kinds = field
331+ dotnet_naming_symbols.private_static_readonly_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
332+ dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = readonly, static
333+
334+ dotnet_naming_symbols.local_functions.applicable_kinds = local_function
335+ dotnet_naming_symbols.local_functions.applicable_accessibilities = *
336+ dotnet_naming_symbols.local_functions.required_modifiers =
337+
338+ # Naming styles
339+
340+ dotnet_naming_style.pascalcase.required_prefix =
341+ dotnet_naming_style.pascalcase.required_suffix =
342+ dotnet_naming_style.pascalcase.word_separator =
343+ dotnet_naming_style.pascalcase.capitalization = pascal_case
344+
345+ dotnet_naming_style.ipascalcase.required_prefix = I
346+ dotnet_naming_style.ipascalcase.required_suffix =
347+ dotnet_naming_style.ipascalcase.word_separator =
348+ dotnet_naming_style.ipascalcase.capitalization = pascal_case
349+
350+ dotnet_naming_style.tpascalcase.required_prefix = T
351+ dotnet_naming_style.tpascalcase.required_suffix =
352+ dotnet_naming_style.tpascalcase.word_separator =
353+ dotnet_naming_style.tpascalcase.capitalization = pascal_case
354+
355+ dotnet_naming_style._camelcase.required_prefix = _
356+ dotnet_naming_style._camelcase.required_suffix =
357+ dotnet_naming_style._camelcase.word_separator =
358+ dotnet_naming_style._camelcase.capitalization = camel_case
359+
360+ dotnet_naming_style.camelcase.required_prefix =
361+ dotnet_naming_style.camelcase.required_suffix =
362+ dotnet_naming_style.camelcase.word_separator =
363+ dotnet_naming_style.camelcase.capitalization = camel_case
364+
365+ dotnet_naming_style.s_camelcase.required_prefix = s_
366+ dotnet_naming_style.s_camelcase.required_suffix =
367+ dotnet_naming_style.s_camelcase.word_separator =
368+ dotnet_naming_style.s_camelcase.capitalization = camel_case
0 commit comments