在 Visual Studio for Mac 中创建并编辑自定义 EditorConfig 文件

重要

根据 Microsoft 的新式生命周期策略,Visual Studio for Mac 计划于 2024 年 8 月 31 日停用。 虽然你可以继续使用 Visual Studio for Mac,但 Mac 上的开发人员还可以使用其他几个选项,例如适用于 VS Code 的新 C# 开发工具包扩展的预览版本。

详细了解支持时间线和替代方案

在 Visual Studio for Mac 中,可以向项目或解决方案添加 EditorConfig 文件,强制对使用该基本代码的所有人实施一致的编码样式。 EditorConfig 文件中声明的设置优先于全局 Visual Studio for Mac 文本编辑器设置。 在项目或基本代码中使用 EditorConfig 文件可为项目设置编码样式、首选项和警告。 由于该文件是基本代码的一部分,因此无论使用何种 IDE 或代码编辑器,它都使用户更容易遵守项目的编码操作。

EditorConfig 文件受到许多 IDE 和代码编辑器(包括 Visual Studio)支持。

支持的设置

Visual Studio for Mac 中的编辑器支持 EditorConfig 属性的核心集:

  • indent_style
  • indent_size
  • tab_width
  • end_of_line
  • charset
  • trim_trailing_whitespace
  • insert_final_newline
  • root

EditorConfig 还支持 C# 中的编码约定

将 EditorConfig 文件添加到项目

添加新的 EditorConfig 文件

  1. 在 Visual Studio for Mac 中打开项目。 选择要向其添加 EditorConfig 文件的解决方案或项目节点。 将文件添加到解决方案目录会将 .editorconfig 设置应用于解决方案中的所有项目。

  2. 右键单击节点,然后选择“添加”>“新建文件”以打开“新建文件”对话框:

    Content menu items

  3. 选择“杂项”>“空文本文件”,并将其命名为 .editorconfig。 按“新建”创建文件并在编辑器中将其打开:

    New file dialog

    在解决方案级别添加该项会自动创建并将其嵌套在解决方案项文件夹中:

    Solution item displayed in Solution Window

  4. 编辑文件。 例如:

    # This file is the top-most EditorConfig file
    root = true
    
    # All Files
    [*]
    indent_style = space
    indent_size = 8
    insert_final_newline = false
    trim_trailing_whitespace = false
    
    [*.cs]
    csharp_new_line_before_open_brace = none
    
  5. .editorconfig 文件中的设置将应用于编写的任何新代码,但可能需要重格式化现有代码以与新设置保持一致。 要将 .editorconfig 文件中的设置应用于现有源文件,请打开该文件,然后从菜单栏中选择“编辑”>“格式”>“设置文档格式”:

    Format Document menu item

添加现有的 EditorConfig 文件

如果正在使用已包含 .editorconfig 文件的项目或解决方案,则无需执行任何操作即可应用设置。 任何新的代码行都将根据 EditorConfig 设置设置格式。

可能想重复使用项目中现有的 .editorconfig 文件。 若要添加现有文件,请执行以下操作:

  1. 右键单击要添加到的文件夹,然后选择“添加”>“添加文件”。

  2. 浏览到所需文件的目录。

  3. . 开头的文件(例如 .editorconfig)是 macOS 中的隐藏文件,因此请按“Command + Shift + .”使 .editorconfig 文件可见。

  4. 选择 .editorconfig 文件并单击“打开”:

    adding a new file window

  5. 看到以下对话框时,选择“将文件复制到目录”选项并选择“确定” :

    Add file to folder dialog options

反映 .editorconfig 设置

将 EditorConfig 文件添加到基本代码后,添加的任何新代码将根据指定的设置自动格式化。 除非设置基本代码格式,否则现有代码不会自动反映设置。

要从 .editorconfig 文件反映设置,请从菜单栏选择解决方案节点并选择“编辑”>“格式”>“设置文档格式”:

Format document from the menu bar

编辑 EditorConfig 文件

EditorConfig 文件使用简单的文件布局来指定设置,下面使用前一个示例来解释:

# This file is the top-most EditorConfig file
root = true

# All Files
[*]
indent_style = space
indent_size = 4
insert_final_newline = false
trim_trailing_whitespace = false

[*.cs]
csharp_new_line_before_open_brace = none

root 设置为 true 可把该文件标记为代码库中的最顶级文件,并忽略项目中任何更高级的 .editorconfig 文件,如代替 EditorConfig 设置部分所述。

每个部分用方括号 ([ ]) 表示,并指定下列属性应涉及的文件类型的信息。

在以上示例中,一些设置应用于项目的所有文件,其他设置仅添加到 C# 文件。 以下屏幕截图显示应用 .editorconfig 设置之前以及之后的情况:

之前

Before editorconfig settings have been applied

之后:

after editorconfig settings have been applied

有关可用的 EditorConfig 设置的详细信息,请参阅 EditorConfig 的 .NET 编码约定设置一文以及官方文档的支持的属性部分。

替代 EditorConfig 设置

每个解决方案可以具有一个以上的 .editorconfig 文件。 Visual Studio for Mac 在解决方案中从上到下读取 .editorconfig 文件,并在此过程中添加和替代设置。这意味将优先选择 .editorconfig最接近正在编辑的文件的设置。 先采用同一文件夹中 .editorconfig 文件(如果存在)中的设置,其次采用父级文件夹中 .editorconfig(如果存在)中的设置,以此类推。 直到找到 root=true

如果要确保任何更高级别的 .editorconfig 文件中没有设置应用于此部分代码库,请将 root=true 属性添加到较低级别的 .editorconfig 文件顶部:

# top-most EditorConfig file
root = true

请参阅