11# Taken as is from https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference?view=vs-2019
2+ # Naming rules are removed.
23# Customizations are added at the bottom of the file.
34
45# Remove the line below if you want to inherit .editorconfig settings from higher directories
@@ -15,14 +16,14 @@ indent_style = space
1516tab_width = 4
1617
1718# New line preferences
18- end_of_line = crlf
19- insert_final_newline = false
19+ end_of_line = {cr|lf| crlf} # we should use what git uses
20+ insert_final_newline = true
2021
2122# ### .NET Coding Conventions ####
2223
23- # Organize usings
24- dotnet_separate_import_directive_groups = false
25- dotnet_sort_system_directives_first = false
24+ # Organize usings - not specified
25+ # dotnet_separate_import_directive_groups = false
26+ # dotnet_sort_system_directives_first = false
2627
2728# this. and Me. preferences
2829dotnet_style_qualification_for_event = false :silent
@@ -158,56 +159,115 @@ csharp_space_between_square_brackets = false
158159csharp_preserve_single_line_blocks = true
159160csharp_preserve_single_line_statements = true
160161
161- # ### Naming styles ####
162162
163- # Naming rules
163+ # ### Naming rules ####
164+
165+ dotnet_naming_style.camel_case_style.capitalization = camel_case
166+
167+ # Private fields are camelCase
168+ dotnet_naming_rule.private_fields_should_be_pascal_case.severity = suggestion
169+ dotnet_naming_rule.private_fields_should_be_pascal_case.symbols = private_fields
170+ dotnet_naming_rule.private_fields_should_be_pascal_case.style = camel_case_style
171+
172+ dotnet_naming_symbols.private_fields.applicable_kinds = field
173+ dotnet_naming_symbols.private_fields.applicable_accessibilities = private
174+
175+ # Locals and parameters are camelCase
176+ dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion
177+ dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters
178+ dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style
179+
180+ dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local
181+
182+ # Interfaces are PascalCase, prefixed with I
164183
165184dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
166185dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
167186dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
168187
169- dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
170- dotnet_naming_rule.types_should_be_pascal_case.symbols = types
171- dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
188+ dotnet_naming_symbols.interface.applicable_kinds = interface
189+ dotnet_naming_symbols.interface.applicable_accessibilities = *
190+
191+ dotnet_naming_style.begins_with_i.required_prefix = I
192+ dotnet_naming_style.begins_with_i.capitalization = pascal_case
193+
194+ # Type parameters are PascalCase, prefixed with T
172195
173- dotnet_naming_rule.non_field_members_should_be_pascal_case .severity = suggestion
174- dotnet_naming_rule.non_field_members_should_be_pascal_case .symbols = non_field_members
175- dotnet_naming_rule.non_field_members_should_be_pascal_case .style = pascal_case
196+ dotnet_naming_rule.interface_should_be_begins_with_i .severity = suggestion
197+ dotnet_naming_rule.interface_should_be_begins_with_i .symbols = type_parameter
198+ dotnet_naming_rule.interface_should_be_begins_with_i .style = begins_with_t
176199
177- # Symbol specifications
200+ dotnet_naming_symbols.type_parameter.applicable_kinds = type_parameter
201+ dotnet_naming_symbols.type_parameter.applicable_accessibilities = *
178202
179- dotnet_naming_symbols.interface.applicable_kinds = interface
180- dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
181- dotnet_naming_symbols.interface.required_modifiers =
203+ dotnet_naming_style.begins_with_t.required_prefix = T
204+ dotnet_naming_style.begins_with_t.capitalization = pascal_case
182205
183- dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
184- dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
185- dotnet_naming_symbols.types.required_modifiers =
206+ # By default, name items with PascalCase
207+ dotnet_naming_rule.members_should_be_pascal_case.severity = suggestion
208+ dotnet_naming_rule.members_should_be_pascal_case.symbols = all_members
209+ dotnet_naming_rule.members_should_be_pascal_case.style = pascal_case_style
186210
187- dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
188- dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
189- dotnet_naming_symbols.non_field_members.required_modifiers =
211+ dotnet_naming_symbols.all_members.applicable_kinds = *
190212
191- # Naming styles
213+ dotnet_naming_style.pascal_case_style.capitalization = pascal_case
192214
193- dotnet_naming_style.pascal_case.required_prefix =
194- dotnet_naming_style.pascal_case.required_suffix =
195- dotnet_naming_style.pascal_case.word_separator =
196- dotnet_naming_style.pascal_case.capitalization = pascal_case
215+ # ### End naming rules ####
197216
198- dotnet_naming_style.begins_with_i.required_prefix = I
199- dotnet_naming_style.begins_with_i.required_suffix =
200- dotnet_naming_style.begins_with_i.word_separator =
201- dotnet_naming_style.begins_with_i.capitalization = pascal_case
202217
203- #
204- # Customizations
205- #
218+
219+ # # The below are taken from Roslyn: https://github.com/dotnet/roslyn/blob/master/.editorconfig
206220
207221# IDE0055: Fix formatting
208222dotnet_diagnostic.IDE0055.severity = warning
209223
224+ # IDE0011: Add braces
225+ csharp_prefer_braces = when_multiline:warning
226+ # NOTE: We need the below severity entry for Add Braces due to https://github.com/dotnet/roslyn/issues/44201
227+ dotnet_diagnostic.IDE0011.severity = warning
228+
229+ # IDE0040: Add accessibility modifiers
230+ dotnet_diagnostic.IDE0040.severity = warning
231+
232+ # CONSIDER: Are IDE0051 and IDE0052 too noisy to be warnings for IDE editing scenarios? Should they be made build-only warnings?
233+ # IDE0051: Remove unused private member
234+ dotnet_diagnostic.IDE0051.severity = warning
235+
236+ # IDE0052: Remove unread private member
237+ dotnet_diagnostic.IDE0052.severity = warning
238+
239+ # IDE0059: Unnecessary assignment to a value
240+ dotnet_diagnostic.IDE0059.severity = warning
241+
242+ # IDE0060: Remove unused parameter
243+ dotnet_diagnostic.IDE0060.severity = warning
244+
245+ # CA1822: Make member static
246+ dotnet_diagnostic.CA1822.severity = warning
247+
248+ # IDE0035: Remove unreachable code
249+ dotnet_diagnostic.IDE0035.severity = warning
250+
251+ # IDE0036: Order modifiers
252+ dotnet_diagnostic.IDE0036.severity = warning
253+
254+ # IDE0043: Format string contains invalid placeholder
255+ dotnet_diagnostic.IDE0043.severity = warning
256+
257+ # IDE0044: Make field readonly
258+ dotnet_diagnostic.IDE0044.severity = warning
259+
260+ # Prefer "var" everywhere
261+ dotnet_diagnostic.IDE0007.severity = suggestion
262+ csharp_style_var_for_built_in_types = true :suggestion
263+ csharp_style_var_when_type_is_apparent = true :suggestion
264+ csharp_style_var_elsewhere = true :suggestion
265+
266+ #
267+ # Customizations
268+ #
269+
210270[extractor/Semmle.Extraction/Tuples.cs,
211271 extractor/Semmle.Extraction.CSharp/Tuples.cs,
212272 extractor/Semmle.Extraction.CIL/Tuples.cs]
213- dotnet_naming_rule.non_field_members_should_be_pascal_case .severity = none
273+ dotnet_naming_rule.members_should_be_pascal_case .severity = none
0 commit comments