Элемент управления EditorConfig Объявление пространства имен в области файлов
Я использую новую функцию C# 10
File-scoped namespace declaration
.
У меня такой старый код
namespace SampleCode
{
public class MyClass
{
}
}
Я перемещаю этот код в
namespace SampleCode;
public class MyClass
{
}
Но у меня есть несколько предупреждений:
IDE0160: Convert to block scoped namespace
Как убедиться, что у людей будут предупреждения только со старым синтаксисом?
2 ответа
Для управления стилем кода в editorconfig используйте эту строку:
Чтобы обеспечить соблюдение этого стиля
namespace SampleCode
{
public class MyClass
{
}
}
Добавьте эту строку в
# IDE0160: Convert to block scoped namespace
csharp_style_namespace_declarations = block_scoped
Чтобы обеспечить соблюдение этого стиля
namespace SampleCode;
public class MyClass
{
}
Добавьте эту строку в
.editorconfig
# IDE0160: Convert to block scoped namespace
csharp_style_namespace_declarations = file_scoped
Существует несколько различных настроек, которыми вы должны управлять в зависимости от желаемого состояния, используемых IDE и рабочего процесса.
Они описаны в этой статье, которую я настоятельно рекомендую прочитать перед тем, как приступить к сборке
..editorconfig
для вашего проекта.
Вот сводка для файлового и блочного использования соответственно.
Настройка EditorConfig/CSproj для использования в файловой области
Visual Studio (ошибка при нарушении)
EditorConfig
Примечание
Синтаксис рано или поздно устареет
JetBrain Rider (ошибка при нарушении)
EditorConfig
csharp_style_namespace_declarations = file_scoped:error
Примечание
Rider не поддерживает синтаксис dotnet_diagnostic.IDE*.
Сборка CLI, например конвейер CI/CD
EditorConfig
csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error
CSProj
Рекомендуемая настройка
EditorConfig
csharp_style_namespace_declarations = file_scoped:error
dotnet_diagnostic.IDE0161.severity = error
CSProj
Примечание
Является ли текущий синтаксис .NET EditorConfig беспорядком? Определенно.
Настройка EditorConfig/CSproj для использования с блочной областью действия
Visual Studio (ошибка при нарушении)
EditorConfig
Примечание
Синтаксис
option = rule:severity
рано или поздно выйдет .из строя .
JetBrain Rider (ошибка при нарушении)
EditorConfig
csharp_style_namespace_declarations = block_scoped:error
Примечание
Rider не поддерживает синтаксис dotnet_diagnostic.IDE*.
Сборка CLI, например конвейер CI/CD
EditorConfig
csharp_style_namespace_declarations = block_scoped
dotnet_diagnostic.IDE0160.severity = error
CSProj
Рекомендуемая настройка
EditorConfig
csharp_style_namespace_declarations = block_scoped:error
dotnet_diagnostic.IDE0160.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>