【问题标题】:Spacing with ReSharper and the Object InitializerReSharper 和对象初始化器的间距
【发布时间】:2012-06-16 11:38:47
【问题描述】:

当我尝试使用 Object Initializer 初始化对象时,ReSharper 总是会插入大量空白。

public class Bar
{
    public void Adam()
    {
        var foo = new Foo
                      {
                          First = "yes",
                          Second                              = 
                      };
    }
}

当我替换初始化器后的; 字符时,我的代码将被格式化如下:

public class Bar
{
    public void Adam()
    {
        var foo = new Foo
                      {
                          First = "yes",
                          Second = "no"
                      };
    }
}

按照以下步骤重现问题(感谢 Piers Myers):

  • 例如,将光标放在左大括号后的缩进位置(在空行上,您可以将光标放在行首或 Resharper/VS 认为您应该使用的缩进级别)李>
  • 按 CTRL+空格、CTRL+ALT+空格或 SHIFT+ALT+空格。它会在您的光标之前插入空格以将其填充,但它也会在您的光标之后添加相同数量的空格,这是不正确的。

有谁知道是什么导致了最初生成的空白?也许我可能配置错了哪些设置?

【问题讨论】:

  • 当你说导致“这个”时,你的意思是哪一点 - 大量的空白开始,或者当你替换 ; 时重新格式化?
  • @AakashM 我的意思是一开始就有很多空白。可能导致我的小车移动到视觉边界之外。
  • 我认为,如果您准确描述您所做的按键操作以及空格出现的时间,这将有所帮助。如果您还没有,请检查bugtracker
  • @AakashM 我没想过将此识别为错误。我将使用击键更新问题并调查 bugtracker。
  • 我可以使用 Resharper 5.1 和 VS2008 重现您的问题。例如,如果您将光标放在左大括号之后的缩进位置(在空行上,您可以将光标放在行的最开头或 Resharper/VS 认为您应该使用的缩进级别)并按 CTRL +Space、CTRL+ALT+Space 或 SHIFT+ALT+Space,它会在光标前插入空格以填充它,但它也会在光标后添加相同数量的空格,这是不正确的。

标签: c# resharper object-initializer


【解决方案1】:

此问题已在以下安装中得到确认:

  • Resharper 5.1 VS2008(由 Piers Myers 提供)
  • Resharper 6.1 VS2008(由我提供)

但是,这些安装似乎没有问题:

  • Resharper 6.1 VS2010(由 Piers Myers 提供)
  • Resharper 7.0EAP VS012(由我提供)

因此,这似乎是 ReSharper 与 VS2008 IDE 结合的一个错误。

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2016-11-17
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多