| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # editorconfig.org |
| |
| # top-most EditorConfig file |
| root = true |
| |
| # Default settings: |
| # A newline ending every file |
| # Use 4 spaces as indentation |
| [*] |
| insert_final_newline = true |
| indent_style = space |
| indent_size = 4 |
| trim_trailing_whitespace = true |
| spelling_exclusion_path = ./exclusion.dic |
| |
| [*.json] |
| indent_size = 2 |
| |
| # Generated code |
| [*{_AssemblyInfo.cs,.notsupported.cs,*/obj/*/External/**/*,*/obj/dotnet-new.IntegrationTests/*/TemplatePackagesPaths.cs}] |
| generated_code = true |
| |
| # C# files |
| [*.cs] |
| # 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_block_contents = true |
| csharp_indent_braces = false |
| csharp_indent_case_contents = true |
| csharp_indent_case_contents_when_block = false |
| csharp_indent_switch_labels = true |
| csharp_indent_labels = one_less_than_current |
| |
| # Modifier preferences |
| csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion |
| |
| # avoid this. unless absolutely necessary |
| dotnet_style_qualification_for_field = false:suggestion |
| dotnet_style_qualification_for_property = false:suggestion |
| dotnet_style_qualification_for_method = false:suggestion |
| dotnet_style_qualification_for_event = false:suggestion |
| |
| # Types: use keywords instead of BCL types, and permit var only when the type is clear |
| csharp_style_var_for_built_in_types = false:none |
| csharp_style_var_when_type_is_apparent = false:none |
| csharp_style_var_elsewhere = false:none |
| dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion |
| dotnet_style_predefined_type_for_member_access = true:suggestion |
| |
| # name all constant fields using PascalCase |
| dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion |
| dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields |
| dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style |
| dotnet_naming_symbols.constant_fields.applicable_kinds = field |
| dotnet_naming_symbols.constant_fields.required_modifiers = const |
| dotnet_naming_style.pascal_case_style.capitalization = pascal_case |
| |
| # static fields should have s_ prefix |
| dotnet_naming_rule.static_fields_should_have_prefix.severity = suggestion |
| dotnet_naming_rule.static_fields_should_have_prefix.symbols = static_fields |
| dotnet_naming_rule.static_fields_should_have_prefix.style = static_prefix_style |
| dotnet_naming_symbols.static_fields.applicable_kinds = field |
| dotnet_naming_symbols.static_fields.required_modifiers = static |
| dotnet_naming_symbols.static_fields.applicable_accessibilities = private, internal, private_protected |
| dotnet_naming_style.static_prefix_style.required_prefix = s_ |
| dotnet_naming_style.static_prefix_style.capitalization = camel_case |
| |
| # internal and private fields should be _camelCase |
| dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion |
| dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields |
| dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style |
| dotnet_naming_symbols.private_internal_fields.applicable_kinds = field |
| dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal |
| dotnet_naming_style.camel_case_underscore_style.required_prefix = _ |
| dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case |
| |
| # Code style defaults |
| csharp_using_directive_placement = outside_namespace:suggestion |
| dotnet_sort_system_directives_first = true |
| csharp_prefer_braces = true:silent |
| csharp_preserve_single_line_blocks = true:none |
| csharp_preserve_single_line_statements = false:none |
| csharp_prefer_static_local_function = true:suggestion |
| csharp_prefer_simple_using_statement = false:none |
| csharp_style_prefer_switch_expression = true:suggestion |
| |
| # Code quality |
| dotnet_style_readonly_field = true:suggestion |
| dotnet_code_quality_unused_parameters = non_public:suggestion |
| |
| # Expression-level preferences |
| dotnet_style_object_initializer = true:suggestion |
| dotnet_style_collection_initializer = true:suggestion |
| dotnet_style_explicit_tuple_names = true:suggestion |
| 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_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:silent |
| dotnet_style_prefer_conditional_expression_over_return = true:silent |
| csharp_prefer_simple_default_expression = true:suggestion |
| |
| # Expression-bodied members |
| csharp_style_expression_bodied_methods = true:silent |
| csharp_style_expression_bodied_constructors = true:silent |
| csharp_style_expression_bodied_operators = true: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 = true:silent |
| |
| # Pattern matching |
| csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion |
| csharp_style_pattern_matching_over_as_with_null_check = true:suggestion |
| csharp_style_inlined_variable_declaration = true:suggestion |
| |
| # Null checking preferences |
| csharp_style_throw_expression = true:suggestion |
| csharp_style_conditional_delegate_call = true:suggestion |
| |
| # Other features |
| csharp_style_prefer_index_operator = false:none |
| csharp_style_prefer_range_operator = false:none |
| csharp_style_pattern_local_over_anonymous_function = false:none |
| |
| # Space preferences |
| csharp_space_after_cast = false |
| 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_around_declaration_statements = do_not_ignore |
| 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 |
| |
| # Default analyzed API surface = 'all' (public APIs + non-public APIs) |
| dotnet_code_quality.api_surface = all |
| |
| # License header |
| file_header_template = /*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * "License"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */ |
| |
| # Code files |
| [*.{cs,vb}] |
| # Analyzers |
| dotnet_code_quality.ca1802.api_surface = private, internal |
| dotnet_code_quality.ca1822.api_surface = private, internal |
| dotnet_code_quality.ca2208.api_surface = public |
| # Mark attributes with AttributeUsageAttribute |
| dotnet_diagnostic.CA1018.severity = warning |
| # Properties should not be write only |
| dotnet_diagnostic.CA1044.severity = warning |
| # Do not declare protected member in sealed type |
| dotnet_diagnostic.CA1047.severity = warning |
| # Avoid using cref tags with a prefix |
| dotnet_diagnostic.CA1200.severity = suggestion |
| # P/Invokes should not be visible |
| dotnet_diagnostic.CA1401.severity = warning |
| # Parameter names should match base declaration |
| dotnet_diagnostic.CA1725.severity = suggestion |
| # Remove empty Finalizers |
| dotnet_diagnostic.CA1821.severity = warning |
| # Mark assemblies with NeutralResourcesLanguageAttribute |
| dotnet_diagnostic.CA1824.severity = warning |
| # Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used |
| dotnet_diagnostic.CA1828.severity = warning |
| # Prefer strongly-typed Append and Insert method overloads on StringBuilder. |
| dotnet_diagnostic.CA1830.severity = warning |
| # Use AsSpan or AsMemory instead of Range-based indexers when appropriate |
| dotnet_diagnostic.CA1832.severity = warning |
| # Use AsSpan or AsMemory instead of Range-based indexers when appropriate |
| dotnet_diagnostic.CA1833.severity = warning |
| # Prefer IsEmpty over Count |
| dotnet_diagnostic.CA1836.severity = warning |
| # Use 'Environment.ProcessPath' |
| dotnet_diagnostic.CA1839.severity = warning |
| # Do not call ToImmutableCollection on an ImmutableCollection value |
| # Temporarily disable to avoid regression in preview 1, revert back to warning when start using preview 2 |
| dotnet_diagnostic.CA2009.severity = none |
| # Avoid infinite recursion |
| dotnet_diagnostic.CA2011.severity = warning |
| # Initialize value type static fields inline |
| dotnet_diagnostic.CA2207.severity = warning |
| # Implement serialization constructors |
| dotnet_diagnostic.CA2229.severity = warning |
| # Provide correct arguments to formatting methods |
| dotnet_diagnostic.CA2241.severity = warning |
| # Test for NaN correctly |
| dotnet_diagnostic.CA2242.severity = warning |
| # Do not assign a property to itself. |
| dotnet_diagnostic.CA2245.severity = warning |
| # Provide correct 'enum' argument to 'Enum.HasFlag' |
| dotnet_diagnostic.CA2248.severity = warning |
| # Do Not Add Schema By URL |
| dotnet_diagnostic.CA3061.severity = warning |
| # Insecure DTD processing in XML |
| dotnet_diagnostic.CA3075.severity = warning |
| # Insecure XSLT script processing. |
| dotnet_diagnostic.CA3076.severity = warning |
| # Insecure Processing in API Design, XmlDocument and XmlTextReader |
| dotnet_diagnostic.CA3077.severity = warning |
| # Mark Verb Handlers With Validate Antiforgery Token |
| dotnet_diagnostic.CA3147.severity = warning |
| # Do Not Use Broken Cryptographic Algorithms |
| dotnet_diagnostic.CA5351.severity = warning |
| # Do Not Disable Certificate Validation |
| dotnet_diagnostic.CA5359.severity = warning |
| # Do Not Call Dangerous Methods In Deserialization |
| dotnet_diagnostic.CA5360.severity = warning |
| # Do Not Disable SChannel Use of Strong Crypto |
| dotnet_diagnostic.CA5361.severity = warning |
| # Do Not Disable Request Validation |
| dotnet_diagnostic.CA5363.severity = warning |
| # Do Not Use Deprecated Security Protocols |
| dotnet_diagnostic.CA5364.severity = warning |
| # Do Not Disable HTTP Header Checking |
| dotnet_diagnostic.CA5365.severity = warning |
| # Set ViewStateUserKey For Classes Derived From Page |
| dotnet_diagnostic.CA5368.severity = warning |
| # Use XmlReader For Validating Reader |
| dotnet_diagnostic.CA5370.severity = warning |
| # Do not use obsolete key derivation function |
| dotnet_diagnostic.CA5373.severity = warning |
| # Do Not Use XslTransform |
| dotnet_diagnostic.CA5374.severity = warning |
| # Use SharedAccessProtocol HttpsOnly |
| dotnet_diagnostic.CA5376.severity = warning |
| # Use Container Level Access Policy |
| dotnet_diagnostic.CA5377.severity = warning |
| # Do not disable ServicePointManagerSecurityProtocols |
| dotnet_diagnostic.CA5378.severity = warning |
| # Do Not Use Weak Key Derivation Function Algorithm |
| dotnet_diagnostic.CA5379.severity = warning |
| # Do Not Add Certificates To Root Store |
| dotnet_diagnostic.CA5380.severity = warning |
| # Ensure Certificates Are Not Added To Root Store |
| dotnet_diagnostic.CA5381.severity = warning |
| # Do Not Use Digital Signature Algorithm (DSA) |
| dotnet_diagnostic.CA5384.severity = warning |
| # Use Rivest–Shamir–Adleman (RSA) Algorithm With Sufficient Key Size |
| dotnet_diagnostic.CA5385.severity = warning |
| dotnet_diagnostic.CS1591.severity = suggestion |
| # UseIsNullCheck |
| dotnet_diagnostic.IDE0041.severity = warning |
| # ValidateFormatString |
| dotnet_diagnostic.IDE0043.severity = warning |
| # MakeLocalFunctionStatic |
| dotnet_diagnostic.IDE0062.severity = warning |
| # ConvertTypeOfToNameOf |
| dotnet_diagnostic.IDE0082.severity = warning |
| # Remove unnecessary lambda expression |
| dotnet_diagnostic.IDE0200.severity = none |
| # Remove redundant nullable directive |
| dotnet_diagnostic.IDE0240.severity = warning |
| |
| # C++ Files |
| [*.{cpp,h,in}] |
| curly_bracket_next_line = true |
| indent_brace_style = Allman |
| |
| # Xml project files |
| [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}] |
| indent_size = 2 |
| |
| [*.{csproj,vbproj,proj,nativeproj,locproj}] |
| charset = utf-8-bom |
| |
| # Xml build files |
| [*.builds] |
| indent_size = 2 |
| |
| # Xml files |
| [*.{xml,stylecop,resx,ruleset}] |
| indent_size = 2 |
| |
| # Xml config files |
| [*.{props,targets,config,nuspec}] |
| indent_size = 2 |
| |
| # YAML config files |
| [*.{yml,yaml}] |
| indent_size = 2 |
| |
| # Shell scripts |
| [*.sh] |
| end_of_line = lf |
| [*.{cmd, bat}] |
| end_of_line = crlf |
| |
| # IDE0040: Add accessibility modifiers |
| dotnet_diagnostic.IDE0040.severity = warning |
| |
| [*.txt] |
| insert_final_newline = false |
| |
| # Verify settings |
| [*.{received,verified}.{txt,xml,json}] |
| charset = "utf-8-bom" |
| end_of_line = lf |
| indent_size = unset |
| indent_style = unset |
| insert_final_newline = false |
| tab_width = unset |
| trim_trailing_whitespace = false |