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

Mat*_*ias 7 code-formatting visual-studio-2010

当方法的参数列表增长到它们不适合在一行上时,我喜欢格式化代码,使得每个参数都在一个单独的行上(遵循StyleCop建议),如下所示:

public void MyMethod(
   int someArgument,
   double someOtherArgument,
   int someMoreArguments)
Run Code Online (Sandbox Code Playgroud)

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

myEnumerable.
   .Where(this and that)
   .Where(this and that)
   .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

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

tur*_*oni 7

对于任何在更高版本中搜索此问题的人,在Visual\xc2\xa0Studio\xc2\xa02017中,我找到了一个选项来执行此操作(我不确定它是否在其他版本中可用)。

\n

菜单下工具\xe2\x86\x92选项\xe2\x86\x92文本编辑器\xe2\x86\x92 C/C++ \xe2\x86\x92格式\xe2\x86\x92缩进\xe2\x86\x92 "括号内,当我输入新行时对齐它们”

\n

选择选项“将内容与左括号对齐”

\n

视觉工作室 2019 更新。

\n

大部分答案相同,但格式似乎已在代码样式下移动:\n所以:\n在菜单工具\xe2\x86\x92选项\xe2\x86\x92文本编辑器\xe2\x86\x92 C/C++ \xe2\x86\ x92代码样式\xe2\x86\x92格式\xe2\x86\x92缩进\xe2\x86\x92 "在括号内,键入新行时对齐它们"

\n

选择选项“将内容与左括号对齐”

\n

对齐内容

\n


Les*_*nks 4

您可能想看看JetBrainsReSharper。它具有各种可应用于格式化代码的规则,这些规则比内置的 Visual\xc2\xa0Studio 东西要好得多。

\n

此特定选项位于:

\n

ReSharper \xe2\x86\x92 菜单选项\xe2\x86\x92 C# \xe2\x86\x92格式样式\xe2\x86\x92换行和换行\xe2\x86\x92长行换行

\n

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

\n