简体   繁体   中英

How can I use an editorconfig to prevent underscore prefixes on fields?

I see a lot of questions about how to allow it but I would like to prevent it.

What settings would I put into my.editorconfig file to make all fields be camel_case without underscore prefixes (or any hungarian notation).

I was just working on the underscore rule myself. It seems making CA1707 enabled as an error doesn't cut it as it's only breaking on assemblies. I may have missed some more specs in the file but while trying to make it work I found this gist buried in a comment on this issue .

# Start of NO underscore prefix on private fields
# Define the 'private_fields' symbol group:
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private

# Define the 'notunderscored' naming style
dotnet_naming_style.notunderscored.capitalization = camel_case
dotnet_naming_style.notunderscored.required_prefix =

# Define the 'private_fields_notunderscored' naming rule
dotnet_naming_rule.private_fields_notunderscored.symbols = private_fields
dotnet_naming_rule.private_fields_notunderscored.style = notunderscored
dotnet_naming_rule.private_fields_notunderscored.severity = error
# End of No underscore prefix on private fields

To cover all fields you'll need to update the accessibilities to:

dotnet_naming_symbols.private_fields.applicable_accessibilities = *

If you want to make it more accurate to represent all fields for all modifiers, you may prefer this version:

# Start of NO underscore prefix on all fields
# Define the 'all_fields' symbol group:
dotnet_naming_symbols.all_fields.applicable_kinds = field
dotnet_naming_symbols.all_fields.applicable_accessibilities = *

# Define the 'notunderscored' naming style
dotnet_naming_style.notunderscored.capitalization = pascal_case
dotnet_naming_style.notunderscored.required_prefix =

# Define the 'all_fields_notunderscored' naming rule
dotnet_naming_rule.all_fields_notunderscored.symbols = all_fields
dotnet_naming_rule.all_fields_notunderscored.style = notunderscored
dotnet_naming_rule.all_fields_notunderscored.severity = error
# End of No underscore prefix on all fields

Here's what you'll see for errors:

  1. _someVar = Prefix '_' is not expected
  2. someVar = These words must begin with upper case characters
  3. _SomeVar = Prefix '_' is not expected
  4. SomeVar = No error

I can't speak to the Hungarian notation part; that seems like it would be a tough one perhaps requiring a custom analyzer or using R# or StyleCop.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM