我为 C# 创建了以下设置。
我们的想法是让所有私有的东西都用 camelCase 命名,而所有的东西都是公开的并用大写保护。
这是我的 .editorconfig 设置(简化):
[*.{cs,cshtml}]
# styles
dotnet_naming_style.camel_case.capitalization = camel_case
dotnet_naming_style.first_upper.capitalization = first_word_upper
# symbols
dotnet_naming_symbols.private_symbols.applicable_accessibilities = private
dotnet_naming_symbols.public_symbols.applicable_accessibilities = public, protected
# rules
dotnet_naming_rule.camel_case_for_private.severity = warning
dotnet_naming_rule.camel_case_for_private.symbols = private_symbols
dotnet_naming_rule.camel_case_for_private.style = camel_case
dotnet_naming_rule.first_upper_for_public.severity = warning
dotnet_naming_rule.first_upper_for_public.symbols = public_symbols
dotnet_naming_rule.first_upper_for_public.style = first_upper
它似乎不适用于私人:消息 IDE1006 命名规则违规:这些单词必须以大写字符开头:composeEmail
公共似乎工作正常。
这是完整的 .editorconfig 以防错误出现在其他地方:
# top-most EditorConfig file
root = true
[*]
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 170
[*.xml]
indent_style = space
[*.{cs,cshtml}]
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
dotnet_style_predefined_type_for_member_access = true:warning
dotnet_style_explicit_tuple_names = true:warning
dotnet_style_null_propagation = true:warning
csharp_style_var_when_type_is_apparent = true:warning
csharp_style_pattern_matching_over_is_with_cast_check = true:warning
csharp_style_pattern_matching_over_as_with_null_check = true:warning
csharp_style_inlined_variable_declaration = true:warning
csharp_prefer_simple_default_expression = true
csharp_style_throw_expression = false:warning
csharp_prefer_braces = true
dotnet_sort_system_directives_first = true
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_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_space_after_cast = true
csharp_space_after_keywords_in_control_flow_statements = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_preserve_single_line_statements = false
csharp_preserve_single_line_blocks = true
### naming conventions
# styles
dotnet_naming_style.camel_case.capitalization = camel_case
dotnet_naming_style.first_upper.capitalization = first_word_upper
# prefix_interface_interface_with_i - Interfaces must be PascalCase and the first character of an interface must be an 'I'
dotnet_naming_style.prefix_interface_interface_with_i.capitalization = first_word_upper
dotnet_naming_style.prefix_interface_interface_with_i.required_prefix = I
# symbols
dotnet_naming_symbols.private_symbols.applicable_accessibilities = private
dotnet_naming_symbols.public_symbols.applicable_accessibilities = public, protected
dotnet_naming_symbols.interface_types.applicable_kinds = interface
# rules
dotnet_naming_rule.camel_case_for_private.severity = warning
dotnet_naming_rule.camel_case_for_private.symbols = private_symbols
dotnet_naming_rule.camel_case_for_private.style = camel_case
dotnet_naming_rule.first_upper_for_public.severity = warning
dotnet_naming_rule.first_upper_for_public.symbols = public_symbols
dotnet_naming_rule.first_upper_for_public.style = first_upper
# Interfaces must be FirstUpper and start with an 'I'
dotnet_naming_rule.interface_types_must_be_prefixed_with_i.severity = warning
dotnet_naming_rule.interface_types_must_be_prefixed_with_i.symbols = interface_types
dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style = prefix_interface_interface_with_i
也许我还应该提到我正在使用 Resharper,但我禁用了它以确认警告仍然存在。