如何防止 Resharper 大量缩进 lambda?

Posted

技术标签:

【中文标题】如何防止 Resharper 大量缩进 lambda?【英文标题】:How do I keep Resharper from massively indenting lambdas? 【发布时间】:2012-11-30 13:11:34 【问题描述】:

我安装了 Resharper,主要是默认设置。目前,我希望我的多行 lambda 表达式看起来像这样:

foobarclass.biz.baz.Event += (s, e) =>
  
    foo.Bar.DoThings.Whatever();
  ;

但是,Resharper “有帮助”会重新格式化我的代码,如下所示:

foobarclass.biz.baz.Event += (s, e) =>
                                 
                                     foo.Bar.DoThings.Whatever();
                                 ;

并且在某些情况下,还会分解长语句,因此最终看起来像这样:

foobarclass.biz.baz.Event += (s, e) =>
                                 
                                     foo.
                                        Bar.
                                        DoThings.
                                        Whatever();
                                 ;

如您所知,这种自动格式化使代码的可读性更少。我该如何解决这种行为?

【问题讨论】:

【参考方案1】:

尝试取消选中:

RESHARPER -> OPTIONS -> C# -> 格式化样式 -> 其他 -> 缩进匿名方法体

【讨论】:

这似乎是这和改变大括号布局的结合 虽然我讨厌大多数事情的 GNU 风格,但对于匿名方法,它可以满足我的需求 @g.pickardou 该选项现在简称为“匿名方法体”,位于“对齐多行结构”标题下。 我知道这是一个老话题,但我发现这个是因为我在 resharper 2016.2 上遇到了同样的问题。更改此设置没有任何作用,示例代码在勾选和取消勾选框时甚至没有更改。我必须在 other>other 下启用“使用旧格式引擎”选项,以免 lambdas 大量缩进。 @ErikNilsson:显然这是一个回归:youtrack.jetbrains.com/issue/RSRP-460614

以上是关于如何防止 Resharper 大量缩进 lambda?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复对象和其他初始化程序上的 ReSharper 缩进

如何防止 ReSharper 在生成代码时为内置类型添加“@”符号?

如何防止 ReSharper 在我的 MSpec 字段之间插入空行?

如何防止 Resharper Javascript Intellisense 将 'function' 替换为 'Function'?

使用 Resharper 时如何防止源文件与构建模块时不同

如何防止 UITableViewCell 中的缩进 contentView 而不是 textLabel