【问题标题】:Automatic indentation of arguments list on multiple lines in Visual StudioVisual 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 在多行参数错位时按照该模式自动重新缩进?

【问题讨论】:

    标签: visual-studio-2010 code-formatting


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      此特定选项位于:

      更新

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

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

      【讨论】:

      • 我实际上已经在使用 ReSharper;我会检查它是否有一个选项。
      猜你喜欢
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 2013-08-10
      • 2013-12-27
      • 2016-06-02
      • 1970-01-01
      相关资源
      最近更新 更多