EditorConfig 控件文件范围的命名空间声明
EditorConfig control File-scoped namespace declaration
我正在使用 C# 10 的新功能 File-scoped namespace declaration
。
我有这样的旧代码
namespace SampleCode
{
public class MyClass
{
}
}
我正在将此代码移至
namespace SampleCode;
public class MyClass
{
}
但是我有一堆警告:IDE0160: Convert to block scoped namespace
如何确保人们只会收到旧语法的警告?
要控制 editorconfig 中的代码样式,请使用此行:
强制执行此样式
namespace SampleCode
{
public class MyClass
{
}
}
在.editorconfig
中添加这一行
# IDE0160: Convert to block-scoped namespace
csharp_style_namespace_declarations = block_scoped:warning
强制执行此样式
namespace SampleCode;
public class MyClass
{
}
在.editorconfig
中添加这一行
# IDE0160: Convert to file-scoped namespace
csharp_style_namespace_declarations = file_scoped:warning
2022-01-27更新
JetBrains Rider 从版本 2021.3.2 开始支持 dotnet_diagnostic.IDE* 语法。这将设置简化为
编辑器配置
csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
这将涵盖所有场景。原回答如下。还是值得一读。
您应该根据所需的状态、使用的 IDE 和工作流来控制几种不同的设置。
它们在 this 文章中有描述,我强烈建议您在开始构建 .editorconfig
项目之前阅读这篇文章。
这里分别总结了文件范围和块范围的用法。
EditorConfig/CSproj 文件范围使用设置
Visual Studio(违规错误)
编辑器配置
csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error
备注
语法 option = rule:severity
迟早会变成 deprecated。
JetBrains Rider(违规错误)
编辑器配置
csharp_style_namespace_declarations = file_scoped:error
备注
Rider 不支持 dotnet_diagnostic.IDE* 语法。
CLI 构建,例如,CI/CD 管道
编辑器配置
csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
推荐设置
编辑器配置
csharp_style_namespace_declarations = file_scoped:error
dotnet_diagnostic.IDE0161.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
备注
当前的 .NET EditorConfig 语法是否一团糟? 肯定.
EditorConfig/CSproj 块作用域使用设置
Visual Studio(违规错误)
编辑器配置
csharp_style_namespace_declarations = block_scoped
dotnet_diagnostic.IDE0160.severity = error
备注
语法 option = rule:severity
迟早会变成 deprecated。
JetBrains Rider(违规错误)
编辑器配置
csharp_style_namespace_declarations = block_scoped:error
备注
Rider 不支持 dotnet_diagnostic.IDE* 语法。
CLI 构建,例如,CI/CD 管道
编辑器配置
csharp_style_namespace_declarations = block_scoped
dotnet_diagnostic.IDE0160.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
推荐设置
编辑器配置
csharp_style_namespace_declarations = block_scoped:error
dotnet_diagnostic.IDE0160.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
我正在使用 C# 10 的新功能 File-scoped namespace declaration
。
我有这样的旧代码
namespace SampleCode
{
public class MyClass
{
}
}
我正在将此代码移至
namespace SampleCode;
public class MyClass
{
}
但是我有一堆警告:IDE0160: Convert to block scoped namespace
如何确保人们只会收到旧语法的警告?
要控制 editorconfig 中的代码样式,请使用此行:
强制执行此样式
namespace SampleCode
{
public class MyClass
{
}
}
在.editorconfig
# IDE0160: Convert to block-scoped namespace
csharp_style_namespace_declarations = block_scoped:warning
强制执行此样式
namespace SampleCode;
public class MyClass
{
}
在.editorconfig
# IDE0160: Convert to file-scoped namespace
csharp_style_namespace_declarations = file_scoped:warning
2022-01-27更新
JetBrains Rider 从版本 2021.3.2 开始支持 dotnet_diagnostic.IDE* 语法。这将设置简化为
编辑器配置
csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
这将涵盖所有场景。原回答如下。还是值得一读。
您应该根据所需的状态、使用的 IDE 和工作流来控制几种不同的设置。
它们在 this 文章中有描述,我强烈建议您在开始构建 .editorconfig
项目之前阅读这篇文章。
这里分别总结了文件范围和块范围的用法。
EditorConfig/CSproj 文件范围使用设置
Visual Studio(违规错误)
编辑器配置
csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error
备注
语法 option = rule:severity
迟早会变成 deprecated。
JetBrains Rider(违规错误)
编辑器配置
csharp_style_namespace_declarations = file_scoped:error
备注
Rider 不支持 dotnet_diagnostic.IDE* 语法。
CLI 构建,例如,CI/CD 管道
编辑器配置
csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
推荐设置
编辑器配置
csharp_style_namespace_declarations = file_scoped:error
dotnet_diagnostic.IDE0161.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
备注
当前的 .NET EditorConfig 语法是否一团糟? 肯定.
EditorConfig/CSproj 块作用域使用设置
Visual Studio(违规错误)
编辑器配置
csharp_style_namespace_declarations = block_scoped
dotnet_diagnostic.IDE0160.severity = error
备注
语法 option = rule:severity
迟早会变成 deprecated。
JetBrains Rider(违规错误)
编辑器配置
csharp_style_namespace_declarations = block_scoped:error
备注
Rider 不支持 dotnet_diagnostic.IDE* 语法。
CLI 构建,例如,CI/CD 管道
编辑器配置
csharp_style_namespace_declarations = block_scoped
dotnet_diagnostic.IDE0160.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
推荐设置
编辑器配置
csharp_style_namespace_declarations = block_scoped:error
dotnet_diagnostic.IDE0160.severity = error
CSProj
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>