root = true
# Code files
[*.cs,*.csx]
indent_size = 4
indent_style = space

# Enforce documented coding style as warnings: /Documentation/coding-style.md
# Suggestions inferred from existing code.
[*.cs]
dotnet_style_qualification_for_field = true:warning
dotnet_style_qualification_for_property = true:warning
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
dotnet_style_predefined_type_for_member_access = true:warning
csharp_style_var_for_built_in_types = false:none
csharp_style_var_when_type_is_apparent = true:none
csharp_style_var_elsewhere = false:warning
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
csharp_style_expression_bodied_constructors = false:suggestion
csharp_style_expression_bodied_operators = false:suggestion
csharp_style_expression_bodied_properties = false:suggestion
csharp_style_expression_bodied_indexers = false:suggestion
csharp_style_expression_bodied_accessors = false:suggestion
csharp_style_inlined_variable_declaration = false:suggestion

# Async suffix
dotnet_naming_rule.async_methods_end_with_async.symbols  = any_async_methods
dotnet_naming_rule.async_methods_end_with_async.style    = end_with_async
dotnet_naming_rule.async_methods_end_with_async.severity = warning
dotnet_naming_symbols.any_async_methods.applicable_kinds           = method
dotnet_naming_symbols.any_async_methods.applicable_accessibilities = *
dotnet_naming_symbols.any_async_methods.required_modifiers         = async
dotnet_naming_style.end_with_async.required_suffix = Async
dotnet_naming_style.end_with_async.capitalization  = pascal_case

# .NET formatting settings:
[*.{cs,vb}]
dotnet_sort_system_directives_first = true