How can I get Visual Studio to give me a naming warning each time I create an asynchronous method that doesn't end in "Async"?
It's the recommended convention for asynchronous methods, but I often find myself forgetting to add that suffix and a warning would be useful.
In addition to Visual Studio Text Editor Settings, you can create portable, custom editor settings .editorconfig
file. Visual Studio 2017 natively supports .editorconfig
files.
By creating the .editorconfig
file as part of the repository and pushing it to the repository, you can enforce consistent coding styles for everyone that works in that codebase, regardless of their Visual Studio Text Editor Settings.
The Coding conventions you use on your personal projects may differ from
those used on your team's projects. EditorConfig files resolve this
problem by enabling you to have a configuration for each scenario.
EditorConfig settings take precedence over global Visual Studio text
editor settings.
To do so:
In the Solution Explorer, select the Solution, Project or a folder in the project, depending on the scope which you want to apply the naming rule.
Right click and select Add New Item or Press Ctrl + Shift + A
- Choose Text File file from General categories and enter
.editorconfig
as file name.
Note: The file location can be even in parent folder of your solution. It's not necessary to have it in solution.
Paste the following content in the file:
# Top-most EditorConfig file
root = true
[*.{cs,vb}]
# Async methods should have "Async" suffix
dotnet_naming_rule.async_methods_end_in_async.symbols = any_async_methods
dotnet_naming_rule.async_methods_end_in_async.style = end_in_async
dotnet_naming_rule.async_methods_end_in_async.severity = suggestion
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_in_async.required_prefix =
dotnet_naming_style.end_in_async.required_suffix = Async
dotnet_naming_style.end_in_async.capitalization = pascal_case
dotnet_naming_style.end_in_async.word_separator =
More Information:
- Create portable, custom editor settings with EditorConfig
- EditorConfig