相关文章推荐
儒雅的豆芽  ·  Oracle ...·  3 年前    · 
聪明的莲藕  ·  用户对问题“HTML / JS ...·  3 年前    · 

使用代码样式首选项可以控制代码的各个方面,例如缩进样式、制表符宽度、行尾字符、编码和其他许多格式选项。 可以通过两种方式定义代码样式设置:

  • 使用 EditorConfig 文件 按代码库或按项目,或者
  • 对于 Visual Studio 中基于文本编辑器 .NET 选项页 或 C/C++“选项”页 的设置进行编辑的所有代码。
  • 还可以使用 代码清理 和 格式化文档 命令将 Visual Studio 配置为应用代码样式首选项。

    可以通过使用 EditorConfig 文件 来为每个项目定义代码样式设置,或者通过在 Visual Studio 的文本编辑器中使用 .NET 选项页 或 C/C++ 选项页 来为您编辑的所有代码定义。 对于 C# 代码,还可以将 Visual Studio 配置为使用 代码清理 (Visual Studio 2019)和 格式文档 (Visual Studio 2017)命令应用这些代码样式首选项。

    对于 .NET,代码样式首选项基于 .NET 编译器平台 (Roslyn) 分析器。 有关详细信息,请参阅 使用 .NET 编译器平台(Roslyn)分析器进行代码分析 。

    在 Visual Studio 2019 版本 16.5 及更高版本中,规则集文件已被弃用,转而用 EditorConfig 文件进行 .NET 代码的代码样式配置。 有关详细信息,请参阅 将现有规则集文件转换为 EditorConfig 文件 。

    EditorConfig 文件中的代码样式

    可以通过向项目添加 EditorConfig 文件来指定代码样式设置。 EditorConfig 文件与代码库而不是 Visual Studio 个性化帐户相关联。 EditorConfig 文件中的设置优先于 选项 对话框中指定的代码样式。 如果要对存储库或项目的所有参与者强制实施编码样式,请使用 EditorConfig 文件。 它们特别有助于确保团队编程环境中的一致性。

    若要添加 EditorConfig 文件,请参阅 “添加和删除 EditorConfig”文件 。

    有关 .NET 代码样式设置的参考信息,请参阅 代码样式设置 。

    “选项”对话框中的 C/C++代码样式

    可以指定许多单独的代码格式设置选项,例如缩进和大括号位置。 为此,请转到 “工具 > 选项 > 文本编辑器 > C/C++ > 代码样式 > 格式 ”(或 键入 Ctrl + Q 并搜索“格式”)。 或者,可以指定 ClangFormat 样式之一(或你自己的自定义 ClangFormat 样式)。

    可以指定许多单独的代码格式设置选项,例如缩进和大括号位置。 为此,请转到 “工具 > 选项 > 文本编辑器 > C/C++ > 格式 ”(或 键入 Ctrl + Q 并搜索“格式”)。 或者,可以指定 ClangFormat 样式之一(或你自己的自定义 ClangFormat 样式)。

    有关所有格式设置选项的详细信息,请参阅 选项、文本编辑器、C/C++、格式 设置。

    “选项”对话框中的 .NET 代码样式

    可以通过从“ 工具 ”菜单中打开“ 选项 ”对话框,为所有 C# 和 Visual Basic 项目设置代码样式首选项。 在“ 选项 ”对话框中,选择 文本编辑器 > [ C# 或 Visual Basic ] > 代码样式 。

  • 对于格式设置样式,请选择 “格式” 下的选项。
  • 对于与 快速作 和 IDE 代码样式规则关联的代码样式首选项,请选择 “常规 ”或“ 命名 ”下的选项。
  • 可以通过从“ 工具 ”菜单中打开“ 选项 ”对话框,为所有 C# 和 Visual Basic 项目设置代码样式首选项。 在 选项 对话框中,选择 文本编辑器 > [ C# 或 基本 ] > 代码样式 > 常规 。

    选择选项时,列表中的每个项都会显示首选项的预览:

    在此窗口中设置的选项适用于 Visual Studio 个性化帐户,并且不与特定项目或代码库相关联。 此外,它们不会在构建时强制执行,包括在持续集成(CI)构建中。 如果要将代码样式首选项与项目相关联,并在生成过程中强制实施样式,请在与项目关联的 EditorConfig 文件中 指定首选项。

    首选项和严重级别

    对于 常规 和 命名 选项页上的每个代码样式设置,可以在每行的下拉列表中设置 首选项 和 严重性 值。 严重性可设置为“仅重构” 、“建议” 、“警告” 或“错误” 。

  • “常规 ”和 “命名 ”选项页中的代码样式首选项决定了用于代码样式的 快捷操作 。 使用非首选样式时, 快速操作 灯泡 、错误灯泡 或螺丝刀 图标显示,可以在 快速操作 列表中选择一个选项,以自动将代码重写为首选样式。
  • 如果希望违规仅显示为快速操作,并且也从代码清理中排除,请将 严重性 设置为 仅重构 。
  • 如果希望冲突显示在“错误列表”窗口中以及“快速作”中,并且包括在代码清理中,请将 “严重性 ”设置为 “建议 ”、“ 警告 ”或 “错误 ”。 将“错误列表”窗口中的输出设置为“生成 + IntelliSense” 时,违规会显示为建议(消息)、警告或错误。 它们被排除在仅 生成 输出之外。
  • EditorConfig 文件中的设置优先于这些页面中设置的代码样式。

    在构建时强制执行代码样式

    从 Visual Studio 2019 版本 16.8(包括 .NET 5.0 RC2 SDK)开始,可以针对所有 .NET 项目 在生成时强制实施 .NET 编码约定 。 在生成时,.NET 代码样式冲突将显示为带有“IDE”前缀的警告或错误。 这样,便可以严格强制实施代码库中的一致代码样式。

    应用代码样式

    在“选项”页中更改代码样式或向 Visual Studio 中的项目添加 EditorConfig 文件时,仅基于新设置设置新代码行。 除非运行以下命令之一,否则不会更改现有代码的格式:

  • 代码清理 。

    在 Visual Studio 编辑器中选择 “代码清理 ”,或按 Ctrl +、 Ctrl + E 。 此命令适用于空白设置,例如缩进样式和所选代码样式设置,例如括号首选项。

  • 设置文档格式。

    选择 “编辑 > 高级 > 格式文档 ”,或在默认配置文件中按 Ctrl + K 、 Ctrl + D 。 此命令仅适用于空白区域设置,例如缩进样式。

    通过代码清理来应用代码样式

    若要从 EditorConfig 文件或 “代码样式 ”选项页应用代码样式,请使用编辑器底部的代码 清理 按钮(键盘: Ctrl + K 、 Ctrl + E )。 如果项目的 EditorConfig 文件存在,则这些是优先设置。

    严重性配置为“仅重构”的 .NET 规则不参与代码清理,但可通过“快速操作和重构”菜单单独应用 。

    应用代码样式:

  • 首先,在“配置代码清理”对话框中配置要应用的代码样式(在两个配置文件中的某个文件中) 。 若要打开此对话框,请单击代码清理扫把图标旁边的展开器箭头,然后选择 配置代码清理 。 或者,使用 “分析 > 代码清理 ”菜单。

    有关 .NET 代码清理修复程序到 .NET 代码样式规则的映射,请参阅 .NET 代码清理设置 。

    C/C++ 的选项,其修复程序的名称中会包含 C++。

  • 配置代码清理后,使用以下方法之一运行代码清理:

  • 单击扫把图标或按 Ctrl + K , Ctrl + E 。

  • 若要在整个项目或解决方案中运行代码清理,请在 解决方案资源管理器 中右键单击项目或解决方案名称,选择“ 分析和代码清理 ”,然后选择“ 运行代码清理 ”。

    对于 C# 代码文件,Visual Studio 在编辑器底部有一个 代码清理 按钮(键盘: Ctrl + K , Ctrl + E )从 EditorConfig 文件或 代码样式 选项页应用代码样式。 如果项目的 EditorConfig 文件存在,则这些是优先设置。

    严重性配置为“无”的规则不参与代码清理,但可通过“快速操作和重构”菜单单独应用 。

    应用代码样式:

  • 首先,在“配置代码清理”对话框中配置要应用的代码样式(在两个配置文件中的某个文件中) 。 若要打开此对话框,请单击代码清理扫把图标旁边的展开器箭头,然后选择 配置代码清理 。

  • 配置代码清理后,使用以下方法之一运行代码清理:

  • 单击扫把图标或按 Ctrl + , Ctrl + E 运行代码清理。

  • 若要在整个项目或解决方案中运行代码清理,请在 解决方案资源管理器 中右键单击项目或解决方案名称,选择“分析和代码清理” ,然后选择 运行代码清理 。

    如果希望每次保存文件时都应用代码样式设置,则可能需要使用 保存时清理代码 扩展。

    设置条件表达式首选项 dotnet_style_prefer_conditional_expression_over_assignment
    dotnet_style_prefer_conditional_expression_over_return 应用元组名称首选项 dotnet_style_explicit_tuple_names
    dotnet_style_prefer_inferred_tuple_names 应用推断匿名类型成员名称首选项 dotnet_style_prefer_inferred_anonymous_type_member_names 应用 Null 检查首选项 dotnet_style_prefer_is_null_check_over_reference_equality_method 应用 Null 传播首选项 dotnet_style_null_propagation 应用“var”首选项 IDE0007-IDE0008 添加所需的单行控制语句的大括号 csharp_prefer_braces 应用表达式/程序块主体首选项 表达式主体定义的成员 应用内联“out”变量首选项 csharp_style_inlined_variable_declaration 应用模式匹配首选项 模式匹配首选项 应用条件委托调用首选项 csharp_style_conditional_delegate_call 应用静态本地函数首选项 csharp_prefer_static_local_function 应用析构首选项 csharp_style_deconstructed_variable_declaration 应用 default(T) 首选项 csharp_优先使用简单默认表达式 应用 new() 首选项 csharp_style_implicit_object_creation_when_type_is_apparent 应用范围首选项 csharp_style_prefer_range_operator 应用本地函数(而不是匿名函数)首选项 csharp_style_pattern_local_over_anonymous_function 应用参数 null 首选项 Null 检查首选项 应用 using 语句首选项 csharp_prefer_simple_using_statement 应用 throw 表达式首选项 csharp_style_throw_expression
  •