Visual Studio 中多行参数列表的自动缩进

Posted

技术标签:

【中文标题】Visual Studio 中多行参数列表的自动缩进【英文标题】:Automatic indentation of arguments list on multiple lines in Visual Studio 【发布时间】:2011-10-26 13:55:09 【问题描述】:

当方法的参数列表增长到无法舒适地放在一行时,我喜欢对代码进行格式化,使每个参数都位于单独的行上(遵循 StyleCop 的建议),如下所示:

public void MyMethod(
   int someArgument,
   double someOtherArgument,
   int someMoreArguments)

我遇到的问题是这种格式是“脆弱的”,并且在使用 Ctrl+K+D 时不会自动重新格式化。例如,如果我碰巧在其中一个参数前面插入了一些空格,它不会被删除,我最终会进行一些繁琐的手动重新格式化。如果我复制一个方法(例如,提供重载签名),则副本中的参数缩进会变得非常混乱。 我对 LINQ 语句也有类似的问题,我也喜欢将其格式化为多行,例如:

myEnumerable.
   .Where(this and that)
   .Where(this and that)
   .FirstOrDefault();

我意识到这是完全的强迫性格式,而且是一个非常小的问题,但是有没有办法让 Visual Studio 2010 在多行参数错位时按照该模式自动重新缩进?

【问题讨论】:

【参考方案1】:

对于搜索此问题以获取更高版本的任何人, 在 Visual Studio 2017 中,我找到了执行此操作的选项。 (不确定其他版本是否可用) 在工具->选项->文本编辑器->C/C++->格式->缩进->“在括号内,键入时对齐新行” 选择“将内容与左括号对齐”选项。

【讨论】:

【参考方案2】:

您可能想看看 JetBrains 的 Resharper。它有各种各样的规则可以应用于格式化代码,比内置的 VS 东西要好得多。

http://www.jetbrains.com/resharper/

此特定选项位于:

更新

Resharper > 选项 > C# >格式化样式 > 换行和换行 > 换行

我不知道它是否完全符合你的要求,但它确实会换行

【讨论】:

我实际上已经在使用 ReSharper;我会检查它是否有一个选项。

以上是关于Visual Studio 中多行参数列表的自动缩进的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中添加多行注释时如何在 Visual Studio 2010 中启用自动星号?

Visual Studio 2015 缩进多行 for 语句

Visual Studio 中如何同时注释多行和取消注释多行

如何在 Visual Studio Code 中自动获取参数名称?

Visual Studio 自定义代码片段在方法定义的参数列表中不起作用

如何在 Visual Studio Code 中注释多行?